Nothing Special   »   [go: up one dir, main page]

skip to main content
research-article

Persistent B+-trees in non-volatile main memory

Published: 01 February 2015 Publication History

Abstract

Computer systems in the near future are expected to have <u>N</u>on-<u>V</u>olatile <u>M</u>ain <u>M</u>emory (NVMM), enabled by a new generation of <u>N</u>on-<u>V</u>olatile <u>M</u>emory (NVM) technologies, such as Phase Change Memory (PCM), STT-MRAM, and Memristor. The non-volatility property has the promise to persist in-memory data structures for instantaneous failure recovery. However, realizing such promise requires a careful design to ensure that in-memory data structures are in known consistent states after failures.
This paper studies persistent in-memory B+-Trees as B+-Trees are widely used in database and data-intensive systems. While traditional techniques, such as undo-redo logging and shadowing, support persistent B+-Trees, we find that they incur drastic performance overhead because of extensive NVM writes and CPU cache flush operations. PCM-friendly B+-Trees with unsorted leaf nodes help mediate this issue, but the remaining overhead is still large. In this paper, we propose write atomic B+-Trees (wB+-Trees), a new type of main-memory B+-Trees, that aim to reduce such overhead as much as possible. wB+-Tree nodes employ a small indirect slot array and/or a bitmap so that most insertions and deletions do not require the movement of index entries. In this way, wB+-Trees can achieve node consistency either through atomic writes in the nodes or by redo-only logging. We model fast NVM using DRAM on a real machine and model PCM using a cycle-accurate simulator. Experimental results show that compared with previous persistent B+-Tree solutions, wB+-Trees achieve up to 8.8x speedups on DRAM-like fast NVM and up to 27.1x speedups on PCM for insertions and deletions while maintaining good search performance. Moreover, we replaced Memcached's internal hash index with tree indices. Our real machine Memcached experiments show that wB+-Trees achieve up to 3.8X improvements over previous persistent tree structures with undo-redo logging or shadowing.

References

[1]
R. Agrawal and H. V. Jagadish. Recovery algorithms for database machines with nonvolatile main memory. In IWDM, pages 269--285, 1989.
[2]
D. Apalkov, A. Khvalkovskiy, S. Watts, V. Nikitin, X. Tang, D. Lottis, K. Moon, X. Luo, E. Chen, A. Ong, A. Driskill-Smith, and M. Krounbi. Spin-transfer torque magnetic random access memory (stt-mram). JETC, 9(2): 13, 2013.
[3]
R. Barber, P. Bendel, M. Czech, O. Draese, F. Ho, N. Hrle, S. Idreos, M.-S. Kim, O. Koeth, J.-G. Lee, T. T. Li, G. M. Lohman, K. Morfonios, R. Müller, K. Murthy, I. Pandis, L. Qiao, V. Raman, S. Szabo, R. Sidle, and K. Stolze. Blink: Not your father's database! In BIRTE, pages 1--22, 2011.
[4]
G. W. Burr, M. J. Breitwisch, M. Franceschini, D. Garetto, K. Gopalakrishnan, B. Jackson, B. Kurdi, C. Lam, L. A. Lastras, A. Padilla, B. Rajendran, S. Raoux, and R. S. Shenoy. Phase change memory technology. J. Vacuum Science, 28(2), 2010.
[5]
G. W. Burr, B. N. Kurdi, J. C. Scott, C. H. Lam, K. Gopalakrishnan, and R. S. Shenoy. Overview of candidate device technologies for storage-class memory. IBM J. Res. Dev., 52(4): 449--464, July 2008.
[6]
S. Chen, P. B. Gibbons, and T. C. Mowry. Improving index performance through prefetching. In SIGMOD, 2001.
[7]
S. Chen, P. B. Gibbons, and S. Nath. Rethinking database algorithms for phase change memory. In CIDR, 2011.
[8]
J. Coburn, A. M. Caulfield, A. Akel, L. M. Grupp, R. K. Gupta, R. Jhala, and S. Swanson. Nv-heaps: making persistent objects fast and safe with next-generation, non-volatile memories. In ASPLOS, 2011.
[9]
J. Condit, E. B. Nightingale, C. Frost, E. Ipek, B. C. Lee, D. Burger, and D. Coetzee. Better I/O through byte-addressable, persistent memory. In SOSP, 2009.
[10]
C. Diaconu, C. Freedman, E. Ismert, P.-Å. Larson, P. Mittal, R. Stonecipher, N. Verma, and M. Zwilling. Hekaton: SQL server's memory-optimized OLTP engine. In SIGMOD Conference, 2013.
[11]
E. Doller. Phase change memory and its impacts on memory hierarchy. http://www.pdl.cmu.edu/SDI/2009/slides/Numonyx.pdf, 2009.
[12]
R. A. Hankins and J. M. Patel. Effect of node size on the performance of cache-conscious B+-trees. In SIGMETRICS, 2003.
[13]
Intel Corp. Intel 64 and ia-32 architectures software developers manual. Order Number: 325462-047US, June 2013.
[14]
ITRS. International technology roadmap for semiconductors (2011 edition executive summary). http://www.itrs.net/Links/2011ITRS/2011Chapters/2011ExecSum.pdf.
[15]
B. C. Lee, E. Ipek, O. Mutlu, and D. Burger. Architecting phase change memory as a scalable DRAM alternative. In ISCA, 2009.
[16]
D. E. Lowell and P. M. Chen. Free transactions with Rio Vista. Operating Systems Review, 31, 1997.
[17]
G. Malewicz, M. H. Austern, A. J. C. Bik, J. C. Dehnert, I. Horn, N. Leiser, and G. Czajkowski. Pregel: a system for large-scale graph processing. In SIGMOD Conference, pages 135--146, 2010.
[18]
V. J. Marathe, M. F. Spear, C. Heriot, A. Acharya, D. Eisenstat, W. N. S. III, and M. L. Scott. Lowering the overhead of nonblocking software transactional memory. In TRANSACT, 2006.
[19]
Memcached. http://memcached.org/.
[20]
D. Narayanan and O. Hodson. Whole-system persistence. In ASPLOS, 2012.
[21]
W. T. Ng and P. M. Chen. Integrating reliable memory in databases. In VLDB, 1997.
[22]
J. K. Ousterhout, P. Agrawal, D. Erickson, C. Kozyrakis, J. Leverich, D. Mazières, S. Mitra, A. Narayanan, D. Ongaro, G. M. Parulkar, M. Rosenblum, S. M. Rumble, E. Stratmann, and R. Stutsman. The case for ramcloud. Commun. ACM, 54(7): 121--130, 2011.
[23]
S. Pelley, T. F. Wenisch, B. T. Gold, and B. Bridge. Storage management in the NVRAM era. PVLDB, 7(2): 121--132, 2013.
[24]
H. Plattner. The impact of columnar in-memory databases on enterprise systems (keynote). In VLDB, 2014.
[25]
PTLsim. http://www.ptlsim.org/.
[26]
M. K. Qureshi, V. Srinivasan, and J. A. Rivers. Scalable high performance main memory system using phase-change memory technology. In ISCA, 2009.
[27]
R. Ramakrishnan and J. Gehrke. Database management systems (3. ed.). McGraw-Hill, 2003.
[28]
J. Rao and K. A. Ross. Making B+-trees cache conscious in main memory. In SIGMOD, 2000.
[29]
S. Venkataraman, N. Tolia, P. Ranganathan, and R. H. Campbell. Consistent and durable data structures for non-volatile byte-addressable memory. In FAST, 2011.
[30]
S. Viglas. Write-limited sorts and joins for persistent memory. PVLDB, 7(5): 413--424, 2014.
[31]
H. Volos, A. J. Tack, and M. M. Swift. Mnemosyne: lightweight persistent memory. In ASPLOS, 2011.
[32]
M. Wu and W. Zwaenepoel. eNVy: a non-volatile, main memory storage system. In ASPLOS, 1994.
[33]
X. Wu and A. L. N. Reddy. Scmfs: a file system for storage class memory. In SC, 2011.
[34]
J. J. Yang and R. S. Williams. Memristive devices in computing system: Promises and challenges. JETC, 9(2): 11, 2013.
[35]
M. Zaharia, M. Chowdhury, T. Das, A. Dave, J. Ma, M. McCauly, M. J. Franklin, S. Shenker, and I. Stoica. Resilient distributed datasets: A fault-tolerant abstraction for in-memory cluster computing. In NSDI, pages 15--28, 2012.
[36]
P. Zhou, B. Zhao, J. Yang, and Y. Zhang. A durable and energy efficient main memory using phase change memory technology. In ISCA, 2009.

Cited By

View all
  • (2024)CCL-BTree: A Crash-Consistent Locality-Aware B+-Tree for Reducing XPBuffer-Induced Write Amplification in Persistent MemoryProceedings of the Nineteenth European Conference on Computer Systems10.1145/3627703.3629582(441-455)Online publication date: 22-Apr-2024
  • (2024)Exploiting Flat Namespace to Improve File System Metadata Performance on Ultra-Fast, Byte-Addressable NVMsACM Transactions on Storage10.1145/362067320:1(1-47)Online publication date: 30-Jan-2024
  • (2024)Skip It: Take Control of Your Cache!Proceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 210.1145/3620665.3640407(1077-1094)Online publication date: 27-Apr-2024
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Proceedings of the VLDB Endowment
Proceedings of the VLDB Endowment  Volume 8, Issue 7
February 2015
124 pages
ISSN:2150-8097
Issue’s Table of Contents

Publisher

VLDB Endowment

Publication History

Published: 01 February 2015
Published in PVLDB Volume 8, Issue 7

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)85
  • Downloads (Last 6 weeks)10
Reflects downloads up to 01 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)CCL-BTree: A Crash-Consistent Locality-Aware B+-Tree for Reducing XPBuffer-Induced Write Amplification in Persistent MemoryProceedings of the Nineteenth European Conference on Computer Systems10.1145/3627703.3629582(441-455)Online publication date: 22-Apr-2024
  • (2024)Exploiting Flat Namespace to Improve File System Metadata Performance on Ultra-Fast, Byte-Addressable NVMsACM Transactions on Storage10.1145/362067320:1(1-47)Online publication date: 30-Jan-2024
  • (2024)Skip It: Take Control of Your Cache!Proceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 210.1145/3620665.3640407(1077-1094)Online publication date: 27-Apr-2024
  • (2024)WOPEJournal of Systems Architecture: the EUROMICRO Journal10.1016/j.sysarc.2024.103187153:COnline publication date: 1-Aug-2024
  • (2024)A highly write-optimized concurrent B+-tree for persistent memoryFuture Generation Computer Systems10.1016/j.future.2024.02.008155:C(219-230)Online publication date: 1-Jun-2024
  • (2024)An efficient flattened index structure with lazy restructuring and hotness awarenessFuture Generation Computer Systems10.1016/j.future.2023.11.025153:C(139-153)Online publication date: 16-May-2024
  • (2024)A quantitative evaluation of persistent memory hash indexesThe VLDB Journal — The International Journal on Very Large Data Bases10.1007/s00778-023-00812-133:2(375-397)Online publication date: 1-Mar-2024
  • (2023)NVM: Is it Not Very Meaningful for Databases?Proceedings of the VLDB Endowment10.14778/3603581.360358616:10(2444-2457)Online publication date: 1-Jun-2023
  • (2023)NV-SQL: Boosting OLTP Performance with Non-Volatile DIMMsProceedings of the VLDB Endowment10.14778/3583140.358315916:6(1453-1465)Online publication date: 1-Feb-2023
  • (2023)A Concise Concurrent B+-Tree for Persistent MemoryACM Transactions on Architecture and Code Optimization10.1145/363871721:2(1-25)Online publication date: 25-Dec-2023
  • Show More Cited By

View Options

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media