Fast transactions for multicore in-memory databases
Thesis (S.M.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2013. === Cataloged from PDF version of thesis. === Includes bibliographical references (p. 55-57). === Though modern multicore machines have sufficient RAM and processors to manage very large...
Main Author: | |
---|---|
Other Authors: | |
Format: | Others |
Language: | English |
Published: |
Massachusetts Institute of Technology
2013
|
Subjects: | |
Online Access: | http://hdl.handle.net/1721.1/82375 |
id |
ndltd-MIT-oai-dspace.mit.edu-1721.1-82375 |
---|---|
record_format |
oai_dc |
spelling |
ndltd-MIT-oai-dspace.mit.edu-1721.1-823752019-05-02T16:37:37Z Fast transactions for multicore in-memory databases Tu, Stephen Lyle Samuel R. Madden. Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science. Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science. Electrical Engineering and Computer Science. Thesis (S.M.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2013. Cataloged from PDF version of thesis. Includes bibliographical references (p. 55-57). Though modern multicore machines have sufficient RAM and processors to manage very large in-memory databases, it is not clear what the best strategy for dividing work among cores is. Should each core handle a data partition, avoiding the overhead of concurrency control for most transactions (at the cost of increasing it for cross-partition transactions)? Or should cores access a shared data structure instead? We investigate this question in the context of a fast in-memory database. We describe a new transactionally consistent database storage engine called MAFLINGO. Its cache-centered data structure design provides excellent base key-value store performance, to which we add a new, cache-friendly serializable protocol and support for running large, read-only transactions on a recent snapshot. On a key-value workload, the resulting system introduces negligible performance overhead as compared to a version of our system with transactional support stripped out, while achieving linear scalability versus the number of cores. It also exhibits linear scalability on TPC-C, a popular transactional benchmark. In addition, we show that a partitioning-based approach ceases to be beneficial if the database cannot be partitioned such that only a small fraction of transactions access multiple partitions, making our shared-everything approach more relevant. Finally, based on a survey of results from the literature, we argue that our implementation substantially outperforms previous main-memory databases on TPC-C benchmarks. by Stephen Lyle Tu. S.M. 2013-11-18T19:15:24Z 2013-11-18T19:15:24Z 2013 2013 Thesis http://hdl.handle.net/1721.1/82375 862074778 eng M.I.T. theses are protected by copyright. They may be viewed from this source for any purpose, but reproduction or distribution in any format is prohibited without written permission. See provided URL for inquiries about permission. http://dspace.mit.edu/handle/1721.1/7582 57 p. application/pdf Massachusetts Institute of Technology |
collection |
NDLTD |
language |
English |
format |
Others
|
sources |
NDLTD |
topic |
Electrical Engineering and Computer Science. |
spellingShingle |
Electrical Engineering and Computer Science. Tu, Stephen Lyle Fast transactions for multicore in-memory databases |
description |
Thesis (S.M.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2013. === Cataloged from PDF version of thesis. === Includes bibliographical references (p. 55-57). === Though modern multicore machines have sufficient RAM and processors to manage very large in-memory databases, it is not clear what the best strategy for dividing work among cores is. Should each core handle a data partition, avoiding the overhead of concurrency control for most transactions (at the cost of increasing it for cross-partition transactions)? Or should cores access a shared data structure instead? We investigate this question in the context of a fast in-memory database. We describe a new transactionally consistent database storage engine called MAFLINGO. Its cache-centered data structure design provides excellent base key-value store performance, to which we add a new, cache-friendly serializable protocol and support for running large, read-only transactions on a recent snapshot. On a key-value workload, the resulting system introduces negligible performance overhead as compared to a version of our system with transactional support stripped out, while achieving linear scalability versus the number of cores. It also exhibits linear scalability on TPC-C, a popular transactional benchmark. In addition, we show that a partitioning-based approach ceases to be beneficial if the database cannot be partitioned such that only a small fraction of transactions access multiple partitions, making our shared-everything approach more relevant. Finally, based on a survey of results from the literature, we argue that our implementation substantially outperforms previous main-memory databases on TPC-C benchmarks. === by Stephen Lyle Tu. === S.M. |
author2 |
Samuel R. Madden. |
author_facet |
Samuel R. Madden. Tu, Stephen Lyle |
author |
Tu, Stephen Lyle |
author_sort |
Tu, Stephen Lyle |
title |
Fast transactions for multicore in-memory databases |
title_short |
Fast transactions for multicore in-memory databases |
title_full |
Fast transactions for multicore in-memory databases |
title_fullStr |
Fast transactions for multicore in-memory databases |
title_full_unstemmed |
Fast transactions for multicore in-memory databases |
title_sort |
fast transactions for multicore in-memory databases |
publisher |
Massachusetts Institute of Technology |
publishDate |
2013 |
url |
http://hdl.handle.net/1721.1/82375 |
work_keys_str_mv |
AT tustephenlyle fasttransactionsformulticoreinmemorydatabases |
_version_ |
1719044458666786816 |