skip to main content
research-article

Main Memory Database Recovery: A Survey

Published:05 March 2021Publication History
Skip Abstract Section

Abstract

Many of today’s applications need massive real-time data processing. In-memory database systems have become a good alternative for these requirements. These systems maintain the primary copy of the database in the main memory to achieve high throughput rates and low latency. However, a database in RAM is more vulnerable to failures than in traditional disk-oriented databases because of the memory volatility. DBMSs implement recovery activities (logging, checkpoint, and restart) for recovery proposes. Although the recovery component looks similar in disk- and memory-oriented systems, these systems differ dramatically in the way they implement their architectural components, such as data storage, indexing, concurrency control, query processing, durability, and recovery. This survey aims to provide a thorough review of in-memory database recovery techniques. To achieve this goal, we reviewed the main concepts of database recovery and architectural choices to implement an in-memory database system. Only then, we present the techniques to recover in-memory databases and discuss the recovery strategies of a representative sample of modern in-memory databases.

References

  1. Daniel J. Abadi, Samuel R. Madden, and Nabil Hachem. 2008. Column-stores vs. row-stores: How different are they really? In Proceedings of the 2008 ACM SIGMOD International Conference on Management of Data. 967--980.Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Rakesh Agrawal, Michael J. Carey, and Miron Livny. 1987. Concurrency control performance modeling: Alternatives and implications. ACM Transactions on Database Systems (TODS) 12, 4 (1987), 609--654.Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Rakesh Agrawal and David J. Dewitt. 1985. Integrated concurrency control and recovery mechanisms: Design and performance evaluation. ACM Transactions on Database Systems (TODS) 10, 4 (1985), 529--564.Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Rakesh Agrawal and H. V. Jagadish. 1989. Recovery algorithms for database machines with non-volatile main memory. In Proceedings of the International Workshop on Database Machines. Springer, 269--285.Google ScholarGoogle Scholar
  5. Anastassia Ailamaki, David J. DeWitt, Mark D. Hill, and David A. Wood. 1999. DBMSs on a modern processor: Where does time go? In Proceedings of 25th International Conference on Very Large Data Bases (VLDB’99) (September 7-10, 1999, Edinburgh, Scotland, UK). 266--277.Google ScholarGoogle Scholar
  6. Martina-Cezara Albutiu, Alfons Kemper, and Thomas Neumann. 2012. Massively parallel sort-merge joins in main memory multi-core database systems. Arxiv Preprint Arxiv:1207.0145 (2012).Google ScholarGoogle Scholar
  7. Karolina Alexiou, Donald Kossmann, and Per-Ake Larson. 2013. Adaptive range filters for cold data: Avoiding trips to Siberia. Proceedings of the VLDB Endowment 6, 14 (2013), 1714--1725.Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Joy Arulraj and Andrew Pavlo. 2017. How to build a non-volatile memory database management system. In Proceedings of the 2017 ACM International Conference on Management of Data. 1753--1758.Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Joy Arulraj, Andrew Pavlo, and Subramanya R. Dulloor. 2015. Let’s talk about storage & recovery methods for non-volatile memory database systems. In Proceedings of the 2015 ACM SIGMOD International Conference on Management of Data. ACM, 707--722.Google ScholarGoogle Scholar
  10. Joy Arulraj, Andrew Pavlo, and Prashanth Menon. 2016. Bridging the archipelago between row-stores and column-stores for hybrid workloads. In Proceedings of the 2016 International Conference on Management of Data. 583--598.Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Joy Arulraj, Matthew Perron, and Andrew Pavlo. 2016. Write-behind logging. Proceedings of the VLDB Endowment 10, 4 (2016), 337--348.Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Peter Bailis, Alan Fekete, Michael J. Franklin, Ali Ghodsi, Joseph M. Hellerstein, and Ion Stoica. 2014. Coordination avoidance in database systems. Proceedings of the VLDB Endowment 8, 3 (2014), 185--196.Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Jerry Baulier, Philip Bohannon, S. Gogate, C. Gupta, and S. Haldar. 1999. DataBlitz storage manager: Main-memory database performance for critical applications. In ACM SIGMOD Record, Vol. 28. Association for Computing Machinery (ACM), 519--520.Google ScholarGoogle Scholar
  14. Rudolf Bayer and Mario Schkolnick. 1977. Concurrency of operations on b-trees. Acta Informatica 9, 1 (1977), 1--21.Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Philip A. Bernstein and Nathan Goodman. 1981. Concurrency control in distributed database systems. ACM Computing Surveys (CSUR) 13, 2 (1981), 185--221.Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Philip A. Bernstein, Vassos Hadzilacos, and Nathan Goodman. 1987. Concurrency Control and Recovery in Database Systems. Vol. 370. Addison-Wesley New York.Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Roberto Bez, Emilio Camerlenghi, Alberto Modelli, and Angelo Visconti. 2003. Introduction to flash memory. Proc. IEEE 91, 4 (2003), 489--502.Google ScholarGoogle ScholarCross RefCross Ref
  18. Robert Binna, Eva Zangerle, Martin Pichl, Günther Specht, and Viktor Leis. 2018. Hot: A height optimized trie index for main-memory database systems. In Proceedings of the 2018 International Conference on Management of Data. 521--534.Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Dina Bitton, Maria Butrico Hanrahan, and Carolyn Turbyfill. 1987. Performance of complex queries in main memory database systems. In Proceedings of the 1987 IEEE 3rd International Conference onData Engineering. IEEE, 72--81.Google ScholarGoogle ScholarCross RefCross Ref
  20. Haran Boral, William Alexander, Larry Clay, George Copeland, Scott Danforth, Michael Franklin, Brian Hart, Marc Smith, and Patrick Valduriez. 1990. Prototyping Bubba, a highly parallel database system. IEEE Transactions on Knowledge & Data Engineering 1 (1990), 4--24.Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Greg Bronevetsky, Rohit Fernandes, Daniel Marques, Keshav Pingali, and Paul Stodghill. 2006. Recent advances in checkpoint/recovery systems. In Proceedings of the 20th IEEE International Parallel & Distributed Processing Symposium. IEEE, 8--15.Google ScholarGoogle ScholarCross RefCross Ref
  22. Tuan Cao, Marcos Vaz Salles, Benjamin Sowell, Yao Yue, Alan Demers, Johannes Gehrke, and Walker White. 2011. Fast checkpoint recovery algorithms for frequently consistent applications. In Proceedings of the 2011 ACM SIGMOD International Conference on Management of data. Association for Computing Machinery (ACM), 265--276.Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Paulo Cappelletti, Carla Golla, Piero Olivo, and Enrico Zanoni. 2013. Flash Memories. Springer Science & Business Media.Google ScholarGoogle Scholar
  24. Michael J. Carey. 1984. The Performance of Concurrency Control Algorithms for Database Management Systems. Technical Report. University of Wisconsin-Madison Department of Computer Sciences.Google ScholarGoogle Scholar
  25. Sang K. Cha and Changbin Song. 2004. P* TIME: Highly scalable OLTP DBMS for managing update-intensive stream workload. In Proceedings of the 30th International Conference on Very Large Data Bases-Volume 30. VLDB Endowment, 1033--1044.Google ScholarGoogle Scholar
  26. Andreas Chatzistergiou, Marcelo Cintra, and Stratis D. Viglas. 2015. Rewind: Recovery write-ahead system for in-memory non-volatile data-structures. Proceedings of the VLDB Endowment 8, 5 (2015), 497--508.Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Jack Chen, Samir Jindel, Robert Walzer, Rajkumar Sen, Nika Jimsheleishvilli, and Michael Andrews. 2016. The MEMSQL query optimizer: A modern optimizer for real-time analytics in a distributed database. Proceedings of the VLDB Endowment 9, 13 (2016), 1401--1412.Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Shimin Chen, Phillip B. Gibbons, and Todd C. Mowry. 2001. Improving index performance through prefetching. ACM SIGMOD Record 30, 2 (2001), 235--246.Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Shimin Chen, Phillip B. Gibbons, and Suman Nath. 2011. Rethinking database algorithms for phase change memory.. In CIDR, Vol. 11. 5th.Google ScholarGoogle Scholar
  30. Josephine M. Cheng, Christopher R. Loosley, Akira Shibamiya, and Patricia S. Worthington. 1984. IBM database 2 performance: Design, implementation, and tuning. IBM Systems Journal 23, 2 (1984), 189--210.Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Jatin Chhugani, Anthony D. Nguyen, Victor W. Lee, William Macy, Mostafa Hagog, Yen-Kuang Chen, Akram Baransi, Sanjeev Kumar, and Pradeep Dubey. 2008. Efficient implementation of sorting on multi-core SIMD CPU architecture. Proceedings of the VLDB Endowment 1, 2 (2008), 1313--1324.Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Brian E. Clark and Michael J. Corrigan. 1989. Application system/400 performance characteristics. IBM Systems Journal 28, 3 (1989), 407--423.Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Joel Coburn, Trevor Bunker, Meir Schwarz, Rajesh Gupta, and Steven Swanson. 2013. From ARIES to MARS: Transaction support for next-generation, solid-state drives. In Proceedings of the 24th ACM Symposium on Operating Systems Principles. 197--212.Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. George P. Copeland and Setrag N. Khoshafian. 1985. A decomposition storage model. ACM SIGMOD Record 14, 4 (1985), 268--279.Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Richard A. Crus. 1984. Data recovery in IBM database 2. IBM Systems Journal 23, 2 (1984), 178--188.Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Bin Cui, Beng Chin Ooi, Jianwen Su, and Kian-Lee Tan. 2003. Contorting high dimensional data for efficient main memory KNN processing. In Proceedings of the 2003 ACM SIGMOD International Conference on Management of Data. 479--490.Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Bin Cui, Beng Chin Ooi, Jianwen Su, and K.-L. Tan. 2004. Main memory indexing: The case for BD-tree. IEEE Transactions on Knowledge and Data Engineering 16, 7 (2004), 870--874.Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Justin DeBrabant, Joy Arulraj, Andrew Pavlo, Michael Stonebraker, Stan Zdonik, and Subramanya Dulloor. 2014. A prolegomenon on OLTP database systems for non-volatile memory. ADMS@ VLDB (2014).Google ScholarGoogle Scholar
  39. Justin DeBrabant, Andrew Pavlo, Stephen Tu, Michael Stonebraker, and Stan Zdonik. 2013. Anti-caching: A new approach to database management system architecture. Proceedings of the VLDB Endowment 6, 14 (2013), 1942--1953.Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. David J. DeWitt, Shahram Ghandeharizadeh, Donovan A. Schneider, Allan Bricker, Hui-I Hsiao, and Rick Rasmussen. 1990. The gamma database machine project. IEEE Trans. Knowl. Data Eng. 2, 1 (1990), 44--62.Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. David J. DeWitt, Randy H. Katz, Frank Olken, Leonard D. Shapiro, Michael R. Stonebraker, and David A. Wood. 1984. Implementation Techniques for Main Memory Database Systems. Vol. 14. Association for Computing Machinery.Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Cristian Diaconu, Craig Freedman, Erik Ismert, Per-Ake Larson, Pravin Mittal, Ryan Stonecipher, Nitin Verma, and Mike Zwilling. 2013. Hekaton: SQL server’s memory-optimized OLTP engine. In Proceedings of the 2013 ACM SIGMOD International Conference on Management of Data. Association for Computing Machinery (ACM), 1243--1254.Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Aleksandar Dragojević, Dushyanth Narayanan, Miguel Castro, and Orion Hodson. 2014. FaRM: Fast remote memory. In Proceedings of the 11th {USENIX} Symposium on Networked Systems Design and Implementation (NSDI 14). 401--414.Google ScholarGoogle Scholar
  44. Alexander Driskill-Smith. 2010. Latest advances and future prospects of STT-RAM. In Proceedings of the Non-Volatile Memories Workshop. 11--13.Google ScholarGoogle Scholar
  45. Margaret H. Eich. 1986. Main memory database recovery. In Proceedings of the Fall Joint Computer Conference. IEEE Computer Society Press, 1226--1232.Google ScholarGoogle Scholar
  46. Margaret H. Eich. 1987. A classification and comparison of main memory database recovery techniques. In Proceedings of the 1987 IEEE 3rd International Conference on Data Engineering. IEEE, 332--339.Google ScholarGoogle ScholarCross RefCross Ref
  47. Margaret H. Eich. 1988. Mars: The design of a main memory database machine. Database Machines and Knowledge Base Machines 43 (1988), 325--338.Google ScholarGoogle ScholarCross RefCross Ref
  48. Ahmed Eldawy, Justin Levandoski, and Per-Ake Larson. 2014. Trekking through Siberia: Managing cold data in a memory-optimized database. Proceedings of the VLDB Endowment 7, 11 (2014), 931--942.Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. Franz Faerber, Alfons Kemper, Per-Ake Larson, Justin Levandoski, Thomas Neumann, Andrew Pavlo, et al. 2017. Main memory database systems. Foundations and Trends® in Databases 8, 1--2 (2017), 1--130.Google ScholarGoogle Scholar
  50. Bin Fan, David G. Andersen, and Michael Kaminsky. 2013. Memc3: Compact and concurrent memcache with dumber caching and smarter hashing. In Presented as part of the 10th {USENIX} Symposium on Networked Systems Design and Implementation ({NSDI} 13). 371--384.Google ScholarGoogle Scholar
  51. Franz Färber, Sang Kyun Cha, Jürgen Primsch, Christof Bornhövd, Stefan Sigg, and Wolfgang Lehner. 2012. SAP HANA database: Data management for modern business applications. ACM SIGMOD Record 40, 4 (2012), 45--51.Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. Franz Färber, Norman May, Wolfgang Lehner, Philipp Große, Ingo Müller, Hannes Rauhe, and Jonathan Dees. 2012. The SAP HANA database--an architecture overview. IEEE Data Engineering Bulletin 35, 1 (2012), 28--33.Google ScholarGoogle Scholar
  53. Fork. 2020. Fork (system call). https://en.wikipedia.org/wiki/Fork_(system_call). Accessed in December 1, 2020.Google ScholarGoogle Scholar
  54. Peter Franaszek and John T. Robinson. 1985. Limitations of concurrency in transaction processing. ACM Transactions on Database Systems (TODS) 10, 1 (1985), 1--28.Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. Craig Freedman, Erik Ismert, and Per-Ake Larson. 2014. Compilation in the Microsoft SQL server Hekaton engine. IEEE Data Engineering Bulletin. 37, 1 (2014), 22--30.Google ScholarGoogle Scholar
  56. Florian Funke, Alfons Kemper, Tobias Mühlbauer, Thomas Neumann, and Viktor Leis. 2014. HyPer beyond software: Exploiting modern hardware for main-memory database systems. Datenbank-Spektrum 14, 3 (2014), 173--181.Google ScholarGoogle ScholarCross RefCross Ref
  57. Shen Gao, Jianliang Xu, Bingsheng He, Byron Choi, and Haibo Hu. 2011. PCMLogging: Reducing transaction logging overhead with PCM. In Proceedings of the 20th ACM International Conference on Information and Knowledge Management. 2401--2404.Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. Hector Garcia-Molina and Kenneth Salem. 1992. Main memory database systems: An overview. IEEE Transactions on Knowledge and Data Engineering 4, 6 (1992), 509--516.Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. Vishesh Garg, Abhimanyu Singh, and Jayant R. Haritsa. 2015. On Improving Write Performance in PCM Databases. Technical Report. Technical report, TR-2015-01, IISc.Google ScholarGoogle Scholar
  60. Dieter Gawlick and David Kinkade. 1985. Varieties of concurrency control in IMS/VS fast path. IEEE Database Engineering Bulletin 8, 2 (1985), 3--10.Google ScholarGoogle Scholar
  61. Goetz Graefe, Wey Guy, and Caetano Sauer. 2016. Instant recovery with write-ahead logging: Page repair, system restart, media restore, and system failover. Synthesis Lectures on Data Management 8, 2 (2016), 1--113.Google ScholarGoogle ScholarCross RefCross Ref
  62. Goetz Graefe and Harumi Kuno. 2012. Definition, detection, and recovery of single-page failures, a fourth class of database failures. Proceedings of the VLDB Endowment 5, 7 (2012), 646--655.Google ScholarGoogle ScholarDigital LibraryDigital Library
  63. Goetz Graefe and William J. McKenna. 1993. The volcano optimizer generator: Extensibility and efficient search. In Proceedings of IEEE 9th International Conference on Data Engineering. IEEE, 209--218.Google ScholarGoogle Scholar
  64. Jim Gray and D. Bitton. 1988. Disk shadowing. In Proceedings of the 14th International Conference on Very Large Data Bases (VLDB’88), August 1988, Vol. 88. 331--338.Google ScholarGoogle Scholar
  65. Jim Gray, Pat Helland, Patrick O’Neil, and Dennis Shasha. 1996. The dangers of replication and a solution. In Proceedings of the 1996 ACM SIGMOD International Conference on Management of Data. 173--182.Google ScholarGoogle ScholarDigital LibraryDigital Library
  66. Jim Gray, Paul McJones, Mike Blasgen, Bruce Lindsay, Raymond Lorie, Tom Price, Franco Putzolu, and Irving Traiger. 1981. The recovery manager of the system R database manager. ACM Computing Surveys (CSUR) 13, 2 (1981), 223--242.Google ScholarGoogle ScholarDigital LibraryDigital Library
  67. Jim Gray and Andreas Reuter. 1992. Transaction Processing: Concepts and Techniques. Elsevier.Google ScholarGoogle ScholarDigital LibraryDigital Library
  68. Jim N. Gray, Raymond A. Lorie, and Gianfranco R. Putzolu. 1975. Granularity of locks in a shared data base. In Proceedings of the 1st International Conference on Very Large Data Bases. 428--451.Google ScholarGoogle Scholar
  69. Tandem Database Group. 1987. NonStop SQL: A distributed, high-performance, high-availability implementation of SQL. In Proceedings of the High Performance Transaction Systems: 2nd International Workshop Asilomar Conference Center, Pacific Grove, CA, USA September 28--30. Springer, 60--104.Google ScholarGoogle Scholar
  70. Le Gruenwald and Margaret H. Eich. 1991. MMDB Reload Algorithms. Vol. 20. In Proceedings of the 1991 ACM SIGMOD International Conference on Management of Data (SIGMOD’91), April 1991 397-405.Google ScholarGoogle ScholarDigital LibraryDigital Library
  71. Le Gruenwald and Margaret H. Eich. 1994. MMDB reload concerns. Information Sciences 76, 1--2 (1994), 151--176.Google ScholarGoogle ScholarDigital LibraryDigital Library
  72. Wenming Guo and Zhiqiang Hu. 2010. Memory database index optimization. In Proceedings of the 2010 International Conference on Computational Intelligence and Software Engineering. IEEE, 1--3.Google ScholarGoogle ScholarCross RefCross Ref
  73. Mohit Kumar Gupta, Vishal Verma, and Megha Singh Verma. 2014. In-memory database systems-a paradigm shift. Arxiv Preprint Arxiv:1402.1258 (2014).Google ScholarGoogle Scholar
  74. Theo Haerder and Andreas Reuter. 1983. Principles of transaction-oriented database recovery. ACM Computing Surveys (CSUR) 15, 4 (1983), 287--317.Google ScholarGoogle ScholarDigital LibraryDigital Library
  75. Robert Hagmann. 1987. Reimplementing the Cedar file system using logging and group commit. In Proceedings of the 11th ACM Symposium on Operating Systems Principles. 155--162.Google ScholarGoogle ScholarDigital LibraryDigital Library
  76. Robert B. Hagmann. 1986. A crash recovery scheme for a memory-resident database system. IEEE Trans. Comput. 35, 9 (1986), 839--843.Google ScholarGoogle ScholarDigital LibraryDigital Library
  77. Theo Härder, Caetano Sauer, Goetz Graefe, and Wey Guy. 2015. Instant recovery with write-ahead logging. Datenbank-Spektrum 15, 3 (2015), 235--239.Google ScholarGoogle ScholarCross RefCross Ref
  78. Stavros Harizopoulos, Daniel J. Abadi, Samuel Madden, and Michael Stonebraker. 2018. OLTP through the looking glass, and what we found there. In Making Databases Work: The Pragmatic Wisdom of Michael Stonebraker. 409--439.Google ScholarGoogle Scholar
  79. Robin Harris. 2016. Windows leaps into the NVM revolution. https://www.zdnet.com/article/windows-leaps-into-the-nvm-revolution/. Accessed in July 22, 2020.Google ScholarGoogle Scholar
  80. Wytze Hazenberg and Sjoerd Hemminga. 2011. Main memory database systems: Opportunities and pitfalls. SC@ RUG 2011 Proceedings (2011), 113.Google ScholarGoogle Scholar
  81. Maurice Herlihy and J. Eliot B. Moss. 1993. Transactional memory: Architectural support for lock-free data structures. In Proceedings of the 20th Annual International Symposium on Computer Architecture. 289--300.Google ScholarGoogle ScholarDigital LibraryDigital Library
  82. Maristela Holanda, Angelo Brayner, and Sergio Fialho. 2008. A self-adaptable scheduler for synchronizing transactions in dynamically configurable environments. Data & Knowledge Engineering 66, 2 (2008), 223--242.Google ScholarGoogle ScholarDigital LibraryDigital Library
  83. Huiqi Hu, Xuan Zhou, Tao Zhu, Weining Qian, and Aoying Zhou. 2019. In-memory transaction processing: Efficiency and scalability considerations. Knowledge and Information Systems 61, 3 (2019), 1209--1240.Google ScholarGoogle ScholarCross RefCross Ref
  84. Jian Huang, Karsten Schwan, and Moinuddin K. Qureshi. 2014. NVRAM-aware logging in transaction systems. Proceedings of the VLDB Endowment 8, 4 (2014), 389--400.Google ScholarGoogle ScholarDigital LibraryDigital Library
  85. Svein-Olaf Hvasshovd, Øystein Torbjørnsen, Svein Erik Bratsberg, and Per Holager. 1995. The clustra telecom database: High availability, high throughput, and real-time response. In Proceedings of the 21st International Conference on Very Large Data Bases. Morgan Kaufmann Publishers Inc., 469--477.Google ScholarGoogle Scholar
  86. Joseph Izraelevitz, Terence Kelly, and Aasheesh Kolli. 2016. Failure-atomic persistent memory updates via JUSTDO logging. ACM SIGARCH Computer Architecture News 44, 2 (2016), 427--442.Google ScholarGoogle ScholarDigital LibraryDigital Library
  87. H. V. Jagadish, Abraham Silberschatz, and S. Sudarshan. 1993. Recovering from main-memory lapses. In Proceedings of VLDB, Vol. 93. 391--404.Google ScholarGoogle Scholar
  88. Hosagrahar V. Jagadish, Daniel Lieuwen, Rajeev Rastogi, Abraham Silberschatz, and S. Sudarshan. 1994. Dali: A high performance main memory storage manager. In Proceedings of VLDB. 48--59.Google ScholarGoogle Scholar
  89. Flavio P. Junqueira, Benjamin C. Reed, and Marco Serafini. 2011. ZAB: High-performance broadcast for primary-backup systems. In Proceedings of the 2011 IEEE/IFIP 41st International Conference on Dependable Systems & Networks (DSN). IEEE, 245--256.Google ScholarGoogle ScholarDigital LibraryDigital Library
  90. Robert Kallman, Hideaki Kimura, Jonathan Natkins, Andrew Pavlo, Alex Rasin, Stanley B. Zdonik, Evan P. C. Jones, Samuel Madden, Michael Stonebraker, Yang Zhang, John Hugg, and Daniel J. Abadi. 2008. H-store: a high-performance, distributed main memory transaction processing system. Proceedings of the VLDB Endowment 1, 2 (2008), 1496--1499.Google ScholarGoogle ScholarDigital LibraryDigital Library
  91. Tomas Karnagel, Roman Dementiev, Ravi Rajwar, Konrad Lai, Thomas Legler, Benjamin Schlegel, and Wolfgang Lehner. 2014. Improving in-memory database index performance with intel® transactional synchronization extensions. In Proceedings of the 2014 IEEE 20th International Symposium on High Performance Computer Architecture (HPCA). IEEE, 476--487.Google ScholarGoogle ScholarCross RefCross Ref
  92. Alfons Kemper and Thomas Neumann. 2011. HyPer: A hybrid OLTP&OLAP main memory database system based on virtual memory snapshots. In Proceedings of the 2011 IEEE 27th International Conference on Data Engineering (ICDE). IEEE, 195--206.Google ScholarGoogle ScholarDigital LibraryDigital Library
  93. Changkyu Kim, Jatin Chhugani, Nadathur Satish, Eric Sedlar, Anthony D. Nguyen, Tim Kaldewey, Victor W. Lee, Scott A. Brandt, and Pradeep Dubey. 2010. FAST: Fast architecture sensitive tree search on modern CPUs and GPUs. In Proceedings of the 2010 ACM SIGMOD International Conference on Management of data. 339--350.Google ScholarGoogle ScholarDigital LibraryDigital Library
  94. Hideaki Kimura. 2015. FOEDUS: OLTP engine for a thousand cores and NVRAM. In Proceedings of the 2015 ACM SIGMOD International Conference on Management of Data. 691--706.Google ScholarGoogle ScholarDigital LibraryDigital Library
  95. Hsiang-Tsung Kung and John T. Robinson. 1981. On optimistic methods for concurrency control. ACM Transactions on Database Systems (TODS) 6, 2 (1981), 213--226.Google ScholarGoogle ScholarDigital LibraryDigital Library
  96. Tirthankar Lahiri, Marie-Anne Neimat, and Steve Folkman. 2013. Oracle timesten: An in-memory database for enterprise applications. IEEE Data Eng. Bull. 36, 2 (2013), 6--13.Google ScholarGoogle Scholar
  97. Leslie Lamport. 2019. The part-time parliament. In Concurrency: The Works of Leslie Lamport. 277--317.Google ScholarGoogle Scholar
  98. Leslie Lamport. 2001. Paxos made simple. ACM Sigact News 32, 4 (2001), 18--25.Google ScholarGoogle Scholar
  99. Per-Ake Larson. 1988. Linear hashing with separatorsâa dynamic hashing scheme achieving one-access. ACM Transactions on Database Systems (TODS) 13, 3 (1988), 366--388.Google ScholarGoogle ScholarDigital LibraryDigital Library
  100. Per-Ake Larson and Justin Levandoski. 2016. Modern main-memory database systems. Proceedings of the VLDB Endowment 9, 13 (2016), 1609--1610.Google ScholarGoogle ScholarDigital LibraryDigital Library
  101. Per-Ake Larson, Mike Zwilling, and Kevin Farlee. 2013. The Hekaton memory-optimized OLTP engine. IEEE Data Engineering Bulletin. 36, 2 (2013), 34--40.Google ScholarGoogle Scholar
  102. Juchang Lee, Yong Sik Kwon, Franz Färber, Michael Muehle, Chulwon Lee, Christian Bensberg, Joo Yeon Lee, Arthur H. Lee, and Wolfgang Lehner. 2013. SAP HANA distributed in-memory database system: Transaction, session, and metadata management. In Proceedings of the 2013 IEEE 29th International Conference on Data Engineering (ICDE). IEEE, 1165--1173.Google ScholarGoogle Scholar
  103. Tobin J. Lehman and Michael J. Carey. 1985. A Study of Index Structures for Main Memory Database Management Systems. Technical Report. University of Wisconsin-Madison Department of Computer Sciences.Google ScholarGoogle Scholar
  104. Tobin J. Lehman and Michael J. Carey. 1987. A Recovery Algorithm for a High-performance Memory-resident Database System. Vol. 16. Association for Computing Machinery (ACM).Google ScholarGoogle Scholar
  105. Tobin J. Lehman, Eugene J. Shekita, and L.-F. Cabrera. 1992. An evaluation of starburst’s memory resident storage component. IEEE Transactions on Knowledge and Data Engineering 4, 6 (1992), 555--566.Google ScholarGoogle ScholarDigital LibraryDigital Library
  106. Viktor Leis, Peter Boncz, Alfons Kemper, and Thomas Neumann. 2014. Morsel-driven parallelism: A NUMA-aware query evaluation framework for the many-core age. In Proceedings of the 2014 ACM SIGMOD International Conference on Management of Data. 743--754.Google ScholarGoogle ScholarDigital LibraryDigital Library
  107. Viktor Leis, Michael Haubenschild, and Thomas Neumann. 2019. Optimistic lock coupling: A scalable and efficient general-purpose synchronization method. IEEE Data Engineering Bulletin 42, 1 (2019), 73--84.Google ScholarGoogle Scholar
  108. Viktor Leis, Alfons Kemper, and Thomas Neumann. 2013. The adaptive radix tree: ARTful indexing for main-memory databases. In 2013 IEEE 29th International Conference on Data Engineering (ICDE). IEEE, 38--49.Google ScholarGoogle ScholarDigital LibraryDigital Library
  109. Viktor Leis, Alfons Kemper, and Thomas Neumann. 2014. Exploiting hardware transactional memory in main-memory databases. In Proceedings of the 2014 IEEE 30th International Conference on Data Engineering. IEEE, 580--591.Google ScholarGoogle ScholarCross RefCross Ref
  110. Justin J. Levandoski, Per-Ake Larson, and Radu Stoica. 2013. Identifying hot and cold data in main-memory databases. In Proceedings of the 2013 IEEE 29th International Conference onData Engineering (ICDE). IEEE, 26--37.Google ScholarGoogle ScholarDigital LibraryDigital Library
  111. Justin J. Levandoski, David B. Lomet, and Sudipta Sengupta. 2013. The bw-tree: A b-tree for new hardware platforms. In Proceedings of the 2013 IEEE 29th International Conference on Data Engineering (ICDE). IEEE, 302--313.Google ScholarGoogle ScholarDigital LibraryDigital Library
  112. Eliezer Levy and Abraham Silberschatz. 1992. Incremental recovery in main memory database systems. IEEE Transactions on Knowledge and Data Engineering 4, 6 (1992), 529--540.Google ScholarGoogle ScholarDigital LibraryDigital Library
  113. Kai Li and Jeffrey F. Naughton. 2000. Multiprocessor main memory transaction processing. In Proceedings of the 1st International Symposium on Databases in Parallel and Distributed Systems. IEEE Computer Society Press, 177--187.Google ScholarGoogle Scholar
  114. Liang Li, Guoren Wang, Gang Wu, and Ye Yuan. 2018. Consistent snapshot algorithms for in-memory database systems: Experiments and analysis. In Proceedings of the 2018 IEEE 34th International Conference on Data Engineering (ICDE). IEEE, 1284--1287.Google ScholarGoogle ScholarCross RefCross Ref
  115. Liang Li, Guoren Wang, Gang Wu, Ye Yuan, Lei Chen, and Xiang Lian. 2018. A comparative study of consistent snapshot algorithms for main-memory database systems. Arxiv Preprint Arxiv:1810.04915 (2018).Google ScholarGoogle Scholar
  116. Xi Li and Margaret H. Eich. 1993. Post-crash log processing for fuzzy checkpointing main memory databases. In Proceedings of the 1993 9th International Conference on Data Engineering. IEEE, 117--124.Google ScholarGoogle Scholar
  117. Yinan Li, Ippokratis Pandis, Rene Mueller, Vijayshankar Raman, and Guy M. Lohman. 2013. NUMA-aware algorithms: the case of data shuffling. In CIDR.Google ScholarGoogle Scholar
  118. A.-P. Liedes and Antoni Wolski. 2006. Siren: A memory-conserving, snapshot-consistent checkpoint algorithm for in-memory databases. In Proceedings of the 22nd International Conference on Data Engineering, 2006 (ICDE’06). IEEE, 99--99.Google ScholarGoogle ScholarDigital LibraryDigital Library
  119. Jun-Lin Lin and Margaret H. Dunham. 1997. A survey of distributed database checkpointing. Distributed and Parallel Databases 5, 3 (1997), 289--319.Google ScholarGoogle ScholarDigital LibraryDigital Library
  120. Barbara Liskov and Robert Scheifler. 1983. Guardians and actions: Linguistic support for robust, distributed programs. ACM Transactions on Programming Languages and Systems (TOPLAS) 5, 3 (1983), 381--404.Google ScholarGoogle ScholarDigital LibraryDigital Library
  121. David Lomet, Alan Fekete, Rui Wang, and Peter Ward. 2012. Multi-version concurrency via timestamp range conflict management. In Proceedings of the 2012 IEEE 28th International Conference on Data Engineering. IEEE, 714--725.Google ScholarGoogle ScholarDigital LibraryDigital Library
  122. Lukas M. Maas, Thomas Kissinger, Dirk Habich, and Wolfgang Lehner. 2013. Buzzard: A numa-aware in-memory indexing system. In Proceedings of the 2013 ACM SIGMOD International Conference on Management of Data. 1285--1286.Google ScholarGoogle ScholarDigital LibraryDigital Library
  123. Sanjay Kumar Madria. 1997. A study of the concurrency control and recovery algorithms in nested transaction environment. Comput. J. 40, 10 (1997), 630--639.Google ScholarGoogle ScholarCross RefCross Ref
  124. Darko Makreshanski, Justin Levandoski, and Ryan Stutsman. 2015. To lock, swap, or elide: On the interplay of hardware transactional memory and lock-free indexing. Proceedings of the VLDB Endowment 8, 11 (2015), 1298--1309.Google ScholarGoogle ScholarDigital LibraryDigital Library
  125. Nirmesh Malviya, Ariel Weisberg, Samuel Madden, and Michael Stonebraker. 2014. Rethinking main memory OLTP recovery. In Proceedings of the 2014 IEEE 30th International Conference on Data Engineering (ICDE). IEEE, 604--615.Google ScholarGoogle ScholarCross RefCross Ref
  126. Yandong Mao, Eddie Kohler, and Robert Tappan Morris. 2012. Cache craftiness for fast multicore key-value storage. In Proceedings of the 7th ACM European Conference on Computer Systems. 183--196.Google ScholarGoogle ScholarDigital LibraryDigital Library
  127. Prashanth Menon, Todd C. Mowry, and Andrew Pavlo. 2017. Relaxed operator fusion for in-memory databases: Making compilation, vectorization, and prefetching work together at last. Proceedings of the VLDB Endowment 11, 1 (2017), 1--13.Google ScholarGoogle ScholarDigital LibraryDigital Library
  128. Toshimi Minoura. 1983. Multi-level Concurrency Control of a Database System. Oregon State University, Computer Science Department.Google ScholarGoogle Scholar
  129. Christopher Mitchell, Yifeng Geng, and Jinyang Li. 2013. Using one-sided (RDMA) reads to build a fast, CPU-efficient key-value store. In Proceedings of the 2013 {USENIX} Annual Technical Conference ({USENIX}{ATC} 13). 103--114.Google ScholarGoogle Scholar
  130. C. Mohan. 1989. ARIES/KVL: A Key-Value Locking Method for Concurrency Control of Multiaction Transactions Operating on B-Tree Indexes. Citesefer.Google ScholarGoogle Scholar
  131. C. Mohan. 1993. ARIES/LHS: A concurrency control and recovery method using write-ahead logging for linear hashing with separators. In Proceedings of IEEE 9th International Conference on Data Engineering. IEEE, 243--252.Google ScholarGoogle ScholarCross RefCross Ref
  132. C. Mohan. 1999. Repeating history beyond ARIES. In Proceedings of VLDB, Vol. 99. 7--10.Google ScholarGoogle Scholar
  133. C. Mohan, Don Haderle, Bruce Lindsay, Hamid Pirahesh, and Peter Schwarz. 1992. ARIES: A transaction recovery method supporting fine-granularity locking and partial rollbacks using write-ahead logging. ACM Transactions on Database Systems (TODS) 17, 1 (1992), 94--162.Google ScholarGoogle ScholarDigital LibraryDigital Library
  134. C. Mohan and Frank Levine. 1992. ARIES/IM: An efficient and high concurrency index management method using write-ahead logging. ACM SIGMOD Record 21, 2 (1992), 371--380.Google ScholarGoogle ScholarDigital LibraryDigital Library
  135. C. Mohan and Inderpal Narang. 1994. ARIES/CSA: A method for database recovery in client-server architectures. In Proceedings of the 1994 ACM SIGMOD International Conference on Management of Data. 55--66.Google ScholarGoogle ScholarDigital LibraryDigital Library
  136. C. Mohan and Hamid Pirahesh. 1991. ARIES-RRH: Restricted repeating of history in the ARIES transaction recovery method. In Proceedings of the 7th International Conference on Data Engineering (1991). IEEE, 718--727.Google ScholarGoogle ScholarCross RefCross Ref
  137. José Maria Monteiro, Angelo Brayner, and Sérgio Lifschitz. 2009. Using transaction isolation levels for ensuring replicated database consistency in mobile computing environments. In Proceedings of the 8th ACM International Workshop on Data Engineering for Wireless and Mobile Access. 1--8.Google ScholarGoogle ScholarDigital LibraryDigital Library
  138. Henrik Mühe, Alfons Kemper, and Thomas Neumann. 2011. How to efficiently snapshot transactional data: Hardware or software controlled? In Proceedings of the 7th International Workshop on Data Management on New Hardware. Association for Computing Machinery (ACM), 17--26.Google ScholarGoogle ScholarDigital LibraryDigital Library
  139. Tobias Mühlbauer, Wolf Rödiger, Robert Seilbeck, Angelika Reiser, Alfons Kemper, and Thomas Neumann. 2013. Instant loading for main memory databases. Proceedings of the VLDB Endowment 6, 14 (2013), 1702--1713.Google ScholarGoogle ScholarDigital LibraryDigital Library
  140. MySQL. 2020. MySQL. http://www.mysql.com. Accessed in October 3, 2020.Google ScholarGoogle Scholar
  141. Thomas Neumann. 2011. Efficiently compiling efficient query plans for modern hardware. Proceedings of the VLDB Endowment 4, 9 (2011), 539--550.Google ScholarGoogle ScholarDigital LibraryDigital Library
  142. Thomas Neumann, Tobias Mühlbauer, and Alfons Kemper. 2015. Fast serializable multi-version concurrency control for main-memory database systems. In Proceedings of the 2015 ACM SIGMOD International Conference on Management of Data. 677--689.Google ScholarGoogle ScholarDigital LibraryDigital Library
  143. Chris Nyberg, Tom Barclay, Zarka Cvetanovic, Jim Gray, and Dave Lomet. 1994. AlphaSort: A RISC machine sort. ACM SIGMOD Record 23, 2 (1994), 233--242.Google ScholarGoogle ScholarDigital LibraryDigital Library
  144. Diego Ongaro and John Ousterhout. 2014. In search of an understandable consensus algorithm. In Proceedings of the 2014 USENIX} Annual Technical Conference ({USENIX}{ATC} 14). 305--319.Google ScholarGoogle Scholar
  145. Diego Ongaro, Stephen M. Rumble, Ryan Stutsman, John Ousterhout, and Mendel Rosenblum. 2011. Fast crash recovery in RAMCloud. In Proceedings of the 23rd ACM Symposium on Operating Systems Principles. 29--41.Google ScholarGoogle ScholarDigital LibraryDigital Library
  146. Oracle. 2020. Oracle | Integrated Cloud Applications and Platform Services. http://www.oracle.com. Accessed in December 4, 2020.Google ScholarGoogle Scholar
  147. Ismail Oukid, Daniel Booss, Adrien Lespinasse, Wolfgang Lehner, Thomas Willhalm, and Grégoire Gomes. 2017. Memory management techniques for large-scale persistent-main-memory systems. Proceedings of the VLDB Endowment 10, 11 (2017), 1166--1177.Google ScholarGoogle ScholarDigital LibraryDigital Library
  148. Ippokratis Pandis, Pinar Tözün, Ryan Johnson, and Anastasia Ailamaki. 2011. PLP: Page latch-free shared-everything OLTP. Proceedings of the VLDB Endowment 4, 10 (2011), 610--621.Google ScholarGoogle ScholarDigital LibraryDigital Library
  149. Andrew Pavlo, Gustavo Angulo, Joy Arulraj, Haibin Lin, Jiexi Lin, Lin Ma, Prashanth Menon, Todd C. Mowry, Matthew Perron, Ian Quah, Siddharth Santurkar, Anthony Tomasic, Skye Toor, Dana Van Aken, Ziqi Wang, Yingjun Wu, Ran Xian, and Tieying Zhang. 2017. Self-driving database management systems. In Proceedings of the 8th Biennial Conference on Innovative Data Systems Research, Chaminade, CA, USA, January 8-11 (CIDR’17).Google ScholarGoogle Scholar
  150. Steven Pelley, Thomas F. Wenisch, Brian T. Gold, and Bill Bridge. 2013. Storage management in the NVRAM era. Proceedings of the VLDB Endowment 7, 2 (2013), 121--132.Google ScholarGoogle ScholarDigital LibraryDigital Library
  151. Peloton. 2019. Peloton - The Self-Driving Database Management System. https://pelotondb.io. Accessed in April 30, 2020.Google ScholarGoogle Scholar
  152. Danica Porobic, Erietta Liarou, Pınar Tözün, and Anastasia Ailamaki. 2014. ATraPos: Adaptive transaction processing on hardware islands. In Proceedings of the 2014 IEEE 30th International Conference on Data Engineering. IEEE, 688--699.Google ScholarGoogle ScholarCross RefCross Ref
  153. Danica Porobic, Ippokratis Pandis, Miguel Branco, Pınar Tözün, and Anastasia Ailamaki. 2012. OLTP on hardware islands. Arxiv Preprint Arxiv:1208.0227 (2012).Google ScholarGoogle Scholar
  154. Philippe Pucheral, Jean-Marc Thévenin, and Patrick Valduriez. 1990. Efficient main memory data management using the DBGraph storage model.. In Proceedings of the Symposium on VLDB. 683--695.Google ScholarGoogle Scholar
  155. Raghu Ramakrishnan and Johannes Gehrke. 2000. Database Management Systems. McGraw-Hill.Google ScholarGoogle ScholarDigital LibraryDigital Library
  156. Vijayshankar Raman, Garret Swart, Lin Qiao, Frederick Reiss, Vijay Dialani, Donald Kossmann, Inderpal Narang, and Richard Sidle. 2008. Constant-time query processing. In Proceedings of the 2008 IEEE 24th International Conference on Data Engineering. IEEE, 60--69.Google ScholarGoogle ScholarDigital LibraryDigital Library
  157. Jun Rao and Kenneth A. Ross. 2000. Making B+-trees cache conscious in main memory. In Proceedings of the 2000 ACM SIGMOD International Conference on Management of Data. 475--486.Google ScholarGoogle ScholarDigital LibraryDigital Library
  158. Simone Raoux, Geoffrey W. Burr, Matthew J. Breitwisch, Charles T. Rettner, Yi-Chou Chen, Robert M. Shelby, Martin Salinga, Daniel Krebs, Shih-Hung Chen, Hsiang-Lan Lung, and Chung Hon Lam. 2008. Phase-change random access memory: A scalable technology. IBM Journal of Research and Development 52, 4.5 (2008), 465--479.Google ScholarGoogle ScholarDigital LibraryDigital Library
  159. Kun Ren, Thaddeus Diamond, Daniel J. Abadi, and Alexander Thomson. 2016. Low-overhead asynchronous checkpointing in main-memory database systems. In Proceedings of the 2016 International Conference on Management of Data. 1539--1551.Google ScholarGoogle ScholarDigital LibraryDigital Library
  160. Kun Ren, Alexander Thomson, and Daniel J. Abadi. 2012. Lightweight locking for main memory database systems. Proceedings of the VLDB Endowment 6, 2 (2012), 145--156.Google ScholarGoogle ScholarDigital LibraryDigital Library
  161. Ohad Rodeh. 2008. B-trees, shadowing, and clones. ACM Transactions on Storage (TOS) 3, 4 (2008), 1--27.Google ScholarGoogle ScholarDigital LibraryDigital Library
  162. Mendel Rosenblum, Edouard Bugnion, Stephen Alan Herrod, Emmett Witchel, and Anoop Gupta. 1995. The impact of architectural trends on operating system performance. ACM SIGOPS Operating Systems Review 29, 5 (1995), 285--298.Google ScholarGoogle ScholarDigital LibraryDigital Library
  163. Mendel Rosenblum and John K. Ousterhout. 1992. The design and implementation of a log-structured file system. ACM Transactions on Computer Systems (TOCS) 10, 1 (1992), 26--52.Google ScholarGoogle ScholarDigital LibraryDigital Library
  164. Kurt Rothermel and C. Mohan. 1989. ARIES/NT: A Recovery Method Based on Write-Ahead Logging for Nested Transactions. IBM Thomas J. Watson Research Division.Google ScholarGoogle Scholar
  165. Yehoshua Sagiv. 1986. Concurrent operations on B*-trees with overtaking. Journal of Computer and System Sciences 33, 2 (1986), 275--296.Google ScholarGoogle ScholarDigital LibraryDigital Library
  166. Kenneth Salem and Hector Garcia-Molina. 1989. Checkpointing memory-resident databases. In Proceedings of the 5th International Conference on Data Engineering, 1989. IEEE, 452--462.Google ScholarGoogle ScholarCross RefCross Ref
  167. Kenneth Salem and Hector Garcia-Molina. 1990. System M: A transaction processing testbed for memory resident data. IEEE Transactions on Knowledge and Data Engineering 2, 1 (1990), 161--172.Google ScholarGoogle ScholarDigital LibraryDigital Library
  168. Caetano Sauer. 2017. Modern Techniques for Transaction-oriented Database Recovery. Ph.D. Dissertation. University of Kaiserslautern, Kaiserslautern, Germany. http://www.dr.hut-verlag.de/978-3-8439-3297-4.html.Google ScholarGoogle Scholar
  169. Caetano Sauer. 2019. Modern Techniques for Transaction-oriented Database Recovery. LNI, Vol. P-289. Gesellschaft für Informatik, Bonn. https://doi.org/10.18420/btw2019-30Google ScholarGoogle Scholar
  170. Caetano Sauer, Goetz Graefe, and Theo Härder. 2015. Single-pass restore after a media failure. In Proceedings of the Datenbanksysteme für Business, Technologie und Web (BTW 2015) (2015).Google ScholarGoogle Scholar
  171. Caetano Sauer, Goetz Graefe, and Theo Härder. 2017. Instant restore after a media failure. In Proceedings of the European Conference on Advances in Databases and Information Systems. Springer, 311--325.Google ScholarGoogle ScholarCross RefCross Ref
  172. Caetano Sauer, Goetz Graefe, and Theo Härder. 2018. FineLine: Log-structured transactional storage and recovery. Proceedings of the VLDB Endowment 11, 13 (2018), 2249--2262.Google ScholarGoogle ScholarCross RefCross Ref
  173. Bianca Schroeder and Garth A. Gibson. 2007. Understanding failures in petascale computers. In Journal of Physics: Conference Series, Vol. 78. IOP Publishing, 012022.Google ScholarGoogle ScholarDigital LibraryDigital Library
  174. David Schwalb, Tim Berning, Martin Faust, Markus Dreseler, and Hasso Plattner. 2015. NVM MALLOC: Memory allocation for NVRAM. ADMS@ VLDB 15 (2015), 61--72.Google ScholarGoogle Scholar
  175. David Schwalb, Girish Kumar BK, Markus Dreseler, S. Anusha, Martin Faust, Adolf Hohl, Tim Berning, Gaurav Makkar, Hasso Plattner, and Parag Deshmukh. 2016. Hyrise-NV: Instant recovery for in-memory databases using non-volatile memory. In International Conference on Database Systems for Advanced Applications. Springer, 267--282.Google ScholarGoogle ScholarDigital LibraryDigital Library
  176. David Schwalb, Martin Faust, Markus Dreseler, Pedro Flemming, and Hasso Plattner. 2016. Leveraging non-volatile memory for instant restarts of in-memory database systems. In Proceedings of the 2016 IEEE 32nd International Conference on Data Engineering (ICDE). IEEE, 1386--1389.Google ScholarGoogle ScholarCross RefCross Ref
  177. Dennis Shasha. 1985. What good are concurrent search structure algorithms for databases anyway? IEEE Database Engioneering Bulletin. 8, 2 (1985), 84--90.Google ScholarGoogle Scholar
  178. Dennis Shasha and Nathan Goodman. 1988. Concurrent search structure algorithms. ACM Transactions on Database Systems (TODS) 13, 1 (1988), 53--90.Google ScholarGoogle ScholarDigital LibraryDigital Library
  179. Vishal Sikka, Franz Färber, Wolfgang Lehner, Sang Kyun Cha, Thomas Peh, and Christof Bornhövd. 2012. Efficient transaction processing in SAP HANA database: The end of a column store myth. In Proceedings of the 2012 ACM SIGMOD International Conference on Management of Data. Association for Computing Machinery (ACM), 731--742.Google ScholarGoogle ScholarDigital LibraryDigital Library
  180. Michael Stonebraker. 1991. Managing persistent objects in a multi-level store. ACM SIGMOD Record 20, 2 (1991), 2--11.Google ScholarGoogle ScholarDigital LibraryDigital Library
  181. Michael Stonebraker and Ariel Weisberg. 2013. The VOLTDB main memory DBMS. IEEE Data Engineering Bulletin 36, 2 (2013), 21--27.Google ScholarGoogle Scholar
  182. Jimmy P. Strickland, Peter P. Uhrowczik, and Vern L. Watts. 1982. IMS/VS: An evolving system. IBM Systems Journal 21, 4 (1982), 490--510.Google ScholarGoogle ScholarDigital LibraryDigital Library
  183. Dmitri B. Strukov, Gregory S. Snider, Duncan R. Stewart, and R. Stanley Williams. 2008. The missing memristor found. Nature 453, 7191 (2008), 80--83.Google ScholarGoogle Scholar
  184. Rebecca Taft, Essam Mansour, Marco Serafini, Jennie Duggan, Aaron J. Elmore, Ashraf Aboulnaga, Andrew Pavlo, and Michael Stonebraker. 2014. E-store: Fine-grained elastic partitioning for distributed transaction processing systems. Proceedings of the VLDB Endowment 8, 3 (2014), 245--256.Google ScholarGoogle ScholarDigital LibraryDigital Library
  185. Kian-Lee Tan, Qingchao Cai, Beng Chin Ooi, Weng-Fai Wong, Chang Yao, and Hao Zhang. 2015. In-memory databases: Challenges and opportunities from software and hardware perspectives. ACM SIGMOD Record 44, 2 (2015), 35--40.Google ScholarGoogle ScholarDigital LibraryDigital Library
  186. Yong Chiang Tay, Nathan Goodman, and Rajan Suri. 1985. Locking performance in centralized databases. ACM Transactions on Database Systems (TODS) 10, 4 (1985), 415--462.Google ScholarGoogle ScholarDigital LibraryDigital Library
  187. Alexander Thomson, Thaddeus Diamond, Shu-Chun Weng, Kun Ren, Philip Shao, and Daniel J. Abadi. 2012. Calvin: Fast distributed transactions for partitioned database systems. In Proceedings of the 2012 ACM SIGMOD International Conference on Management of Data. 1--12.Google ScholarGoogle Scholar
  188. TimesTen. 2020. Oracle TimesTen In-Memory Database Documentation. https://docs.oracle.com/database/timesten-18.1/. Accessed in December 1, 2020.Google ScholarGoogle Scholar
  189. CORPORATE TimesTen Team. 1999. In-memory data management for consumer transactions the TimesTen approach. In ACM SIGMOD Record, Vol. 28. Association for Computing Machinery (ACM), 528--529.Google ScholarGoogle ScholarDigital LibraryDigital Library
  190. Stephen Tu, Wenting Zheng, Eddie Kohler, Barbara Liskov, and Samuel Madden. 2013. Speedy transactions in multicore in-memory databases. In Proceedings of the 24th ACM Symposium on Operating Systems Principles. Association for Computing Machinery (ACM), 18--32.Google ScholarGoogle ScholarDigital LibraryDigital Library
  191. Allen B. Tucker. 2004. Computer Science Handbook. CRC Press.Google ScholarGoogle Scholar
  192. Alexander van Renen, Viktor Leis, Alfons Kemper, Thomas Neumann, Takushi Hashida, Kazuichi Oe, Yoshiyasu Doi, Lilian Harada, and Mitsuru Sato. 2018. Managing non-volatile memory in database systems. In Proceedings of the 2018 International Conference on Management of Data. 1541--1555.Google ScholarGoogle ScholarDigital LibraryDigital Library
  193. Alexander van Renen, Lukas Vogel, Viktor Leis, Thomas Neumann, and Alfons Kemper. 2019. Persistent memory I/O primitives. In Proceedings of the 15th International Workshop on Data Management on New Hardware. 1--7.Google ScholarGoogle ScholarDigital LibraryDigital Library
  194. Marcos Vaz Salles, Tuan Cao, Benjamin Sowell, Alan Demers, Johannes Gehrke, Christoph Koch, and Walker White. 2009. An evaluation of checkpoint recovery for massively multiplayer online games. Proceedings of the VLDB Endowment 2, 1 (2009), 1258--1269.Google ScholarGoogle ScholarDigital LibraryDigital Library
  195. Tianzheng Wang and Ryan Johnson. 2014. Scalable logging through emerging non-volatile memory. Proceedings of the VLDB Endowment 7, 10 (2014), 865--876.Google ScholarGoogle ScholarDigital LibraryDigital Library
  196. Zhaoguo Wang, Hao Qian, Jinyang Li, and Haibo Chen. 2014. Using restricted transactional memory to build a scalable in-memory database. In Proceedings of the 9th European Conference on Computer Systems. 1--15.Google ScholarGoogle ScholarDigital LibraryDigital Library
  197. Gerhard Weikum and Gottfried Vossen. 2001. Transactional Information Systems: Theory, Algorithms, and the Practice of Concurrency Control and Recovery. Elsevier.Google ScholarGoogle Scholar
  198. Matthias Wiesmann, Fernando Pedone, André Schiper, Bettina Kemme, and Gustavo Alonso. 2000. Database replication techniques: A three parameter classification. In Proceedings of the 19th IEEE Symposium on Reliable Distributed Systems (SRDS-2000). IEEE, 206--215.Google ScholarGoogle ScholarCross RefCross Ref
  199. Thomas Willhalm, Ismail Oukid, Ingo Müller, and Franz Faerber. 2013. Vectorizing database column scans with complex predicates.. In ADMS@ VLDB. 1--12.Google ScholarGoogle Scholar
  200. Thomas Willhalm, Nicolae Popovici, Yazan Boshmaf, Hasso Plattner, Alexander Zeier, and Jan Schaffner. 2009. SIMD-scan: Ultra fast in-memory table scan using on-chip vector processing units. Proceedings of the VLDB Endowment 2, 1 (2009), 385--394.Google ScholarGoogle ScholarDigital LibraryDigital Library
  201. Yingjun Wu, Wentian Guo, Chee-Yong Chan, and Kian-Lee Tan. 2017. Fast failure recovery for main-memory DBMSs on multicores. In Proceedings of the 2017 ACM International Conference on Management of Data. Association for Computing Machinery (ACM), 267--281.Google ScholarGoogle ScholarDigital LibraryDigital Library
  202. Tang Yanjun and Luo Wen-hua. 2010. A model of crash recovery in main memory database. In Proceedings of the 2010 International Conference on Computer Design and Applications (ICCDA), Vol. 5. IEEE, V5--206.Google ScholarGoogle ScholarCross RefCross Ref
  203. Chang Yao, Divyakant Agrawal, Gang Chen, Beng Chin Ooi, and Sai Wu. 2016. Adaptive logging: Optimizing logging and recovery costs in distributed in-memory databases. In Proceedings of the 2016 International Conference on Management of Data. Association for Computing Machinery (ACM), 1119--1134.Google ScholarGoogle ScholarDigital LibraryDigital Library
  204. Xiangyao Yu, George Bezerra, Andrew Pavlo, Srinivas Devadas, and Michael Stonebraker. 2014. Staring into the abyss: An evaluation of concurrency control with one thousand cores. Proceedings of the VLDB Endowment 8, 3 (2014), 209--220.Google ScholarGoogle ScholarDigital LibraryDigital Library
  205. Erfan Zamanian, Xiangyao Yu, Michael Stonebraker, and Tim Kraska. 2019. Rethinking database high availability with RDMA networks. Proceedings of the VLDB Endowment 12, 11 (2019), 1637--1650.Google ScholarGoogle ScholarDigital LibraryDigital Library
  206. Hao Zhang, Gang Chen, Beng Chin Ooi, Kian-Lee Tan, and Meihui Zhang. 2015. In-memory big data management and processing: A survey. IEEE Transactions on Knowledge and Data Engineering 27, 7 (2015), 1920--1948.Google ScholarGoogle ScholarDigital LibraryDigital Library
  207. Yiying Zhang, Jian Yang, Amirsaman Memaripour, and Steven Swanson. 2015. MOJIM: A reliable and highly-available non-volatile memory system. In ACM SIGARCH Computer Architecture News, Vol. 43. Association for Computing Machinery (ACM), 3--18.Google ScholarGoogle ScholarDigital LibraryDigital Library
  208. Wenting Zheng, Stephen Tu, Eddie Kohler, and Barbara Liskov. 2014. Fast databases with fast durability and recovery through multicore parallelism. In Proceedings of OSDI, Vol. 14. 465--477.Google ScholarGoogle Scholar

Index Terms

  1. Main Memory Database Recovery: A Survey

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    • Published in

      cover image ACM Computing Surveys
      ACM Computing Surveys  Volume 54, Issue 2
      March 2022
      800 pages
      ISSN:0360-0300
      EISSN:1557-7341
      DOI:10.1145/3450359
      Issue’s Table of Contents

      Copyright © 2021 ACM

      © 2021 Association for Computing Machinery. ACM acknowledges that this contribution was authored or co-authored by an employee, contractor or affiliate of a national government. As such, the Government retains a nonexclusive, royalty-free right to publish or reproduce this article, or to allow others to do so, for Government purposes only.

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 5 March 2021
      • Revised: 1 December 2020
      • Accepted: 1 December 2020
      • Received: 1 August 2020
      Published in csur Volume 54, Issue 2

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article
      • Research
      • Refereed

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    HTML Format

    View this article in HTML Format .

    View HTML Format