{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T04:23:13Z","timestamp":1750220593242,"version":"3.41.0"},"reference-count":39,"publisher":"Association for Computing Machinery (ACM)","issue":"3","license":[{"start":{"date-parts":[[2020,6,21]],"date-time":"2020-06-21T00:00:00Z","timestamp":1592697600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Parallel Comput."],"published-print":{"date-parts":[[2020,9,30]]},"abstract":"<jats:p>\n            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\n            <jats:italic>non-atomic<\/jats:italic>\n            ones implemented via iterators in the Java skiplist.\n          <\/jats:p>","DOI":"10.1145\/3399718","type":"journal-article","created":{"date-parts":[[2020,6,22]],"date-time":"2020-06-22T02:38:56Z","timestamp":1592793536000},"page":"1-28","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":10,"title":["KiWi"],"prefix":"10.1145","volume":"7","author":[{"given":"Dmitry","family":"Basin","sequence":"first","affiliation":[{"name":"Yahoo Research, Haifa, Israel"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Edward","family":"Bortnikov","sequence":"additional","affiliation":[{"name":"Yahoo Research, Haifa, Israel"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Anastasia","family":"Braginsky","sequence":"additional","affiliation":[{"name":"Yahoo Research, Haifa, Israel"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Guy","family":"Golan-Gueta","sequence":"additional","affiliation":[{"name":"VMWare Research Group, Tel Aviv, Herzliya, Israel"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Eshcar","family":"Hillel","sequence":"additional","affiliation":[{"name":"Yahoo Research, Haifa, Israel"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Idit","family":"Keidar","sequence":"additional","affiliation":[{"name":"Technion and Yahoo Research, Haifa, Israel"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Moshe","family":"Sulamy","sequence":"additional","affiliation":[{"name":"Tel Aviv University, Tel Aviv, Israel"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2020,6,21]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"[n.d.]. Apache HBase\u2014A Distributed Hadoop Database. Retrieved from https:\/\/hbase.apache.org\/.  [n.d.]. Apache HBase\u2014A Distributed Hadoop Database. Retrieved from https:\/\/hbase.apache.org\/."},{"key":"e_1_2_1_2_1","unstructured":"[n.d.]. Java Array Copy. Retrieved from https:\/\/docs.oracle.com\/javase\/7\/docs\/api\/java\/lang\/System.html.  [n.d.]. Java Array Copy. Retrieved from https:\/\/docs.oracle.com\/javase\/7\/docs\/api\/java\/lang\/System.html."},{"key":"e_1_2_1_3_1","unstructured":"[n.d.]. Java Concurrent Skip List. Retrieved from https:\/\/docs.oracle.com\/javase\/7\/docs\/api\/java\/util\/concurrent\/ConcurrentSkipListMap.html.  [n.d.]. Java Concurrent Skip List. Retrieved from https:\/\/docs.oracle.com\/javase\/7\/docs\/api\/java\/util\/concurrent\/ConcurrentSkipListMap.html."},{"key":"e_1_2_1_4_1","unstructured":"2014. A fast and lightweight key\/value database library by Google. Retrieved from http:\/\/code.google.com\/p\/leveldb.  2014. A fast and lightweight key\/value database library by Google. Retrieved from http:\/\/code.google.com\/p\/leveldb."},{"key":"e_1_2_1_5_1","unstructured":"2014. A persistent key-value store for fast storage environments. Retrieved from http:\/\/rocksdb.org\/.  2014. A persistent key-value store for fast storage environments. Retrieved from http:\/\/rocksdb.org\/."},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-662-48653-5_12"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/3178487.3178489"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/3323165.3323185"},{"volume-title":"Concurrency Control and Recovery in Database Systems","author":"Bernstein Philip A.","key":"e_1_2_1_9_1"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-17679-1_10"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/2312005.2312016"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-43659-3_34"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/1693453.1693488"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-35476-2_3"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/2484239.2484273"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/2555243.2555267"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-25873-2_15"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/1365815.1365816"},{"volume-title":"Proceedings of the Workshop on the Theory of Transactional Memory (WTTM\u201916)","year":"2016","author":"Chatterjee Bapi","key":"e_1_2_1_19_1"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/3323165.3323197"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/2741948.2741973"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/2688500.2688501"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/1007912.1007944"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-72951-8_11"},{"volume-title":"The Art of Multiprocessor Programming","author":"Herlihy Maurice","key":"e_1_2_1_26_1"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/78969.78972"},{"key":"e_1_2_1_28_1","first-page":"150","article-title":"Multi-versioning in transactional memory. In Transactional Memory; Foundations, Algorithms, Tools, and Applications. Vol. 8913","volume":"7","author":"Keidar Idit","year":"2015","journal-title":"Chapter"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-14720-8_7"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/2145816.2145835"},{"volume-title":"Proceedings of the IEEE International Conference on Data Engineering (ICDE\u201913)","author":"Lomet David B.","key":"e_1_2_1_31_1"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/2168836.2168855"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/2555243.2555256"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-24100-0_9"},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-41527-2_16"},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/2145816.2145836"},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.14778\/2311906.2311915"},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/2908080.2908112"},{"volume-title":"Proceedings of the 23rd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP\u201918)","author":"Sun Yihan","key":"e_1_2_1_39_1"},{"volume-title":"Welch and Hagit Attiya","year":"2004","author":"Jennifer","key":"e_1_2_1_40_1"}],"container-title":["ACM Transactions on Parallel Computing"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3399718","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3399718","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T21:31:49Z","timestamp":1750195909000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3399718"}},"subtitle":["A Key-value Map for Scalable Real-time Analytics"],"short-title":[],"issued":{"date-parts":[[2020,6,21]]},"references-count":39,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2020,9,30]]}},"alternative-id":["10.1145\/3399718"],"URL":"https:\/\/doi.org\/10.1145\/3399718","relation":{},"ISSN":["2329-4949","2329-4957"],"issn-type":[{"type":"print","value":"2329-4949"},{"type":"electronic","value":"2329-4957"}],"subject":[],"published":{"date-parts":[[2020,6,21]]},"assertion":[{"value":"2018-06-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2020-04-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2020-06-21","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}