Font Size: a A A

Improving Main-Memory Database (MMDB) distributed transactional concurrency

Posted on:2015-06-07Degree:Ph.DType:Dissertation
University:University of Massachusetts BostonCandidate:Gong, WeiweiFull Text:PDF
GTID:1478390017993446Subject:Computer Science
Concurrency control provides multi-user access to a database system, while ensuring concurrent transactional correctness. Classical RDBMS products such as Oracle, DB2 and SQL Server have Disk Resident databases (DRDBs) with designs from the 1970s, whose data can only be read or updated after being brought into memory. Great reductions in memory price and ever-faster compute cycles have made DRDBs much less desirable for all but the largest databases. Study of Main Memory Database Systems (MMDBs) and their concurrency control algorithms is a current research effort. An advantage of MMDBs cited by early researchers was that execution of a transaction on a CPU in memory from start to finish would save all the work of disk I/O, locking, latching and coping with deadlocks. But until recently there was very little discussion of distributed MMDB transactions, needed when not all data is accessible at one computer.;This dissertation analyzes the performance bottlenecks of distributed transactions in an open-source multi-CPU shared-nothing MMDB VoltDB, which is based on an earlier academic MMDB H-Store. On each shared-nothing node, the transactions execute serially. The waits for the messages involved in distributed transactions seriously impact performance. We developed a low-overhead concurrency scheme that runs Prepares serially on each node so that new Prepares could run while old Prepares were waiting to commit. Possible conflicts are detected using Write locks but no Read locks. We also provide an Ordered Escrow Method, a variant of original Escrow that speeds up transactions doing incremental updates. We implemented these serializable concurrency schemes on VoltDB, and named this modified system CVoltDB. CVoltDB is the first DBMS providing an Escrow method to the transaction programmer. We performed measurements comparing VoltDB and CVoltDB performance showing significant performance improvement.
Keywords/Search Tags:MMDB, Database, Concurrency, Distributed, Memory, Performance
Related items