Forum: Building VoltDB Applications

Post: Updates take more time than inserts ?

Updates take more time than inserts ?
shetty_ritesh
May 10, 2010
Hi,

I inserted around 9 million records(34 columns) into a table. It finished loading the data in 8.5 minutes on a single node single partitioned machine.

Now i updated around 9 million records and it took aroudn 25 minutes.

Both use the Asynchronous machanism.

Dont know why updates take longer ?
re: Updates take more time than inserts?
tcallaghan
May 10, 2010
Ritesh,

I don't see "update" code in the sample application you sent me. Can you please email it to ersupport@voltdb.com?

-Tim
re: Updates take more time than inserts?
tcallaghan
May 11, 2010
Ritesh,

In VoltDB, updates do not take longer than inserts. They normally run faster.

I modified your application code to create random data (since I don't have access to your input files) and was able to insert 10,000,000 rows in 5:31, updating 10,000,000 random rows took 2:17. Both of these tests were performed on my desktop machine with 2 partitions.

I mailed the modified application back to you, can you please run my code and let me know your results?

Also, you should change your stored procedures so the parameters are the actual types of columns (do the parsing and data typing in your client application). It is more efficient to do that than to pass String types for each parameter with parsing logic inside the stored procedure.

-Tim
Thanks Tim, Yes the updates
shetty_ritesh
May 11, 2010
Ritesh,

In VoltDB, updates do not take longer than inserts. They normally run faster.

I modified your application code to create random data (since I don't have access to your input files) and was able to insert 10,000,000 rows in 5:31, updating 10,000,000 random rows took 2:17. Both of these tests were performed on my desktop machine with 2 partitions...

-Tim


Thanks Tim,
Yes the updates now are faster than inserts.
Can you post the "update" code?
aris_sety
May 16, 2010
Thanks Tim,
Yes the updates now are faster than inserts.


Can you post the "update" code, so I don't do the same mistakes?
i had partitioned the table
shetty_ritesh
May 17, 2010
Can you post the "update" code, so I don't do the same mistakes?


i had partitioned the table on a column which was BIGINT.
So the java equivalent is a long. Even though i sent the long to the voltQueueSQL() i sent a string to the procedure to its run() method.
So that lead to the long time delay in updates.
Long story short--use the data type of partition when calling the procedure.