Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

Nitro: a fast, scalable in-memory storage engine for NoSQL global secondary index

Published: 01 September 2016 Publication History

Abstract

We present Nitro, a high-performance in-memory key-value storage engine used in Couchbase 4.5 Global Secondary Indexes. The Nitro storage engine is well suited for the recent hardware trends like large amounts of memory and many CPU cores. The storage engine leverages latch-free data structures and tries to achieve linear scalability for the index read-write operations. The Nitro storage engine offers concurrent readers and writers, lightweight database snapshots, stable scan, backup and recovery operations.
We integrated Nitro into the Couchbase Global Secondary Indexes (GSI) and observed significant improvement in performance compared to our disk oriented storage engine configured with the same amount of memory for buffer cache. On a 32 core machine, we observed an end-to-end GSI server insertion throughput of 1,650,000 entries/sec and index update throughput of 822,000 entries/sec. A single instance of Nitro data structure running on a 40 core machine achieved a peak insertion throughput of 4 million index entries/sec and entry lookup throughput of 10 million lookups/sec.

References

[1]
Couchbase Multidimensional Scaling Overview. http://www.couchbase.com/multi-dimensional-scalability-overview.
[2]
Couchbase NoSQL Database. http://www.couchbase.com/.
[3]
Database Change Protocol. http://docs.couchbase.com/admin/admin/Concepts/dcp.html.
[4]
MemSQL distributed database. http://www.memsql.com/.
[5]
S. K. Cha and C. Song. P*TIME: highly scalable OLTP DBMS for managing update-intensive stream workload. Proceedings of the Thirtieth international conference on Very large data bases, pages 1033--1044, 2004.
[6]
D. Comer. Ubiquitous B-Tree. ACM Computing Surveys, 11(2):121--137, 1979.
[7]
E. I. P.-. L. P. M. R. S. N. V. M. Z. Cristian Diaconu, Craig Freedman. Hekaton: SQL Servers Memory-Optimized OLTP Engine. Proceedings of the 2013 ACM SIGMOD International Conference on Management of Data, pages 1243--1254, 2013.
[8]
S. S. David B. Lomet and J. J. Levandoski. The Bw-Tree: A B-tree for new hardware platforms. Proceedings of the 2013 IEEE International Conference on Data Engineering (ICDE 2013), pages 302--313, 2013.
[9]
J. P.-C. B. S. S. Franz Farber, Sang Kyun Cha and W. Lehner. SAP HANA Database - Data Management for Modern Business Applications. ACM SIGMOD Record, pages 45--51, December.
[10]
J. P.-C. B. S. S. Franz Farber, Sang Kyun Cha and W. Lehner. Speedy transactions in multicore in-memory databases. Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles, pages 18--32, 2013.
[11]
K. Fraser. Practical lock-freedom. PhD thesis, University of Cambridge, 2004.
[12]
M. Herlihy and N. Shavit. The Art of Multiprocessor Programming. Morgan Kaufmann, "2012".
[13]
J. L. J. Chris Anderson and N. Slater. CouchDB: The Definitive Guide Time to Relax. O'Reilly Media, Inc, "2010".
[14]
E. Kohler and R. T. Morris. Cache craftiness for fast multicore key-value storage. Proceedings of the 7th ACM european conference on Computer Systems, pages 183--196, 2012.
[15]
M. M. Michael. Hazard Pointers: Safe Memory Reclamation for Lock-Free Objects. IEEE Transactions on Parallel and Distributed Systems, 15(6):491--504, 2004.
[16]
C. M. Ohad Rodeh, Josef Bacik. BTRFS: The Linux B-Tree Filesystem. ACM Transactions on Storage, 9(3), August 2013.
[17]
W. Pugh. Skip lists: a probabilistic alternative to balanced trees. Communications of the ACM, 33(6):668--676, June 1990.
[18]
K. K. Sang K. Cha, Sangyong Hwang and K. Kwon. Cache-Conscious Concurrency Control of Main-Memory Indexes on Shared-Memory Multiprocessor Systems. Proceedings of the 27th International Conference on Very Large Data Bases, pages 181--190, 2001.
[19]
S. M. Stavros Harizopoulos, Daniel J. Abadi and M. Stonebraker. OLTP Through the Looking Glass, and What We Found There. Proceedings of the 2008 ACM SIGMOD international conference on Management of data, pages 981--992, 2008.
[20]
M. Stonebraker and A. Weisberg. The VoltDB Main Memory DBMS. IEEE Data Eng. Bull., 36(2):21--27, 2013.
[21]
H. Sundell and P. Tsigas. Fast and lock-free concurrent priority queues for multi-thread systems. Journal of Parallel and Distributed Computing, 65(5):609--627, May 2005.
[22]
J. D. Valois. Lock-free linked lists using compare-and-swap. Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing, pages 214--222, 1995.

Cited By

View all
  • (2024)Jiffy: A Lock-free Skip List with Batch Updates and Snapshots (Abstract)Proceedings of the 2024 ACM Workshop on Highlights of Parallel Computing10.1145/3670684.3673410(5-7)Online publication date: 17-Jun-2024
  • (2022)MagmaProceedings of the VLDB Endowment10.14778/3554821.355483915:12(3496-3508)Online publication date: 1-Aug-2022
  • (2022)JiffyProceedings of the 27th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming10.1145/3503221.3508437(400-415)Online publication date: 2-Apr-2022
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Proceedings of the VLDB Endowment
Proceedings of the VLDB Endowment  Volume 9, Issue 13
September 2016
378 pages
ISSN:2150-8097
Issue’s Table of Contents

Publisher

VLDB Endowment

Publication History

Published: 01 September 2016
Published in PVLDB Volume 9, Issue 13

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)15
  • Downloads (Last 6 weeks)0
Reflects downloads up to 03 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Jiffy: A Lock-free Skip List with Batch Updates and Snapshots (Abstract)Proceedings of the 2024 ACM Workshop on Highlights of Parallel Computing10.1145/3670684.3673410(5-7)Online publication date: 17-Jun-2024
  • (2022)MagmaProceedings of the VLDB Endowment10.14778/3554821.355483915:12(3496-3508)Online publication date: 1-Aug-2022
  • (2022)JiffyProceedings of the 27th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming10.1145/3503221.3508437(400-415)Online publication date: 2-Apr-2022
  • (2020)HGeoHashBase: an optimized storage model of spatial objects for location-based servicesFrontiers of Computer Science: Selected Publications from Chinese Universities10.1007/s11704-018-7030-314:1(208-218)Online publication date: 1-Feb-2020

View Options

Get Access

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