skip to main content
research-article

In-memory performance for big data

Published:01 September 2014Publication History
Skip Abstract Section

Abstract

When a working set fits into memory, the overhead imposed by the buffer pool renders traditional databases non-competitive with in-memory designs that sacrifice the benefits of a buffer pool. However, despite the large memory available with modern hardware, data skew, shifting workloads, and complex mixed workloads make it difficult to guarantee that a working set will fit in memory. Hence, some recent work has focused on enabling in-memory databases to protect performance when the working data set almost fits in memory. Contrary to those prior efforts, we enable buffer pool designs to match in-memory performance while supporting the "big data" workloads that continue to require secondary storage, thus providing the best of both worlds. We introduce here a novel buffer pool design that adapts pointer swizzling for references between system objects (as opposed to application objects), and uses it to practically eliminate buffer pool overheads for memoryresident data. Our implementation and experimental evaluation demonstrate that we achieve graceful performance degradation when the working set grows to exceed the buffer pool size, and graceful improvement when the working set shrinks towards and below the memory and buffer pool sizes.

References

  1. T. Anderson. Microsoft SQL Server 14 man: 'Nothing stops a Hekaton transaction'. http://www.theregister.co.uk/2013/06/03/microsoft_sql_server_14_teched/, 2013.Google ScholarGoogle Scholar
  2. M. P. Atkinson, K. Chisholm, W. P. Cockshott, and R. Marshall. Algorithms for a Persistent Heap. Softw., Pract. Exper., 13(3):259--271, 1983.Google ScholarGoogle ScholarCross RefCross Ref
  3. M. J. Carey, D. J. DeWitt, M. J. Franklin, N. E. Hall, M. L. McAuliffe, J. F. Naughton, D. T. Schuh, M. H. Solomon, C. K. Tan, O. G. Tsatalos, S. J. White, and M. J. Zwilling. Shoring up persistent applications. In SIGMOD, pages 383--394, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. J. DeBrabant, A. Pavlo, S. Tu, M. Stonebraker, and S. B. Zdonik. Anti-Caching: A New Approach to Database Management System Architecture. PVLDB, 6(14):1942--1953, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. C. Diaconu, C. Freedman, E. Ismert, P.-A. Larson, P. Mittal, R. Stonecipher, N. Verma, and M. Zwilling. Hekaton: SQL Server's memory-optimized OLTP engine. SIGMOD, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. FAL Labs. Tokyo Cabinet: a modern implementation of DBM. http://fallabs.com/tokyocabinet/.Google ScholarGoogle Scholar
  7. F. Funke, A. Kemper, and T. Neumann. Compacting Transactional Data in Hybrid OLTP & OLAP Databases. PVLDB, 5(11):1424--1435, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. H. Garcia-Molina, J. D. Ullman, and J. Widom. Database system implementation, volume 654. Prentice Hall Upper Saddle River, NJ, 2000.Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. G. Graefe. A Survey of B-tree Locking Techniques. ACM TODS, 35(2): 16:1--16:26, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. G. Graefe. Modern B-tree techniques. Foundations and Trends in Databases, 3(4): 203--402, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. G. Graefe. A Survey of B-tree Logging and Recovery Techniques. ACM TODS, 37(1): 1:1--1:35, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. G. Graefe, H. Kimura, and H. Kuno. Foster B-Trees. ACM Transactions on Database Systems (TODS), 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. SAP HANA. http://www.saphana.com/.Google ScholarGoogle Scholar
  14. S. Harizopoulos, D. Abadi, S. Madden, and M. Stonebraker. OLTP Through the Looking Glass, and What We Found There. In SIGMOD, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. A. L. Hosking and J. E. B. Moss. Object Fault Handling for Persistent Programming Languages: A Performance Evaluation. In OOPSLA, pages 288--303, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. R. Johnson, I. Pandis, N. Hardavellas, A. Ailamaki, and B. Falsafi. Shore-MT: a scalable storage manager for the multicore era. In EDBT, pages 24--35, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. R. Johnson, I. Pandis, R. Stoica, M. Athanassoulis, and A. Ailamaki. Aether: a scalable approach to logging. Proceedings of the VLDB Endowment, 3(1-2):681--692, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. H. Jung, H. Han, A. D. Fekete, G. Heiser, and H. Y. Yeom. A scalable lock manager for multicores. In SIGMOD, pages 73--84. ACM, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. T. Kaehler and G. Krasner. LOOM: Large Object-Oriented Memory for Smalltalk-80 Systems. In S. B. Zdonik and D. Maier, editors, Readings in Object-Oriented Database Systems, pages 298--307. Kaufmann, San Mateo, CA, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. A. Kemper and D. Kossmann. Adaptable Pointer Swizzling Strategies in Object Bases. In ICDE, pages 155--162, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. A. Kemper and D. Kossmann. Dual-Buffering Strategies in Object Bases. In VLDB, pages 427--438, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. A. Kemper and D. Kossmann. Adaptable Pointer Swizzling Strategies in Object Bases: Design, Realization, and Quantitative Analysis. VLDB J., 4(3):519--566, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. K. Küspert. Fehlererkennung und Fehlerbehandlung in Speicherungsstrukturen von Datenbanksystemen. Informatik-Fachberichte. Springer-Verlag, 1985.Google ScholarGoogle ScholarCross RefCross Ref
  24. T. J. Lehman and M. J. Carey. A study of index structures for main memory database management systems. In VLDB, VLDB '86, pages 294--303, San Francisco, CA, USA, 1986. Morgan Kaufmann Publishers Inc. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. J. J. Levandoski, P.-A. Larson, and R. Stoica. Identifying hot and cold data in main-memory databases. In ICDE, pages 26--37, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. M. L. McAuliffe and M. H. Solomon. A trace-based simulation of pointer swizzling techniques. In ICDE, pages 52--61, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. C. Mohan. Disk read-write optimizations and data integrity in transaction systems using write-ahead logging. In ICDE, pages 324--331, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. MonetDB. http://www.monetdb.org/.Google ScholarGoogle Scholar
  29. J. E. B. Moss. Working with persistent objects: To swizzle or not to swizzle. IEEE Trans. Software Eng., 18(8):657--673, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. V. F. Nicola, A. Dan, and D. M. Dias. Analysis of the generalized clock buffer replacement scheme for database transaction processing. SIGMETRICS Perform. Eval. Rev., 20(1):35--46, June 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Oracle TimesTen In-Memory Database. http://www.oracle.com/technetwork/products/timesten/overview/index.html.Google ScholarGoogle Scholar
  32. I. Pandis, R. Johnson, N. Hardavellas, and A. Ailamaki. Data-oriented transaction execution. PVLDB, 3(1):928--939, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. I. Pandis, P. Tozun, R. Johnson, and A. Ailamaki. PLP: Page latch-free shared-everything OLTP. PVLDB, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. S. Park. Personal Communication, 2013.Google ScholarGoogle Scholar
  35. S. Park, T. Kelly, and K. Shen. Failure-atomic msync(): A simple and efficient mechanism for preserving the integrity of durable data. In EuroSys '13, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. A. J. Smith. Sequentiality and Prefetching in Database Systems. ACM TODS, 3(3):223--247, Sept. 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. R. Stoica and A. Ailamaki. Enabling efficient OS paging for main-memory OLTP databases. In DaMoN, page 7, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. S. Tu, W. Zheng, E. Kohler, B. Liskov, and S. Madden. Speedy transactions in multicore in-memory databases. In Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles, pages 18--32. ACM, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. VoltDB. http://www.voltdb.com.Google ScholarGoogle Scholar
  40. S. J. White and D. J. DeWitt. QuickStore: A high performance mapped object store, volume 23. ACM, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. P. Wilson and S. V. Kakkad. Pointer swizzling at page fault time: Efficiently and compatibly supporting huge address spaces on standard hardware. In Computer Architecture News, pages 364--377, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. In-memory performance for big data
      Index terms have been assigned to the content through auto-classification.

      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 Proceedings of the VLDB Endowment
        Proceedings of the VLDB Endowment  Volume 8, Issue 1
        September 2014
        100 pages
        ISSN:2150-8097
        Issue’s Table of Contents

        Publisher

        VLDB Endowment

        Publication History

        • Published: 1 September 2014
        Published in pvldb Volume 8, Issue 1

        Qualifiers

        • research-article

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader