-3

VoltDB supports SELECT FOR UPDATE as in Oracle, PostgreSQL and MySQL or has a different mechanism for blocking records to update?

Laurenz Albe
  • 209,280
  • 17
  • 206
  • 263

1 Answers1

0

In VoltDB, a multiple SQL statement transaction is run as a java stored procedure. Within that procedure, you have exclusive access to all of the records available so there is no need to use something like SELECT FOR UPDATE in order to put a lock on them. You can simply SELECT and then UPDATE within the procedure. Many similar procedure calls could be made to VoltDB, which would queue them to the partitions where the relevant records are located and then execute them in a serializable sequence as fast as they can be executed, often in small fractions of milliseconds because all the data is stored in main memory. This allows this type of transaction to be executed at extremely high throughput rates.

VoltDB has a different architecture from Oracle, PostgreSQL, and MySQL that is focused on high performance OLTP and similar ACID transactions. By design, it does not support any mechanism to block records exclusively for one client for the duration of multiple requests, or allow clients to externally control when transactions commit or rollback, as that could eliminate the advantages of the architecture and there are already many general-purpose databases on the market that do that.

Disclosure: I work at VoltDB

BenjaminBallard
  • 1,482
  • 12
  • 11