Forum: VoltDB Architecture

Post: Approach to KV queries

Approach to KV queries
deanbanks
Aug 8, 2010
I think I've got a basic understanding as to how a VoltDB Transaction Manager will query other VoltDB nodes as necessary in order to appropriately respond to a client request (via stored procedures). My question relates to the way in which VoltDB handles key-value queries. Will a KV query go directly to the VoltDB node that has the data as in a typical distributed hash table store, or does the query go to any VoltDB node, with the risk that the node that receives the request may not have the data and may need to relay data from the node that has the KV data?


I'm looking forward to running my own latency tests as soon as I get my test network built, but I'm curious as to whether using KV is a reasonable way to reduce overall latency for certain latency-sensitive queries. My application probably can't support a clone of the necessary data at each node, and the ~10ms latency cited for SQL queries is too slow for part of my application (it will work for the rest, hence my question about mixed SQL and KV).


Looking forward to the KV webinar later in the month.


Cheers,


Dean
re: Approach to Key-Value queries
tcallaghan
Aug 8, 2010
Dean,


Your client application connects to any (or all) nodes in your VoltDB cluster then begins issuing stored procedure (SP) invocations to any node it is connected to. The receiving node determines where the partition is for your SP and forwards it to the appropriate node, if necessary.


What sort of latency do you require?


I regularly measure latency in the low single-digits (milliseconds) if I'm not pushing my cluster to the limit of transactional capabilities.


Please let us know what you measure when you have your test network up. I'd love to see your numbers and will run your application on my cluster as well.


I'll be presenting the webinar, hope to see you there!


-Tim
re: Approach to Key-Value queries
deanbanks
Aug 9, 2010
Hi Tim,


Many thanks for the quick response. I'll definitely publish my benchmarks when I get my test running.


As for latency targets, we're still evaluating what is possible and what we really need. I think that something sub- 1ms is desirable for the low latency part of our app. I'm confident that VoltDB can easily handle the rest of our application.


Cheers,


Dean