skip to main content
research-article

KiWi: A Key-Value Map for Scalable Real-Time Analytics

Published:26 January 2017Publication History
Skip Abstract Section

Abstract

Modern big data processing platforms employ huge in-memory key-value (KV) maps. Their applications simultaneously drive high-rate data ingestion and large-scale analytics. These two scenarios expect KV-map implementations that scale well with both real-time updates and large atomic scans triggered by range queries.

We present KiWi, the first atomic KV-map to efficiently support simultaneous large scans and real-time access. The key to achieving this is treating scans as first class citizens,and organizing the data structure around them. KiWi provides wait-free scans, whereas its put operations are lightweight and lock-free. It optimizes memory management jointly with data structure access.We implement KiWi and compare it to state-of-the-art solutions. Compared to other KV-maps providing atomic scans, KiWi performs either long scans or concurrent puts an order of magnitude faster. Its scans are twice as fast as non-atomic ones implemented via iterators in the Java skiplist.

References

  1. Apache HBase -- a Distributed Hadoop Database. https://hbase.apache.org/.Google ScholarGoogle Scholar
  2. Java Array Copy. https://docs.oracle.com/javase/7/docs/api/java/lang/System.html, .Google ScholarGoogle Scholar
  3. Java Concurrent Skip List. https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentSkipListMap.html, .Google ScholarGoogle Scholar
  4. http://flurrymobile.tumblr.com/post/144245637325/appmatrix.Google ScholarGoogle Scholar
  5. Flurry analytics. https://developer.yahoo.com/flurry/docs/analytics/.Google ScholarGoogle Scholar
  6. http://flurrymobile.tumblr.com/post/117769261810/the-phablet-revolution.Google ScholarGoogle Scholar
  7. A persistent key-value store for fast storage environments. http://rocksdb.org/, June 2014.Google ScholarGoogle Scholar
  8. A fast and lightweight key/value database library by google. http://code.google.com/p/leveldb, Jan. 2014.Google ScholarGoogle Scholar
  9. M. Arbel, G. Golan-Gueta, E. Hillel, and I. Keidar. Towards automatic lock removal for scalable synchronization. In DISC, pages 170--184, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. P. A. Bernstein, V. Hadzilacos, and N. Goodman. Concurrency Control and Recovery in Database Systems. AddisonWesley, 1987. ISBN 0--201--10715--5.Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. A. Braginsky and E. Petrank. Locality-conscious lock-free linked lists. In ICDCN, pages 107--118, 2011. Google ScholarGoogle ScholarCross RefCross Ref
  12. A. Braginsky and E. Petrank. A lock-free B+tree. In SPAA, pages 58--67, 2012.Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. A. Braginsky, E. Petrank, and N. Cohen. CBPQ: High performance lock-free priority queue. In Euro-Par, 2016.Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. N. G. Bronson, J. Casper, H. Chafi, and K. Olukotun. A practical concurrent binary search tree. In PPOPP, pages 257--268, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. T. Brown and H. Avni. Range queries in non-blocking k-ary search trees. In OPODIS, pages 31--45, 2012. Google ScholarGoogle ScholarCross RefCross Ref
  16. T. Brown and J. Helga. Non-blocking k-ary search trees. In OPODIS, pages 207--221, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. F. Chang, J. Dean, S. Ghemawat, W. C. Hsieh, D. A. Wallach, M. Burrows, T. Chandra, A. Fikes, and R. E. Gruber. Bigtable: A distributed storage system for structured data. ACM Trans. Comput. Syst., 26(2):4:1--4:26, June 2008. ISSN 0734--2071.Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. B. Chatterjee. Lock-free linearizable 1-dimensional range queries. In WTTM, 2016.Google ScholarGoogle Scholar
  19. K. Fraser. Practical lock-freedom. In PhD dissertation, University of Cambridge, 2004.Google ScholarGoogle Scholar
  20. G. Golan-Gueta, E. Bortnikov, E. Hillel, and I. Keidar. Scaling concurrent log-structured data stores. In EuroSys, pages 32:1-- 32:14, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. V. Gramoli. More than you ever wanted to know about synchronization: Synchrobench, measuring the impact of the synchronization on concurrent algorithms. In PPoPP, 2015.Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. D. Hendler, N. Shavit, and L. Yerushalmi. A scalable lockfree stack algorithm. In SPAA, pages 206--215, 2004.Google ScholarGoogle Scholar
  23. M. Herlihy and N. Shavit. The Art of Multiprocessor Programming. Morgan Kaufmann Publishers Inc., 2008.Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. M. Herlihy and J. M. Wing. Linearizability: A correctness condition for concurrent objects. ACM Trans. Program. Lang. Syst., 12(3):463--492, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. M. Herlihy, Y. Lev, V. Luchangco, and N. Shavit. A simple optimistic skiplist algorithm. In SIROCCO, pages 124--138, 2007. Google ScholarGoogle ScholarCross RefCross Ref
  26. I. Keidar and D. Perelman. Multi-versioning in transactional memory. In Transactional Memory; Foundations, Algorithms, Tools, and Applications, volume 8913, chapter 7, pages 150--165. 2015. Google ScholarGoogle ScholarCross RefCross Ref
  27. A. Kogan and E. Petrank. A methodology for creating fast wait-free data structures. In PPoPP, pages 141--150, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. D. B. Lomet, S. Sengupta, and J. J. Levandoski. The bw-tree: A b-tree for new hardware platforms. In ICDE, pages 302-- 313, 2013.Google ScholarGoogle Scholar
  29. Y. Mao, E. Kohler, and R. T. Morris. Cache craftiness for fast multicore key-value storage. In Proceedings of the 7th ACM European Conference on Computer Systems, EuroSys '12, pages 183--196, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. A. Natarajan and N. Mittal. Fast concurrent lock-free binary search trees. In PPoPP, pages 317--328, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. E. Petrank and S. Timnat. Lock-free data-structure iterators. In DISC, pages 224--238, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. A. Prokopec, N. G. Bronson, P. Bagwell, and M. Odersky. Concurrent tries with efficient non-blocking snapshots. In PPoPP, pages 151--160, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. J. Shute, R. Vingralek, B. Samwel, B. Handy, C. Whipkey, E. Rollins, M. Oancea, K. Littlefield, D. Menestrina, S. Ellner, J. Cieslewicz, I. Rae, T. Stancescu, and H. Apte. F1: A distributed sql database that scales. In VLDB, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. B. Sowell, W. Golab, and M. A. Shah. Minuet: A scalable distributed multiversion b-tree. Proc. VLDB Endow., 5(9): 884--895, May 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. A. Spiegelman, G. Golan-Gueta, and I. Keidar. Transactional data structure libraries. In PLDI, pages 682--696, 2016. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. J. L. Welch and H. Attiya. Distributed Computing: Fundamentals, Simulations and Advanced Topics (2nd edition). John Wiley Interscience, 2004.Google ScholarGoogle Scholar

Index Terms

  1. KiWi: A Key-Value Map for Scalable Real-Time Analytics

      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 SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 52, Issue 8
        PPoPP '17
        August 2017
        442 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/3155284
        Issue’s Table of Contents
        • cover image ACM Conferences
          PPoPP '17: Proceedings of the 22nd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
          January 2017
          476 pages
          ISBN:9781450344937
          DOI:10.1145/3018743

        Copyright © 2017 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 26 January 2017

        Check for updates

        Qualifiers

        • research-article

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader