{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,2,21]],"date-time":"2025-02-21T07:50:25Z","timestamp":1740124225750,"version":"3.37.3"},"reference-count":41,"publisher":"Springer Science and Business Media LLC","issue":"1","license":[{"start":{"date-parts":[[2021,3,14]],"date-time":"2021-03-14T00:00:00Z","timestamp":1615680000000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2021,3,14]],"date-time":"2021-03-14T00:00:00Z","timestamp":1615680000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"funder":[{"DOI":"10.13039\/501100001659","name":"Deutsche Forschungsgemeinschaft","doi-asserted-by":"publisher","award":["SA 782\/28","SA 465\/51-1"],"award-info":[{"award-number":["SA 782\/28","SA 465\/51-1"]}],"id":[{"id":"10.13039\/501100001659","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100007826","name":"Technische Universit\u00e4t Ilmenau","doi-asserted-by":"crossref","id":[{"id":"10.13039\/501100007826","id-type":"DOI","asserted-by":"crossref"}]}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Distrib Parallel Databases"],"published-print":{"date-parts":[[2022,3]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>After the introduction of Persistent Memory in the form of Intel\u2019s Optane DC Persistent Memory on the market in 2019, it has found its way into manifold applications and systems. As Google and other cloud infrastructure providers are starting to incorporate Persistent Memory into their portfolio, it is only logical that cloud applications have to exploit its inherent properties. Persistent Memory can serve as a DRAM substitute, but guarantees persistence at the cost of compromised read\/write performance compared to standard DRAM. These properties particularly affect the performance of index structures, since they are subject to frequent updates and queries. However, adapting each and every index structure to exploit the properties of Persistent Memory is tedious. Hence, we require a general technique that hides this access gap, e.g., by using DRAM caching strategies. To exploit Persistent Memory properties for analytical index structures, we propose<jats:italic>selective caching<\/jats:italic>. It is based on a mixture of dynamic and static caching of tree nodes in DRAM to reach near-DRAM access speeds for index structures. In this paper, we evaluate selective caching on the OLAP-optimized main-memory index structure Elf, because its memory layout allows for an easy caching. Our experiments show that if configured well, selective caching with a suitable replacement strategy can keep pace with pure DRAM storage of Elf while guaranteeing persistence. These results are also reflected when selective caching is used for parallel workloads.<\/jats:p>","DOI":"10.1007\/s10619-021-07327-0","type":"journal-article","created":{"date-parts":[[2021,3,14]],"date-time":"2021-03-14T15:02:15Z","timestamp":1615734135000},"page":"47-66","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":2,"title":["Selective caching: a persistent memory approach for multi-dimensional index structures"],"prefix":"10.1007","volume":"40","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-2138-881X","authenticated-orcid":false,"given":"Muhammad Attahir","family":"Jibril","sequence":"first","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0002-5076-5007","authenticated-orcid":false,"given":"Philipp","family":"G\u00f6tze","sequence":"additional","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0002-9580-740X","authenticated-orcid":false,"given":"David","family":"Broneske","sequence":"additional","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0003-1608-7721","authenticated-orcid":false,"given":"Kai-Uwe","family":"Sattler","sequence":"additional","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2021,3,14]]},"reference":[{"issue":"5","key":"7327_CR1","first-page":"553","volume":"11","author":"J Arulraj","year":"2018","unstructured":"Arulraj, J., Levandoski, J., et al.: BzTree: a high-performance latch-free range index for non-volatile memory. PVLDB 11(5), 553\u2013565 (2018)","journal-title":"PVLDB"},{"key":"7327_CR2","doi-asserted-by":"crossref","unstructured":"Arulraj, J., Pavlo, A., Malladi, K.T.: Multi-tier buffer management and storage system design for non-volatile memory. CoRR abs\/1901.10938 (2019)","DOI":"10.1007\/978-3-031-01868-8_5"},{"key":"7327_CR3","unstructured":"Blockhaus, P.: Parallelizing the Elf: a task parallel approach. Bachelor thesis, University of Magdeburg (2019)"},{"key":"7327_CR4","doi-asserted-by":"crossref","unstructured":"Broneske, D., K\u00f6ppen, V., et\u00a0al.: Accelerating multi-column selection predicates in main-memory\u2014the Elf approach. In: IEEE ICDE, pp 647\u2013658 (2017)","DOI":"10.1109\/ICDE.2017.118"},{"issue":"7","key":"7327_CR5","first-page":"1296","volume":"31","author":"D Broneske","year":"2019","unstructured":"Broneske, D., K\u00f6ppen, V., et al.: Efficient evaluation of multi-column selection predicates in main-memory. IEEE TKDE 31(7), 1296\u20131311 (2019)","journal-title":"IEEE TKDE"},{"issue":"7","key":"7327_CR6","first-page":"786","volume":"8","author":"S Chen","year":"2015","unstructured":"Chen, S., Jin, Q.: Persistent B+-trees in non-volatile main memory. PVLDB 8(7), 786\u2013797 (2015)","journal-title":"PVLDB"},{"key":"7327_CR7","unstructured":"Cutress, I., Tallis, B.: Intel launches optane DIMMs up to 512GB: apache pass is here! https:\/\/www.anandtech.com\/show\/12828\/intel-launches-optane-dimms-up-to-512gb-apache-pass-is-here. Accessed 14 Dec 2020"},{"key":"7327_CR8","unstructured":"G\u00f6tze, P., Baumann, S., Sattler, K.: An NVM-aware storage layout for analytical workloads. In: HardBD & Active @ ICDE, pp 110\u2013115 (2018)"},{"issue":"3","key":"7327_CR9","doi-asserted-by":"publisher","first-page":"171","DOI":"10.1007\/s13222-018-0301-1","volume":"18","author":"P G\u00f6tze","year":"2018","unstructured":"G\u00f6tze, P., van Renen, A., et al.: Data management on non-volatile memory: a perspective. DB-Spektrum 18(3), 171\u2013182 (2018)","journal-title":"DB-Spektrum"},{"key":"7327_CR10","doi-asserted-by":"crossref","unstructured":"G\u00f6tze, P., Tharanatha, A.K., Sattler, K.: Data structure primitives on persistent memory: an evaluation. CoRR abs\/2001.02172 (2020)","DOI":"10.1145\/3399666.3399900"},{"key":"7327_CR11","doi-asserted-by":"publisher","unstructured":"G\u00f6tze, P., Tharanatha, A.K., Sattler, K.: Data structure primitives on persistent memory: an evaluation. In: 16th International Workshop on Data Management on New Hardware, DaMoN 2020, Portland, Oregon, June 15, 2020, pp 15:1\u201315:3 (2020) https:\/\/doi.org\/10.1145\/3399666.3399900","DOI":"10.1145\/3399666.3399900"},{"issue":"1","key":"7327_CR12","doi-asserted-by":"publisher","first-page":"37","DOI":"10.14778\/2735461.2735465","volume":"8","author":"G Graefe","year":"2014","unstructured":"Graefe, G., Volos, H., Kimura, H., Kuno, H.A., Tucek, J., Lillibridge, M., Veitch, A.C.: In-memory performance for big data. Proc VLDB Endow 8(1), 37\u201348 (2014). https:\/\/doi.org\/10.14778\/2735461.2735465","journal-title":"Proc VLDB Endow"},{"key":"7327_CR13","doi-asserted-by":"publisher","unstructured":"Gray, J., Sundaresan, P., et\u00a0al.: Quickly generating billion-record synthetic databases. In: Proceedings of the 1994 ACM SIGMOD International Conference on Management of Data, Minneapolis, Minnesota, May 24\u201327, 1994., pp 243\u2013252 (1994). https:\/\/doi.org\/10.1145\/191839.191886","DOI":"10.1145\/191839.191886"},{"key":"7327_CR14","unstructured":"Hosomi, M., Yamagishi, H., et\u00a0al.: A novel nonvolatile memory with spin torque transfer magnetization switching: spin-RAM. IEEE IEDM, pp 459\u2013462 (2005)"},{"key":"7327_CR15","unstructured":"Hwang, D., Kim, W., et\u00a0al.: Endurable transient inconsistency in byte-addressable persistent B+-tree. In: USENIX FAST, pp 187\u2013200 (2018)"},{"key":"7327_CR16","unstructured":"Intel Corporation Persistent Memory Development Kit. http:\/\/pmem.io\/pmdk. Accessed 14 Dec 2020"},{"key":"7327_CR17","doi-asserted-by":"publisher","unstructured":"Jibril, M.A., G\u00f6tze, P., Broneske, D., Sattler, K.: Selective caching: a persistent memory approach for multi-dimensional index structures. In: 36th IEEE international conference on data engineering workshops, ICDE workshops 2020, Dallas, TX, April 20\u201324, 2020, pp 115\u2013120 (2020). https:\/\/doi.org\/10.1109\/ICDEW49219.2020.00010","DOI":"10.1109\/ICDEW49219.2020.00010"},{"key":"7327_CR18","unstructured":"Kannan, S., Bhat, N., et\u00a0al.: Redesigning LSMs for nonvolatile memory with NoveLSM. In: USENIX ATC, pp 993\u20131005 (2018)"},{"key":"7327_CR19","unstructured":"Lee, S.K., Lim, K.H., et\u00a0al.: WORT: write optimal radix tree for persistent memory storage systems. In: USENIX FAST, pp 257\u2013270 (2017)"},{"key":"7327_CR20","doi-asserted-by":"crossref","unstructured":"Leis, V., Kemper, A., Neumann, T.: The adaptive radix tree: ARTful indexing for main-memory databases. In: IEEE ICDE, pp 38\u201349 (2013)","DOI":"10.1109\/ICDE.2013.6544812"},{"key":"7327_CR21","doi-asserted-by":"crossref","unstructured":"Lersch, L., Oukid, I., et\u00a0al.: An analysis of LSM caching in NVRAM. In: DaMoN @ SIGMOD, pp 9:1\u20139:5 (2017)","DOI":"10.1145\/3076113.3076123"},{"issue":"4","key":"7327_CR22","first-page":"574","volume":"13","author":"L Lersch","year":"2019","unstructured":"Lersch, L., Hao, X., et al.: Evaluating persistent memory range indexes. PVLDB 13(4), 574\u2013587 (2019)","journal-title":"PVLDB"},{"issue":"7","key":"7327_CR23","doi-asserted-by":"publisher","first-page":"1078","DOI":"10.14778\/3384345.3384355","volume":"13","author":"J Liu","year":"2020","unstructured":"Liu, J., Chen, S., Wang, L.: LB+-trees: optimizing persistent index performance on 3DXPoint memory. PVLDB 13(7), 1078\u20131090 (2020). https:\/\/doi.org\/10.14778\/3384345.3384355","journal-title":"PVLDB"},{"issue":"5","key":"7327_CR24","first-page":"1537","volume":"27","author":"S Mittal","year":"2016","unstructured":"Mittal, S., Vetter, J.S.: A survey of software techniques for using non-volatile memories for storage and main memory systems. IEEE TPDS 27(5), 1537\u20131550 (2016)","journal-title":"IEEE TPDS"},{"issue":"8","key":"7327_CR25","doi-asserted-by":"publisher","first-page":"657","DOI":"10.1109\/32.153378","volume":"18","author":"JEB Moss","year":"1992","unstructured":"Moss, J.E.B.: Working with persistent objects: to swizzle or not to swizzle. IEEE Trans. Softw. Eng. 18(8), 657\u2013673 (1992). https:\/\/doi.org\/10.1109\/32.153378","journal-title":"IEEE Trans. Softw. Eng."},{"key":"7327_CR26","unstructured":"Nam, M., Cha, H., et\u00a0al.: Write-optimized dynamic hashing for persistent memory. In: USENIX FAST, pp 31\u201344 (2019)"},{"key":"7327_CR27","unstructured":"Oukid, I., Lersch, L.: On the diversity of memory and storage technologies. CoRR abs\/1908.07431 (2019)"},{"key":"7327_CR28","doi-asserted-by":"crossref","unstructured":"Oukid, I., Lasperas, J., et\u00a0al.: FPTree: A hybrid SCM-DRAM persistent and concurrent B-tree for storage class memory. In: SIGMOD, pp 371\u2013386 (2016)","DOI":"10.1145\/2882903.2915251"},{"key":"7327_CR29","unstructured":"Rao, D.S., Kumar, S., et\u00a0al.: System software for persistent memory. In: EuroSys, pp 15:1\u201315:15 (2014)"},{"key":"7327_CR30","doi-asserted-by":"crossref","unstructured":"Rao, J., Ross, K.A.: Making B$^+$-trees cache conscious in main memory. In: SIGMOD, pp 475\u2013486 (2000)","DOI":"10.1145\/335191.335449"},{"key":"7327_CR31","doi-asserted-by":"crossref","unstructured":"Schwalb, D., Dreseler, M., et\u00a0al.: NVC-hashmap: a persistent and concurrent hashmap for non-volatile memories. In: IMDM @ VLDB, pp 4:1\u20134:8 (2015)","DOI":"10.1145\/2803140.2803144"},{"key":"7327_CR32","doi-asserted-by":"publisher","unstructured":"Shanbhag, A., Tatbul, N., Cohen, D., Madden, S.: Large-scale in-memory analytics on Intel\u00ae Optane\u2122 DC persistent memory. In: DaMoN @ SIGMOD, pp 4:1\u20134:8 (2020) https:\/\/doi.org\/10.1145\/3399666.3399933","DOI":"10.1145\/3399666.3399933"},{"issue":"7191","key":"7327_CR33","doi-asserted-by":"publisher","first-page":"80","DOI":"10.1038\/nature06932","volume":"453","author":"DB Strukov","year":"2008","unstructured":"Strukov, D.B., Snider, G.S., et al.: The missing memristor found. Nature 453(7191), 80\u201383 (2008)","journal-title":"Nature"},{"key":"7327_CR34","doi-asserted-by":"publisher","unstructured":"van Renen, A., Leis, V., et al.: Managing non-volatile memory in database systems. SIGMOD, 1541\u20131555 (2018). https:\/\/doi.org\/10.1145\/3183713.3196897","DOI":"10.1145\/3183713.3196897"},{"key":"7327_CR35","doi-asserted-by":"crossref","unstructured":"van Renen, A., Vogel, L., et\u00a0al.: Persistent memory I\/O primitives. In: DaMoN @ SIGMOD, pp 12:1\u201312:7 (2019)","DOI":"10.1145\/3329785.3329930"},{"key":"7327_CR36","unstructured":"Venkataraman, S., Tolia, N., et\u00a0al.: Consistent and durable data structures for non-volatile byte-addressable memory. In: USENIX FAST, pp 61\u201375 (2011)"},{"issue":"12","key":"7327_CR37","first-page":"2201","volume":"98","author":"HP Wong","year":"2010","unstructured":"Wong, H.P., Raoux, S., et al.: Phase change memory. PIEEE 98(12), 2201\u20132227 (2010)","journal-title":"PIEEE"},{"key":"7327_CR38","doi-asserted-by":"publisher","unstructured":"Wu, Y., Park, K., Sen, R., Kroth, B., Do, J.: Lessons learned from the early performance evaluation of Intel Optane DC Persistent Memory in DBMS. In: DaMoN @ SIGMOD, pp 14:1\u201314:3 (2020). https:\/\/doi.org\/10.1145\/3399666.3399898","DOI":"10.1145\/3399666.3399898"},{"key":"7327_CR39","unstructured":"Xia, F., Jiang, D., et\u00a0al.: HiKV: a hybrid index key-value store for DRAM-NVM memory systems. In: USENIX ATC, pp 349\u2013362 (2017)"},{"key":"7327_CR40","unstructured":"Yang, J., Wei, Q., et\u00a0al.: NV-tree: reducing consistency cost for NVM-based single level systems. In: USENIX FAST, pp 167\u2013181 (2015)"},{"issue":"4","key":"7327_CR41","first-page":"421","volume":"13","author":"X Zhou","year":"2019","unstructured":"Zhou, X., Shou, L., Chen, K., Hu, W., Chen, G.: DPTree: differential indexing for persistent memory. PVLDB 13(4), 421\u2013434 (2019)","journal-title":"PVLDB"}],"container-title":["Distributed and Parallel Databases"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s10619-021-07327-0.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/article\/10.1007\/s10619-021-07327-0\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s10619-021-07327-0.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,10,23]],"date-time":"2023-10-23T03:51:32Z","timestamp":1698033092000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/s10619-021-07327-0"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2021,3,14]]},"references-count":41,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2022,3]]}},"alternative-id":["7327"],"URL":"https:\/\/doi.org\/10.1007\/s10619-021-07327-0","relation":{},"ISSN":["0926-8782","1573-7578"],"issn-type":[{"type":"print","value":"0926-8782"},{"type":"electronic","value":"1573-7578"}],"subject":[],"published":{"date-parts":[[2021,3,14]]},"assertion":[{"value":"22 February 2021","order":1,"name":"accepted","label":"Accepted","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"14 March 2021","order":2,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}}]}}