Forum: Building VoltDB Clients

Post: Strange VoltDB performance behavior -- please help

Strange VoltDB performance behavior -- please help
vertleyb
Nov 4, 2010
Hi all,
I just started evaluating voltDB, and created a simple system with the following DDL:
CREATE TABLE USERSEGS (
MOOKIE INTEGER NOT NULL,
ADV INTEGER NOT NULL,
SEG INTEGER NOT NULL,
PRIMARY KEY(MOOKIE, ADV, SEG)
);
CREATE INDEX MOOKIEADV ON USERSEGS (
MOOKIE,
ADV
);
I was able to successfully build and run a procedure to populate the DB -- 10,000,000 records.
Then I wrote a client that tests the performance of SELECT on MOOKIE and ADV (I am using C++ client API, synchronous calls), and ran it (locally)
Here is the starnge part: when I run 1 or 2 instances of the client, the throughput is pretty poor -- about 200 op/sec. But when I add the third client, the throughput grows dramatically, to about 5000 op/sec, and can be further increased by adding client instances to about 15000 op/sec (20 instances).
The fact that throughput grows when the number of clients is increased is understandable. What's strange is the huge difference between 2 and 3 instances. It almost seems like if the DB server doesn't have enough load, it works very poorly.
The OS -- Linux RedHat 5.
Any help is greatly appreciated.
Thanks,
Arkadiy
re: strange performance behavior
tcallaghan
Nov 5, 2010
Arkadiy,
Can you please package up your example and email it to me at tcallaghan@voltdb.com? Please include your client application, stored procedures, ddl, project file, deployment file, execute scripts, etc. Also, any information about your environment is helpful (OS, Processor, RAM) and VoltDB version. I'd like to reproduce your issue in-house.
Also, a few other questions:
1. How many servers are you running?
2. Have you tried running your application with an asynchronous Client? If so, what was the throughput.