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...

Full description

Bibliographic Details
Main Author: Tu, Stephen Lyle
Other Authors: Samuel R. Madden.
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