{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,23]],"date-time":"2026-06-23T17:12:52Z","timestamp":1782234772230,"version":"3.54.5"},"reference-count":160,"publisher":"Emerald","issue":"1-2","content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2017,8,23]]},"abstract":"<jats:p>This article provides an overview of recent developments in mainmemory database systems. With growing memory sizes and memory prices dropping by a factor of 10 every 5 years, data having a \u201cprimary home\u201d in memory is now a reality. Main-memory databases eschew many of the traditional architectural pillars of relational database systems that optimized for disk-resident data. The result of these memory-optimized designs are systems that feature several innovative approaches to fundamental issues (e.g., concurrency control, query processing) that achieve orders of magnitude performance improvements over traditional designs. Our survey covers five main issues and architectural choices that need to be made when building a high performance main-memory optimized database: data organization and storage, indexing, concurrency control, durability and recovery techniques, and query processing and compilation. We focus our survey on four commercial and research systems: H-Store\/VoltDB, Hekaton, HyPer, and SAP HANA. These systems are diverse in their design choices and form a representative sample of the state of the art in main-memory database systems. We also cover other commercial and academic systems, along with current and future research trends.<\/jats:p>","DOI":"10.1561\/1900000058","type":"journal-article","created":{"date-parts":[[2017,8,7]],"date-time":"2017-08-07T08:51:55Z","timestamp":1502095915000},"page":"1-130","source":"Crossref","is-referenced-by-count":39,"title":["Main Memory Database Systems"],"prefix":"10.1108","volume":"8","author":[{"given":"Franz","family":"Faerber","sequence":"first","affiliation":[{"name":"SAP"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Alfons","family":"Kemper","sequence":"additional","affiliation":[{"name":"Technische Universit\u00e4t M\u00fcnchen"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Per-\u00c5ke","family":"Larson","sequence":"additional","affiliation":[{"name":"Microsoft Research"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Justin","family":"Levandoski","sequence":"additional","affiliation":[{"name":"Microsoft Research"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Thomas","family":"Neumann","sequence":"additional","affiliation":[{"name":"Technische Universit\u00e4t M\u00fcnchen"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Andrew","family":"Pavlo","sequence":"additional","affiliation":[{"name":"Carnegie Mellon University"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"140","published-online":{"date-parts":[[2017,8,23]]},"reference":[{"key":"2025120709003912900_ref001","unstructured":"Intel Xeon Processor E5-2699 v3 Specification Sheet\n          . http:\/\/intel.ly\/1xx6aZz."},{"key":"2025120709003912900_ref002","unstructured":"MemSQL\n          . http:\/\/www.memsql.com."},{"key":"2025120709003912900_ref003","unstructured":"VoltDB\n          . http:\/\/www.voltdb.com."},{"key":"2025120709003912900_ref004","first-page":"967","article-title":"Column-Stores vs. Row-Stores: How Different are they Really?","volume-title":"Proceedings of the ACM Conference on Management of Data, SIGMOD","author":"Abadi","year":"2008"},{"key":"2025120709003912900_ref005","first-page":"23","article-title":"Efficient Optimistic Concurrency Control using Loosely Synchronized Clocks","volume-title":"Proceedings of the ACM Conference on Management of Data, SIGMOD","author":"Adya","year":"1995"},{"issue":"4","key":"2025120709003912900_ref006","doi-asserted-by":"crossref","first-page":"609","DOI":"10.1145\/32204.32220","article-title":"Concurrency control performance modeling: Alternatives and implications","volume":"12","author":"Agrawal","year":"1987","journal-title":"ACM Trans. Database Syst"},{"issue":"4","key":"2025120709003912900_ref007","doi-asserted-by":"crossref","first-page":"529","DOI":"10.1145\/4879.4958","article-title":"Integrated Concurrency Control and Recovery Mechanisms: Design and Performance Evaluation","volume":"10","author":"Agrawal","year":"1985","journal-title":"ACM Transactions on Database Systems, TODS"},{"key":"2025120709003912900_ref008","first-page":"266","volume-title":"Dbmss on a modern processor: Where does time go? VLDB","author":"Ailamaki","year":"1999"},{"issue":"10","key":"2025120709003912900_ref009","doi-asserted-by":"crossref","first-page":"1064","DOI":"10.14778\/2336664.2336678","article-title":"Massively Parallel Sort-Merge Joins in Main Memory Multi-Core Database Systems","volume":"5","author":"Albutiu","year":"2012","journal-title":"Proceedings of the VLDB Endowment, PVLDB"},{"issue":"14","key":"2025120709003912900_ref010","doi-asserted-by":"crossref","first-page":"1714","DOI":"10.14778\/2556549.2556556","article-title":"Adaptive Range Filters for Cold Data: Avoiding Trips to Siberia","volume":"6","author":"Alexiou","year":"2013","journal-title":"Proceedings of the VLDB Endowment, PVLDB"},{"key":"2025120709003912900_ref011","volume-title":"Altibase HDB Administrator\u2019s Manual","author":"Altibase"},{"key":"2025120709003912900_ref012","first-page":"590","article-title":"PRISMA Database Machine: A Distributed, Main-Memory Approach","volume-title":"Proceedings of the International Conference on Extending Database Technology, EDBT","author":"Apers","year":"1988"},{"issue":"6","key":"2025120709003912900_ref013","doi-asserted-by":"crossref","first-page":"541","DOI":"10.1109\/69.180605","article-title":"PRISMA\/DB: A parallel main memory relational DBMS","volume":"4","author":"Apers","year":"1992","journal-title":"IEEE Transactions on Knowledge and Data Engineering, TKDE"},{"key":"2025120709003912900_ref014","first-page":"707","article-title":"Let\u2019s Talk About Storage & Recovery Methods for Non-Volatile Memory Database Systems","volume-title":"Proceedings of the ACM Conference on Management of Data, SIGMOD","author":"Arulraj","year":"2015"},{"key":"2025120709003912900_ref015","first-page":"362","article-title":"\u00d6zsu. Main-Memory Hash Joins on Multi-Core CPUs: Tuning to the Underlying Hardware","volume-title":"Proceedings of the International Conference on Data Engineering, ICDE","author":"Balkesen","year":"2013"},{"key":"2025120709003912900_ref016","first-page":"519","article-title":"DataBlitz Storage Manager: Main Memory Database Performance for Critical Applications","volume-title":"Proceedings of the ACM Conference on Management of Data, SIGMOD","author":"Baulier","year":"1999"},{"key":"2025120709003912900_ref017","first-page":"285","article-title":"Timestamp-Based Algorithms for Concurrency Control in Distributed Database Systems","volume-title":"Proceedings of the International Conference on Very Large Data Bases, VLDB","author":"Bernstein","year":"1980"},{"issue":"2","key":"2025120709003912900_ref018","doi-asserted-by":"crossref","first-page":"185","DOI":"10.1145\/356842.356846","article-title":"Concurrency Control in Distributed Database Systems","volume":"13","author":"Bernstein","year":"1981","journal-title":"ACM Comput. Surv."},{"key":"2025120709003912900_ref019","first-page":"62","article-title":"A sophisticate\u2019s introduction to distributed concurrency control (invited paper)","volume-title":"Proceedings of the International Conference on Very Large Data Bases, VLDB","author":"Bernstein","year":"1982"},{"key":"2025120709003912900_ref020","volume-title":"Concurrency Control and Recovery in Database Systems","author":"Bernstein","year":"1987"},{"key":"2025120709003912900_ref021","first-page":"72","article-title":"Performance of Complex Queries in Main Memory Database Systems","volume-title":"Proceedings of the International Conference on Data Engineering, ICDE","author":"Bitton","year":"1987"},{"key":"2025120709003912900_ref022","first-page":"37","article-title":"Design and Evaluation of Main Memory Hash Join Algorithms for Multi-core CPUs","volume-title":"Proceedings of the ACM Conference on Management of Data, SIGMOD","author":"Blanas","year":"2011"},{"issue":"2","key":"2025120709003912900_ref023","doi-asserted-by":"crossref","first-page":"115","DOI":"10.1023\/A:1009662214514","article-title":"The Architecture of the Dal\u00ed Main-Memory Storage Manager","volume":"4","author":"Bohannon","year":"1997","journal-title":"Multimedia Tools Appl."},{"key":"2025120709003912900_ref024","first-page":"13","article-title":"Distributed Concurrency Control Performance: A Study of Algorithms, Distribution, and Replication","author":"Carey"},{"key":"2025120709003912900_ref025","first-page":"107","article-title":"The Performance of Concurrency Control Algorithms for Database Management Systems","volume-title":"Proceedings of the International Conference on Very Large Data Bases, VLDB","author":"Carey","year":"1984"},{"key":"2025120709003912900_ref026","doi-asserted-by":"crossref","first-page":"12","DOI":"10.1145\/1978915.1978919","article-title":"Scalable SQL and NoSQL Data Stores","volume":"39","author":"Cattell","year":"2011","journal-title":"SIGMOD Record"},{"key":"2025120709003912900_ref027","first-page":"181","article-title":"Cache-Conscious Concurrency Control of Main-Memory Indexes on Shared-Memory Multiprocessor Systems","volume-title":"Proceedings of the International Conference on Very Large Data Bases, VLDB","author":"Cha","year":"2001"},{"key":"2025120709003912900_ref028","first-page":"1033","article-title":"P*TIME: Highly Scalable OLTP DBMS for Managing Update-Intensive Stream Workload","volume-title":"Proceedings of the International Conference on Very Large Data Bases, VLDB","author":"Cha","year":"2004"},{"issue":"5","key":"2025120709003912900_ref029","doi-asserted-by":"crossref","first-page":"497","DOI":"10.14778\/2735479.2735483","article-title":"REWIND: Recovery Write-Ahead System for In-Memory Non-Volatile Data-Structures","volume":"8","author":"Chatzistergiou","year":"2015","journal-title":"Proceedings of the VLDB Endowment, PVLDB"},{"key":"2025120709003912900_ref030","first-page":"235","article-title":"Improving index performance through prefetching","volume-title":"Proceedings of the ACM Conference on Management of Data, SIGMOD","author":"Chen","year":"2001"},{"key":"2025120709003912900_ref031","first-page":"197","article-title":"From ARIES to MARS: Transaction Support for Next-Generation, Solid-State Drives","volume-title":"Proceedings of the ACM Symposium on Operating Systems Principles, SOSP","author":"Coburn","year":"2013"},{"key":"2025120709003912900_ref032","first-page":"21","article-title":"Granola: Low-Overhead Distributed Transaction Coordination","volume-title":"Proceedings of the USENIX Annual Technical Conference, ATC","author":"Cowling","year":"2012"},{"key":"2025120709003912900_ref033","first-page":"48","article-title":"Schism: a Workload-Driven Approach to Database Replication and Partitioning","volume":"3","author":"Curino","year":"2010","journal-title":"Proceedings of the International Conference on Very Large Data Bases, VLDB"},{"issue":"14","key":"2025120709003912900_ref034","doi-asserted-by":"crossref","first-page":"1942","DOI":"10.14778\/2556549.2556575","article-title":"Anti-caching: A New Approach to Database Management System Architecture","volume":"6","author":"DeBrabant","year":"2013","journal-title":"Proceedings of the VLDB Endowment, PVLDB"},{"key":"2025120709003912900_ref035","volume-title":"SQL Server 2008 Internals","author":"Delaney","year":"2009"},{"key":"2025120709003912900_ref036","first-page":"228","article-title":"GAMMA A High Performance Dataflow Database Machine","volume-title":"Proceedings of the International Conference on Very Large Data Bases, VLDB","author":"DeWitt","year":"1986"},{"issue":"2","key":"2025120709003912900_ref037","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1145\/971697.602261","article-title":"Implementation Techniques for Main Memory Database Systems","volume":"14","author":"DeWitt","year":"1984","journal-title":"SIGMOD Record"},{"key":"2025120709003912900_ref038","first-page":"1243","article-title":"Hekaton: SQL Server\u2019s Memory-Optimized OLTP Engine","volume-title":"Proceedings of the ACM Conference on Management of Data, SIGMOD","author":"Diaconu","year":"2013"},{"key":"2025120709003912900_ref039","first-page":"401","article-title":"FaRM: Fast Remote Memory","volume-title":"Proceedings of the USENIX Symposium on Networked Systems Design and Implementation, NSDI","author":"Dragojevi\u0107","year":"2014"},{"key":"2025120709003912900_ref040","article-title":"Latest Advances and Future Prospects of STT-RAM","volume-title":"Non-Volatile Memories Workshop","author":"Driskill-Smith","year":"2010"},{"key":"2025120709003912900_ref041","first-page":"332","article-title":"A Classification and Comparison of Main Memory Database Recovery Techniques","volume-title":"Proceedings of the International Conference on Data Engineering, ICDE","author":"Eich","year":"1987"},{"issue":"11","key":"2025120709003912900_ref042","doi-asserted-by":"crossref","first-page":"931","DOI":"10.14778\/2732967.2732968","article-title":"Trekking Through Siberia: Managing Cold Data in a Memory-Optimized Database","volume":"7","author":"Eldawy","year":"2014","journal-title":"Proceedings of the VLDB Endowment, PVLDB"},{"issue":"11","key":"2025120709003912900_ref043","doi-asserted-by":"crossref","first-page":"1190","DOI":"10.14778\/2809974.2809981","article-title":"Rethinking serializable multiversion concurrency control","volume":"8","author":"Faleiro","year":"2015","journal-title":"Proceedings of the VLDB Endowment, PVLDB"},{"key":"2025120709003912900_ref044","article-title":"Latch-free Synchronization in Database Systems: Silver Bullet or Fool\u2019s Gold?","volume-title":"Proceedings of the International Conference on Innovative Data Systems Research, CIDR","author":"Faleiro","year":"2017"},{"key":"2025120709003912900_ref045","first-page":"1221","article-title":"High Performance Database Logging using Storage Class Memory","volume-title":"Proceedings of the International Conference on Data Engineering, ICDE","author":"Fang","year":"2011"},{"issue":"1","key":"2025120709003912900_ref046","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1145\/3148.3160","article-title":"Limitations of concurrency in transaction processing","volume":"10","author":"Franaszek","year":"1985","journal-title":"ACM Transactions on Database Systems, TODS"},{"issue":"1","key":"2025120709003912900_ref047","first-page":"22","article-title":"Compilation in the Microsoft SQL Server Hekaton Engine","volume":"37","author":"Freedman","year":"2014","journal-title":"IEEE Data Engineering Bulletin"},{"issue":"11","key":"2025120709003912900_ref048","doi-asserted-by":"crossref","first-page":"1424","DOI":"10.14778\/2350229.2350258","article-title":"Compacting Transactional Data in Hybrid OLTP & OLAP Databases","volume":"5","author":"Funke","year":"2012","journal-title":"Proceedings of the VLDB Endowment, PVLDB"},{"issue":"6","key":"2025120709003912900_ref049","doi-asserted-by":"crossref","first-page":"509","DOI":"10.1109\/69.180602","article-title":"Main Memory Database Systems: An Overview","volume":"4","author":"Garcia-Molina","year":"1992","journal-title":"IEEE Transactions on Knowledge and Data Engineering, TKDE"},{"issue":"2","key":"2025120709003912900_ref050","first-page":"3","article-title":"Varieties of Concurrency Control in IMS\/VS Fast Path","volume":"8","author":"Gawlick","year":"1985","journal-title":"IEEE Data Engineering Bulletin"},{"issue":"2","key":"2025120709003912900_ref051","doi-asserted-by":"crossref","first-page":"29","DOI":"10.1145\/141484.130293","article-title":"A Performance Analysis of Alternative Multi-Attribute Declustering Strategies","volume":"21","author":"Ghandeharizadeh","year":"1992","journal-title":"Proceedings of the ACM Conference on Management of Data, SIGMOD"},{"key":"2025120709003912900_ref052","first-page":"533","article-title":"Locking and Latching in a Memory-Resident Database System","volume-title":"Proceedings of the International Conference on Very Large Data Bases, VLDB","author":"Gottemukkala","year":"1992"},{"issue":"2","key":"2025120709003912900_ref053","doi-asserted-by":"crossref","first-page":"73","DOI":"10.1145\/152610.152611","article-title":"Query Evaluation Techniques for Large Databases","volume":"25","author":"Graefe","year":"1993","journal-title":"ACM Computing Surveys"},{"key":"2025120709003912900_ref054","first-page":"209","article-title":"The Volcano Optimizer Generator: Extensibility and Efficient Search","volume-title":"Proceedings of the International Conference on Data Engineering, ICDE","author":"Graefe","year":"1993"},{"key":"2025120709003912900_ref055","doi-asserted-by":"crossref","first-page":"428","DOI":"10.1145\/1282480.1282513","article-title":"Granularity of Locks in a Large Shared Data Base","volume-title":"Proceedings of the International Conference on Very Large Data Bases, VLDB","author":"Gray","year":"1975"},{"key":"2025120709003912900_ref056","first-page":"395","article-title":"The 5 Minute Rule for Trading Memory for Disk Accesses and The 10 Byte Rule for Trading Memory for CPU Time","volume-title":"Proceedings of the ACM Conference on Management of Data, SIGMOD","author":"Gray","year":"1987"},{"key":"2025120709003912900_ref057","volume-title":"Transaction Processing: Concepts and Techniques","author":"Gray","year":"1993"},{"key":"2025120709003912900_ref058","first-page":"397","article-title":"MMDB Reload Algorithms","volume-title":"Proceedings of the ACM Conference on Management of Data, SIGMOD","author":"Gruenwald","year":"1991"},{"issue":"4","key":"2025120709003912900_ref059","doi-asserted-by":"crossref","first-page":"287","DOI":"10.1145\/289.291","article-title":"Principles of Transaction-Oriented Database Recovery","volume":"15","author":"Haerder","year":"1983","journal-title":"ACM Computing Surveys"},{"key":"2025120709003912900_ref060","first-page":"981","article-title":"OLTP through the looking glass, and what we found there","volume-title":"SIGMOD","author":"Harizopoulos","year":"2008"},{"key":"2025120709003912900_ref061","doi-asserted-by":"crossref","first-page":"301","DOI":"10.1007\/3-540-51085-0_52","article-title":"Group Commit Timers and High Volume Transaction Systems","volume-title":"Proceedings of the International Workshop on High Performance Transaction Systems, HPTS","author":"Helland","year":"1989"},{"key":"2025120709003912900_ref062","first-page":"238","article-title":"Readings in Database Systems","volume-title":"chapter Transaction Management","author":"Hellerstein","year":"1998","edition":"4th"},{"issue":"2","key":"2025120709003912900_ref063","doi-asserted-by":"crossref","first-page":"141","DOI":"10.1561\/1900000002","article-title":"Architecture of a Database System","volume":"1","author":"Hellerstein","year":"2007","journal-title":"Foundations and Trends in Databases"},{"key":"2025120709003912900_ref064","first-page":"289","article-title":"Transactional Memory: Architectural Support for Lock-Free Data Structures","volume-title":"Proceedings of the International Symposium on Computer Architecture, ISCA","author":"Herlihy","year":"1993"},{"key":"2025120709003912900_ref065","volume-title":"Technical report","author":"Heytens","year":"1995"},{"key":"2025120709003912900_ref066","first-page":"469","article-title":"The ClustRa Telecom Database: High Availability, High Throughput, and Real-Time Response","volume-title":"Proceedings of the International Conference on Very Large Data Bases, VLDB","author":"Hvasshovd","year":"1995"},{"key":"2025120709003912900_ref067","first-page":"48","article-title":"Dal\u00ed: A High Performance Main Memory Storage Manager","volume-title":"Proceedings of the International Conference on Very Large Data Bases, VLDB","author":"Jagadish","year":"1994"},{"issue":"1-2","key":"2025120709003912900_ref068","doi-asserted-by":"crossref","first-page":"681","DOI":"10.14778\/1920841.1920928","article-title":"Aether: A Scalable Approach to Logging","volume":"3","author":"Johnson","year":"2010","journal-title":"Proceedings of the VLDB Endowment, PVLDB"},{"key":"2025120709003912900_ref069","first-page":"143","article-title":"Precision Locks","volume-title":"Proceedings of the ACM Conference on Management of Data, SIGMOD","author":"Jordan","year":"1981"},{"issue":"2","key":"2025120709003912900_ref070","doi-asserted-by":"crossref","first-page":"1496","DOI":"10.14778\/1454159.1454211","article-title":"H-Store: A High-Performance, Distributed Main Memory Transaction Processing System","volume":"1","author":"Kallman","year":"2008","journal-title":"Proceedings of the VLDB Endowment, PVLDB"},{"key":"2025120709003912900_ref071","first-page":"476","article-title":"Improving In-Memory Database Index Performance with Intel Transactional Synchronization Extensions","volume-title":"Proceedings of the IEEE Symposium on High Performance Computer Architecture, HPCA","author":"Karnagel","year":"2014"},{"key":"2025120709003912900_ref072","first-page":"195","article-title":"HyPer: A Hybrid OLTP&OLAP Main Memory Database System Based on Virtual Memory Snapshots","volume-title":"Proceedings of the International Conference on Data Engineering, ICDE","author":"Kemper","year":"2011"},{"key":"2025120709003912900_ref073","first-page":"613","article-title":"Generating Code for Holistic Query Evaluation","volume-title":"Proceedings of the International Conference on Data Engineering, ICDE","author":"Krikellas","year":"2010"},{"issue":"2","key":"2025120709003912900_ref074","first-page":"6","article-title":"Oracle TimesTen: An In-Memory Database for Enterprise Applications","volume":"36","author":"Lahiri","year":"2013","journal-title":"IEEE Data Engineering Bulletin"},{"key":"2025120709003912900_ref075","first-page":"311","article-title":"Data Blocks: Hybrid OLTP and OLAP on Compressed Storage using both Vectorization and Compilation","volume-title":"Proceedings of the ACM Conference on Management of Data, SIGMOD","author":"Land","year":"2016"},{"key":"2025120709003912900_ref076","article-title":"Massively Parallel NUMA-aware Hash Joins","volume-title":"Proceedings of the International Workshop on In-Memory Data Management, IMDM","author":"Lang","year":"2013"},{"issue":"4","key":"2025120709003912900_ref077","doi-asserted-by":"crossref","first-page":"298","DOI":"10.14778\/2095686.2095689","article-title":"High-Performance Concurrency Control Mechanisms for Main-Memory Databases","volume":"5","author":"Larson","year":"2011","journal-title":"Proceedings of the VLDB Endowment, PVLDB"},{"issue":"2","key":"2025120709003912900_ref078","first-page":"28","article-title":"High-Performance Transaction Processing in SAP HANA","volume":"36","author":"Lee","year":"2013","journal-title":"IEEE Data Engineering Bulletin"},{"key":"2025120709003912900_ref079","first-page":"294","article-title":"A Study of Index Structures for Main Memory Database Management Systems","volume-title":"Proceedings of the International Conference on Very Large Data Bases, VLDB","author":"Lehman","year":"1986"},{"key":"2025120709003912900_ref080","first-page":"239","article-title":"Query Processing in Main Memory Database Management Systems","volume-title":"Proceedings of the ACM Conference on Management of Data, SIGMOD","author":"Lehman","year":"1986"},{"key":"2025120709003912900_ref081","first-page":"104","article-title":"A Recovery Algorithm for a High-Performance Memory-Resident Database System","author":"Lehman"},{"issue":"6","key":"2025120709003912900_ref082","doi-asserted-by":"crossref","first-page":"555","DOI":"10.1109\/69.180606","article-title":"An Evaluation of Starburst\u2019s Memory Resident Storage Component","volume":"4","author":"Lehman","year":"1992","journal-title":"IEEE Transactions on Knowledge and Data Engineering, TKDE"},{"key":"2025120709003912900_ref083","first-page":"743","article-title":"Morsel-Driven Parallelism: A NUMA-Aware Query Evaluation Framework for the Many-core Age","volume-title":"Proceedings of the ACM Conference on Management of Data, SIGMOD","author":"Leis","year":"2014"},{"issue":"3","key":"2025120709003912900_ref084","doi-asserted-by":"crossref","first-page":"204","DOI":"10.14778\/2850583.2850594","article-title":"How Good Are Query Optimizers, Really","volume":"9","author":"Leis","year":"2015","journal-title":"Proceedings of the VLDB Endowment, PVLDB"},{"key":"2025120709003912900_ref085","doi-asserted-by":"crossref","DOI":"10.1109\/ICDE.2013.6544812","article-title":"The Adaptive Radix Tree: ARTful Indexing for Main-Memory Databases","volume-title":"Proceedings of the International Conference on Data Engineering (ICDE)","author":"Leis","year":"2013"},{"key":"2025120709003912900_ref086","first-page":"580","article-title":"Exploiting Hardware Transactional Memory in Main-Memory Databases","volume-title":"Proceedings of the International Conference on Data Engineering, ICDE","author":"Leis","year":"2014"},{"issue":"10","key":"2025120709003912900_ref087","doi-asserted-by":"crossref","first-page":"1058","DOI":"10.14778\/2794367.2794375","article-title":"Efficient Processing of Window Functions in Analytical SQL Queries","volume":"8","author":"Leis","year":"2015","journal-title":"Proceedings of the VLDB Endowment, PVLDB"},{"key":"2025120709003912900_ref088","first-page":"26","article-title":"Identifying Hot and Cold Data in Main-Memory Databases","volume-title":"Proceedings of the International Conference on Data Engineering, ICDE","author":"Levandoski","year":"2013"},{"key":"2025120709003912900_ref089","first-page":"302","article-title":"The Bw-Tree: A B-tree for New Hardware Platforms","volume-title":"Proceedings of the International Conference on Data Engineering, ICDE","author":"Levandoski","year":"2013"},{"key":"2025120709003912900_ref090","first-page":"177","article-title":"Multiprocessor Main Memory Transaction Processing","volume-title":"Proceedings of the International Symposium on Databases in Parallel and Distributed Systems, DPDS","author":"Li","year":"1988"},{"key":"2025120709003912900_ref091","first-page":"99","article-title":"SIREN: A Memory-Conserving, Snapshot-Consistent Checkpoint Algorithm for in-Memory Databases","volume-title":"Proceedings of the International Conference on Data Engineering, ICDE","author":"Liedes","year":"2006"},{"key":"2025120709003912900_ref092","first-page":"429","article-title":"MICA: A Holistic Approach to Fast In-Memory Key-Value Storage","volume-title":"Proceedings of the USENIX Symposium on Networked Systems Design and Implementation, NSDI","author":"Lim","year":"2014"},{"issue":"2","key":"2025120709003912900_ref093","first-page":"14","article-title":"IBM solidDB: In-Memory Database Optimized for Extreme Speed and Availability","volume":"36","author":"Lindstr\u00f6m","year":"2013","journal-title":"IEEE Data Engineering Bulletin"},{"key":"2025120709003912900_ref094","doi-asserted-by":"crossref","first-page":"128","DOI":"10.1145\/800022.808319","article-title":"Process Structuring, Synchronization, and Recovery Using Atomic Actions","volume-title":"Proceedings of the ACM Conference on Language Design for Reliable Software","author":"Lomet","year":"1977"},{"issue":"11","key":"2025120709003912900_ref095","doi-asserted-by":"crossref","first-page":"1298","DOI":"10.14778\/2809974.2809990","article-title":"To Lock, Swap, or Elide: On the Interplay of Hardware Transactional Memory and Lock-Free Indexing","volume":"8","author":"Makreshanski","year":"2015","journal-title":"Proceedings of the VLDB Endowment, PVLDB"},{"key":"2025120709003912900_ref096","first-page":"604","article-title":"Rethinking main memory OLTP recovery","volume-title":"Proceedings of the International Conference on Data Engineering, ICDE","author":"Malviya","year":"2014"},{"key":"2025120709003912900_ref097","first-page":"183","article-title":"Cache Craftiness for Fast Multicore Key-Value Storage","volume-title":"Proceedings of the European Conference on Computer Systems, EuroSys","author":"Mao","year":"2012"},{"key":"2025120709003912900_ref098","first-page":"581","article-title":"SAP HANA From Relational OLAP Database to Big Data Infrastructure","volume-title":"Proceedings of the International Conference on Extending Database Technology, EDBT","author":"May","year":"2015"},{"key":"2025120709003912900_ref099","unstructured":"Memcached\n          . http:\/\/memcached.org\/."},{"key":"2025120709003912900_ref100","unstructured":"MemSQL Durability and Recovery\n          . http:\/\/bit.ly\/1nqM2qK."},{"key":"2025120709003912900_ref101","first-page":"361","article-title":"Exploiting Ordered Dictionaries to Efficiently Construct Histograms with Q-error Guarantees in SAP HANA","volume-title":"Proceedings of the ACM Conference on Management of Data, SIGMOD","author":"Moerkotte","year":"2014"},{"issue":"1","key":"2025120709003912900_ref102","doi-asserted-by":"crossref","first-page":"94","DOI":"10.1145\/128765.128770","article-title":"ARIES: A Transaction Recovery Method Supporting Fine-Granularity Locking and Partial Rollbacks using Write-Ahead Logging","volume":"17","author":"Mohan","year":"1992","journal-title":"ACM Transactions on Database Systems, TODS"},{"issue":"4","key":"2025120709003912900_ref103","doi-asserted-by":"crossref","first-page":"378","DOI":"10.1145\/7239.7266","article-title":"Transaction Management in the R* Distributed Database Management System","volume":"11","author":"Mohan","year":"1986","journal-title":"ACM Transactions on Database Systems, TODS"},{"key":"2025120709003912900_ref104","first-page":"17","article-title":"How to Efficiently Snapshot Transactional Data: Hardware or Software Controlled","volume-title":"Proceedings of the International Workshop on Data Management on New Hardware, DaMoN","author":"M\u00fche","year":"2011"},{"key":"2025120709003912900_ref105","doi-asserted-by":"crossref","first-page":"578","DOI":"10.1145\/2247596.2247670","article-title":"The Mainframe Strikes Back: Elastic Multi-Tenancy using Main Memory Database Systems on a Many-core Server","volume-title":"Proceedings of the International Conference on Extending Database Technology, EDBT","author":"M\u00fche","year":"2012"},{"key":"2025120709003912900_ref106","doi-asserted-by":"crossref","DOI":"10.1145\/2486767.2486770","article-title":"ScyPer: Elastic OLAP Throughput on Transactional Data","volume-title":"Proceedings of the ACM SIGMOD Workshop on Data Analytics in the Cloud, DanaC","author":"M\u00fchlbauer","year":"2013"},{"key":"2025120709003912900_ref107","first-page":"283","article-title":"Adaptive String Dictionary Compression in In-Memory Column-Store Database Systems","volume-title":"Proceedings of the International Conference on Extending Database Technology, EDBT","author":"M\u00fcller","year":"2014"},{"key":"2025120709003912900_ref108","first-page":"1123","article-title":"Cache-Efficient Aggregation: Hashing Is Sorting","volume-title":"Proceedings of the ACM Conference on Management of Data, SIGMOD","author":"M\u00fcller","year":"2015"},{"issue":"9","key":"2025120709003912900_ref109","doi-asserted-by":"crossref","first-page":"539","DOI":"10.14778\/2002938.2002940","article-title":"Efficiently Compiling Efficient Query Plans for Modern Hardware","volume":"4","author":"Neumann","year":"2011","journal-title":"Proceedings of the VLDB Endowment, PVLDB"},{"key":"2025120709003912900_ref110","first-page":"383","article-title":"Unnesting Arbitrary Queries","volume-title":"Datenbanksysteme f\u00fcr Business, Technologie und Web, BTW","author":"Neumann","year":"2015"},{"key":"2025120709003912900_ref111","first-page":"677","article-title":"Fast Serializable Multi-Version Concurrency Control for Main-Memory Database Systems","volume-title":"Proceedings of the ACM Conference on Management of Data, SIGMOD","author":"Neumann","year":"2015"},{"key":"2025120709003912900_ref112","doi-asserted-by":"crossref","first-page":"45","DOI":"10.1016\/S0020-0255(96)00173-9","article-title":"Transaction Routing for Distributed OLTP Systems: Survey and Recent Results","volume":"97","author":"Nikolaou","year":"1997","journal-title":"Inf. Sci."},{"key":"2025120709003912900_ref113","first-page":"233","article-title":"Alphasort: A RISC Machine Sort","volume-title":"Proceedings of the ACM Conference on Management of Data, SIGMOD","author":"Nyberg","year":"1994"},{"key":"2025120709003912900_ref114","first-page":"29","article-title":"Fast Crash Recovery in RAMCloud","volume-title":"Proceedings of the ACM Symposium on Operating Systems Principles, SOSP","author":"Ongaro","year":"2011"},{"key":"2025120709003912900_ref115","first-page":"1","article-title":"SOFORT: a Hybrid SCM-DRAM Storage Engine for Fast Data Recovery","volume-title":"Proceedings of the International Workshop on Data Management on New Hardware, DaMoN","author":"Oukid","year":"2014"},{"issue":"4","key":"2025120709003912900_ref116","doi-asserted-by":"crossref","first-page":"92","DOI":"10.1145\/1713254.1713276","article-title":"The Case for RAMClouds: Scalable High-Performance Storage Entirely in DRAM","volume":"43","author":"Ousterhout","year":"2009","journal-title":"Operating Systems Review"},{"issue":"7","key":"2025120709003912900_ref117","doi-asserted-by":"crossref","first-page":"121","DOI":"10.1145\/1965724.1965751","article-title":"The Case for RAMCloud","volume":"54","author":"Ousterhout","year":"2011","journal-title":"Communications of the ACM"},{"key":"2025120709003912900_ref118","volume-title":"Data Placement in Shared-Nothing Parallel Database Systems","author":"Padmanabhan","year":"1992"},{"issue":"10","key":"2025120709003912900_ref119","doi-asserted-by":"crossref","first-page":"610","DOI":"10.14778\/2021017.2021019","article-title":"PLP: Page Latch-free Shared-everything OLTP","volume":"4","author":"Pandis","year":"2011","journal-title":"Proc. VLDB Endow."},{"key":"2025120709003912900_ref120","article-title":"Skew-Aware Automatic Data Partitioning in Shared-Nothing, Parallel OLTP Systems","volume-title":"Proceedings of the ACM Conference on Management of Data, SIGMOD","author":"Pavlo","year":"2012"},{"issue":"2","key":"2025120709003912900_ref121","doi-asserted-by":"crossref","first-page":"121","DOI":"10.14778\/2732228.2732231","article-title":"Storage Management in the NVRAM Era","volume":"7","author":"Pelley","year":"2013","journal-title":"Proceedings of the VLDB Endowment, PVLDB"},{"issue":"5","key":"2025120709003912900_ref122","doi-asserted-by":"crossref","first-page":"602","DOI":"10.1109\/71.159043","article-title":"Checkpointing for Distributed Databases: Starting from the Basics","volume":"3","author":"Pilarski","year":"1992","journal-title":"IEEE Transactions on Parallel Distributed Systems, TPDS"},{"key":"2025120709003912900_ref123","first-page":"14","article-title":"CPU and Cache Efficient Management of Memory-Resident Databases","volume-title":"Proceedings of the International Conference on Data Engineering, ICDE","author":"Pirk","year":"2013"},{"key":"2025120709003912900_ref124","first-page":"1","article-title":"A Common Database Approach for OLTP and OLAP using an In-Memory Column Database","volume-title":"Proceedings of the ACM Conference on Management of Data, SIGMOD","author":"Plattner","year":"2009"},{"key":"2025120709003912900_ref125","first-page":"97","article-title":"Scaling Up Mixed Workloads: A Battle of Data Freshness, Flexibility, and Scheduling","volume-title":"Proceedings of the Technology Conference on Performance Evaluation and Benchmarking, TPCTC","author":"Psaroudakis","year":"2014"},{"key":"2025120709003912900_ref126","doi-asserted-by":"crossref","first-page":"171","DOI":"10.1016\/0164-1212(92)90126-5","article-title":"A Framework for Workload Allocation in Distributed Transaction Processing Systems","volume":"18","author":"Rahm","year":"1992","journal-title":"Journal on Systems Software"},{"key":"2025120709003912900_ref127","first-page":"475","article-title":"Making b+-trees cache conscious in main memory","volume-title":"Proceedings of the ACM Conference on Management of Data, SIGMOD","author":"Rao","year":"2000"},{"issue":"4.5","key":"2025120709003912900_ref128","doi-asserted-by":"crossref","first-page":"465","DOI":"10.1147\/rd.524.0465","article-title":"Phase-Change Random Access Memory: A Scalable Technology","volume":"52","author":"Raoux","year":"2008","journal-title":"IBM Journal of Research and Development"},{"key":"2025120709003912900_ref129","first-page":"1539","article-title":"Low-Overhead Asynchronous Checkpointing in Main-Memory Database Systems","volume-title":"Proceedings of the ACM Conference on Management of Data, SIGMOD","author":"Ren","year":"2016"},{"issue":"2","key":"2025120709003912900_ref130","first-page":"145","article-title":"Lightweight Locking for Main Memory Database Systems","volume":"6","author":"Ren","year":"2012","journal-title":"PVLDB"},{"issue":"4","key":"2025120709003912900_ref131","doi-asserted-by":"crossref","first-page":"228","DOI":"10.14778\/2856318.2856319","article-title":"High-Speed Query Processing over High-Speed Networks","volume":"9","author":"R\u00f6diger","year":"2015","journal-title":"Proceedings of the VLDB Endowment, PVLDB"},{"key":"2025120709003912900_ref132","first-page":"592","article-title":"Locality-Sensitive Operators for Parallel Main-memory Database Clusters","volume-title":"Proceedings of the International Conference on Data Engineering, ICDE","author":"R\u00f6diger","year":"2014"},{"key":"2025120709003912900_ref133","first-page":"1","article-title":"Log-Structured Memory for DRAM-based Storage","volume-title":"Proceedings of the USENIX conference on File and Storage Technologies, FAST","author":"Rumble","year":"2014"},{"key":"2025120709003912900_ref134","first-page":"452","article-title":"Checkpointing Memory-Resident Databases","volume-title":"Proceedings of the International Conference on Data Engineering, ICDE","author":"Salem","year":"1989"},{"issue":"1","key":"2025120709003912900_ref135","doi-asserted-by":"crossref","first-page":"161","DOI":"10.1109\/69.50911","article-title":"System M: A Transaction Processing Testbed for Memory Resident Data","volume":"2","author":"Salem","year":"1990","journal-title":"IEEE Transactions on Knowledge and Data Engineering, TKDE"},{"key":"2025120709003912900_ref136","first-page":"1","article-title":"Query Optimization Time: The New Bottleneck in Real-time Analytics","volume-title":"Proceedings of the International Workshop on In-Memory Data Management, IMDM","author":"Sen","year":"2015"},{"issue":"11","key":"2025120709003912900_ref137","doi-asserted-by":"crossref","first-page":"1184","DOI":"10.14778\/2536222.2536251","article-title":"SAP HANA: The Evolution from a Modern Main-Memory Data Platform to an Enterprise Application Platform","volume":"6","author":"Sikka","year":"2013","journal-title":"Proceedings of the VLDB Endowment, PVLDB"},{"key":"2025120709003912900_ref138","first-page":"731","article-title":"Christof Bornh\u00f6vd. Efficient Transaction Processing in SAP HANA Database: The End of a Column Store Myth","volume-title":"Proceedings of the ACM Conference on Management of Data, SIGMOD","author":"Sikka","year":"2012"},{"key":"2025120709003912900_ref139","unstructured":"IBM Knowledge Center: Pessimistic vs. Optimistic Concurrency Control\n          . http:\/\/ibm.co\/1PCPlI3."},{"key":"2025120709003912900_ref140","first-page":"4","article-title":"The Case for Shared Nothing","volume":"9","author":"Stonebraker","year":"1986","journal-title":"IEEE Data Engineering Bulletin"},{"key":"2025120709003912900_ref141","first-page":"2","article-title":"\u201cOne Size Fits All\u201d: An Idea Whose Time Has Come and Gone","volume-title":"Proceedings of the International Conference on Data Engineering, ICDE","author":"Stonebraker","year":"2005"},{"key":"2025120709003912900_ref142","first-page":"1150","article-title":"The End of an Architectural Era: (It\u2019s Time for a Complete Rewrite)","volume-title":"Proceedings of the International Conference on Very Large Data Bases, VLDB","author":"Stonebraker","year":"2007"},{"issue":"2","key":"2025120709003912900_ref143","first-page":"21","article-title":"The VoltDB Main Memory DBMS","volume":"36","author":"Stonebraker","year":"2013","journal-title":"IEEE Data Engineering Bulletin"},{"issue":"7191","key":"2025120709003912900_ref144","doi-asserted-by":"crossref","first-page":"80","DOI":"10.1038\/nature06932","article-title":"The Missing Memristor Found","volume":"453","author":"Strukov","year":"2008","journal-title":"Nature"},{"issue":"4","key":"2025120709003912900_ref145","doi-asserted-by":"crossref","first-page":"415","DOI":"10.1145\/4879.4880","article-title":"Locking performance in centralized databases","volume":"10","author":"Tay","year":"1985","journal-title":"ACM Transactions on Database Systems, TODS"},{"key":"2025120709003912900_ref146","first-page":"528","article-title":"In-Memory Data Management for Consumer Transactions The Times-Ten Approach","volume-title":"Proceedings of the ACM Conference on Management of Data, SIGMOD","author":"Times-Ten Team","year":"1999"},{"key":"2025120709003912900_ref147","first-page":"637","article-title":"In-Memory Data Management in the Application Tier","volume-title":"Proceedings of the International Conference on Data Engineering, ICDE","author":"Times-Ten Team","year":"2000"},{"key":"2025120709003912900_ref148","first-page":"588","article-title":"Mid-tier Caching: The TimesTen Approach","volume-title":"Proceedings of the ACM Conference on Management of Data, SIGMOD","author":"Times-Ten Team","year":"2002"},{"issue":"2","key":"2025120709003912900_ref149","doi-asserted-by":"crossref","first-page":"180","DOI":"10.1145\/320071.320076","article-title":"A Majority Consensus Approach to Concurrency Control for Multiple Copy Databases","volume":"4","author":"Thomas","year":"1979","journal-title":"ACM Transactions on Database Systems, TODS"},{"key":"2025120709003912900_ref150","first-page":"1","article-title":"Calvin: Fast Distributed Transactions for Partitioned Database Systems","volume-title":"Proceedings of the ACM Conference on Management of Data, SIGMOD","author":"Thomson","year":"2012"},{"key":"2025120709003912900_ref151","first-page":"18","article-title":"Speedy Transactions in Multicore In-Memory Databases","volume-title":"Proceedings of the ACM Symposium on Operating Systems Principles, SOSP","author":"Tu","year":"2013"},{"issue":"10","key":"2025120709003912900_ref152","doi-asserted-by":"crossref","first-page":"865","DOI":"10.14778\/2732951.2732960","article-title":"Scalable Logging through Emerging Non-Volatile Memory","volume":"7","author":"Wang","year":"2014","journal-title":"Proceedings of the VLDB Endowment, PVLDB"},{"key":"2025120709003912900_ref153","first-page":"1","article-title":"Using Restricted Transactional Memory to Build a Scalable In-Memory Database","volume-title":"Proceedings of the European Conference on Computer Systems, EuroSys","author":"Wang","year":"2014"},{"key":"2025120709003912900_ref154","first-page":"87","article-title":"Fast In-Memory Transaction Processing using RDMA and HTM","volume-title":"Proceedings of the ACM Symposium on Operating Systems Principles, SOSP","author":"Wei","year":"2015"},{"key":"2025120709003912900_ref155","volume-title":"Transactional Information Systems: Theory, Algorithms, and the Practice of Concurrency Control and Recovery","author":"Weikum","year":"2002"},{"issue":"1","key":"2025120709003912900_ref156","doi-asserted-by":"crossref","first-page":"67","DOI":"10.1145\/77643.77646","article-title":"Query Optimization in a Memory-resident Domain Relational Calculus Database System","volume":"15","author":"Whang","year":"1990","journal-title":"ACM Transactions on Database Systems, TODS"},{"key":"2025120709003912900_ref157","article-title":"High Volume Transaction Processing without Concurrency Control, Two Phase Commit, SQL or C++","volume-title":"Proceedings of the International Workshop on High Performance Transaction Systems, HPTS","author":"Whitney","year":"1997"},{"key":"2025120709003912900_ref158","first-page":"1","article-title":"Vectorizing Database Column Scans with Complex Predicates","volume-title":"Proceedings of the International Workshop on Accelerating Data Management Systems Using Modern Processor and Storage Architectures, ADMS","author":"Willhalm","year":"2013"},{"key":"2025120709003912900_ref159","first-page":"465","article-title":"Fast Databases with Fast Durability and Recovery Through Multicore Parallelism","volume-title":"Proceedings of the USENIX Symposium on Operation System Design and Implementation, OSDI","author":"Zheng","year":"2014"},{"key":"2025120709003912900_ref160","volume-title":"Physical Database Design Decision Algorithms and Concurrent Reorganization for Parallel Database Systems","author":"Zilio","year":"1998"}],"container-title":["Foundations and Trends in Databases"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.emerald.com\/ftdbs\/article-pdf\/8\/1-2\/1\/10963608\/1900000058en.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/www.emerald.com\/ftdbs\/article-pdf\/8\/1-2\/1\/10963608\/1900000058en.pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,4,29]],"date-time":"2026-04-29T14:11:40Z","timestamp":1777471900000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.emerald.com\/ftdbs\/article\/8\/1-2\/1\/1323458\/Main-Memory-Database-Systems"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2017,8,23]]},"references-count":160,"journal-issue":{"issue":"1-2","published-print":{"date-parts":[[2017,8,23]]}},"URL":"https:\/\/doi.org\/10.1561\/1900000058","relation":{},"ISSN":["1931-7883","1931-7891"],"issn-type":[{"value":"1931-7883","type":"print"},{"value":"1931-7891","type":"electronic"}],"subject":[],"published":{"date-parts":[[2017,8,23]]}}}