검색 상세

Towards Scalable and Persistent R-Tree for Non-Volatile Memory-based Manycore Machines

비휘발성 메모리 기반 매니코어 머신을 위한 확장성있는 영속 R-Tree 연구

초록

The emergence of manycore machines With hundreds of CPU cores spread over numerous CPU sockets, with Intel DC Persistent Memory (DCPM) promise to deliver excellent performance and scalability with persistence guarantees. DCPM offers byte-addressability, high density, persistency, and close to DRAM performance. Applications that run extensively on manycore machines include databases and file-system that manage user-generated data and rely heavily on indexes data structures for high performance. Over the last decade, multi-dimensional data structures, such as R-Trees, have gained special attention from academia and industry. FBR-Tree is a state-of-the-art DCPM-based multi-dimensional index data structure that extends R-tree's properties with failure atomicity and persistency. However, FBR-Trees' adoption on DCPM-based manycore machines suffers from scalability limitations due to lengthy, lock-based synchronization, including structural modification operations. In this work, I investigated that with the increase in CPU resources, i.e., when multiple threads are performing insert operation, trying to access the FBR-Tree, the lock contention among threads increases due to its lock-based design. To solve the abovementioned problem, I propose MPR-Tree, a manycore-aware persistent R-tree. MPR-Tree relies on Thread Local Future Object (TLFO) and R-Tree. First, MPR-Tree employs a fine-grained synchronization mechanism to cut off the critical section of FBR-Tree, I call this FBR-Tree-FG. For further optimization, I adopted a scalable friendly Future Object (FO), which guarantees high parallelism on the MPR-Tree in a delegation manner. Read and delete query performance reduces due to the additional layer of TLFOs. I adopted an in-memory hash table to diminish the performance constraints of such operations. I implemented the proposed ideas atop FBR-Tree and performed experiments on Linux (kernel v5.4.0) using synthetic workloads. I evaluated MPR-Tree with FBR-Tree and the results show that MPR-Tree outperforms FBR-Tree on average by 2x on the log10 scale with an increasing number of resources on the DCPM-based manycore machine.

more