一句话:提出统一存储格式与PIM扩展,在单实例HTAP中兼顾OLTP/OLAP并提升吞吐。
HTAP需同时支持行式OLTP与列式OLAP,但数据格式矛盾使其难以兼顾性能隔离、数据新鲜度与负载专用优化。PUSHtap利用CPU交错访问与PIM单元局部访问构成二维访问,提出统一数据存储格式,配合数据对齐与放置优化CPU和PIM的有效带宽并挖掘PIM并行性;同时实现单实例HTAP所需的MVCC,并扩展商用PIM架构以支持OLAP操作及PIM/CPU并发访问。实验表明,相比多实例PIM方案,其OLAP/OLTP吞吐分别提升3.4倍和4.4倍。
Hybrid transaction/analytical processing (HTAP) is an emerging database paradigm that supports both online transaction processing (OLTP) and online analytical processing (OLAP) workloads. Computing-intensive OLTP operations, involving row-wise data manipulation, are suitable for row-store format. In contrast, memory-intensive OLAP operations, which are column-centric, benefit from column-store format. This data-format dilemma prevents HTAP systems from concurrently achieving three design goals: performance isolation, data freshness, and workload-specific optimization. Another background technology is Processing-in-Memory (PIM), which integrates computing units (PIM units) inside DRAM memory devices to accelerate memory-intensive workloads, including OLAP. Our key insight is to combine the interleaved CPU access and localized PIM unit access to provide two-dimensional access to address the data format contradictions inherent in HTAP. First, we propose a unified data storage format with novel data alignment and placement techniques to optimize the effective bandwidth of CPUs and PIM units and exploit the PIM's parallelism. Second, we implement the multi-version concurrency control (MVCC) essential for single-instance HTAP. Third, we extend the commercial PIM architecture to support the OLAP operations and concurrent access from PIM and CPU. Experiments show that PUSHtap can achieve 3.4X/4.4X OLAP/OLTP throughput improvement compared to multi-instance PIM-based design.
DOI 原文 · arXiv · PDF(开放获取) · DBLP
@inproceedings{abs-2508-02309,
title = {PUSHtap: PIM-based In-Memory HTAP with Unified Data Storage Format},
author = {Yilong Zhao and Mingyu Gao and Huanchen Zhang and Fangxin Liu and Gongye Chen and He Xian and Haibing Guan and Li Jiang},
booktitle = {ASPLOS},
year = {2025},
doi = {10.1145/3676642.3736120}
}