Log-Structured Merge-tree (LSM tree) enables fast write throughput and is a key component in many database systems, especially key-value stores. While there has been a considerable amount of research work on LSM optimization techniques, recent work has begun exploring the potential to leveraging modern GPUs to implement data structures. GPU is well-known for its immense computing power with high degrees of parallelism, which also brings challenges to developers. However, existing GPU-based LSM trees still suffer from high memory usage and sub-optimal performance. In this paper, we first do a root cause analysis and identify the inefficiencies of existing work. We then propose eGLSM, a novel LSM tree structure on GPU. eGLSM utilizes the GPU memory by mixing the use of buffer area and data area and saves almost 33% of the GPU memory space compared to previous work. We then improve the performance by proposing a coalesced batch insertion algorithm and an optimized lookup algorithm. Our experimental results demonstrate eGLSM’s superior performance with fine stability and scalability, improving the insertion and lookup performance by at least 30% and 10% respectively. The batch insertion algorithm significantly reduces the CPU-GPU synchronization overhead by orders of magnitude. This work takes an important step towards high-performance LSM tree on GPU.

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

eGLSM: A High Performance GPU LSM with Low Memory Usage

  • Jianyuan Wang,
  • Zhaokun Zhang,
  • Yong Zhang,
  • Chunxiao Xing

摘要

Log-Structured Merge-tree (LSM tree) enables fast write throughput and is a key component in many database systems, especially key-value stores. While there has been a considerable amount of research work on LSM optimization techniques, recent work has begun exploring the potential to leveraging modern GPUs to implement data structures. GPU is well-known for its immense computing power with high degrees of parallelism, which also brings challenges to developers. However, existing GPU-based LSM trees still suffer from high memory usage and sub-optimal performance. In this paper, we first do a root cause analysis and identify the inefficiencies of existing work. We then propose eGLSM, a novel LSM tree structure on GPU. eGLSM utilizes the GPU memory by mixing the use of buffer area and data area and saves almost 33% of the GPU memory space compared to previous work. We then improve the performance by proposing a coalesced batch insertion algorithm and an optimized lookup algorithm. Our experimental results demonstrate eGLSM’s superior performance with fine stability and scalability, improving the insertion and lookup performance by at least 30% and 10% respectively. The batch insertion algorithm significantly reduces the CPU-GPU synchronization overhead by orders of magnitude. This work takes an important step towards high-performance LSM tree on GPU.