Skip to main content
QUICK REVIEW

[论文解读] COLE: A Column-based Learned Storage for Blockchain Systems

Ce Zhang, Cheng Xu|arXiv (Cornell University)|Jun 19, 2023
Advanced Data Storage Technologies被引用 4
一句话总结

COLE 提出了一种面向区块链系统的列式学习存储系统,通过将每个状态的历史值连续存储,并使用磁盘优化的学习模型进行索引,显著降低了存储开销。与梅尔克尔前缀树(Merkle Patricia Trie)相比,COLE 将存储大小减少高达 94%,吞吐量提升 1.4×–5.4×,同时通过梅尔克尔文件流和异步合并策略支持溯源查询与数据完整性。

ABSTRACT

Blockchain systems suffer from high storage costs as every node needs to store and maintain the entire blockchain data. After investigating Ethereum's storage, we find that the storage cost mostly comes from the index, i.e., Merkle Patricia Trie (MPT). To support provenance queries, MPT persists the index nodes during the data update, which adds too much storage overhead. To reduce the storage size, an initial idea is to leverage the emerging learned index technique, which has been shown to have a smaller index size and more efficient query performance. However, directly applying it to the blockchain storage results in even higher overhead owing to the requirement of persisting index nodes and the learned index's large node size. To tackle this, we propose COLE, a novel column-based learned storage for blockchain systems. We follow the column-based database design to contiguously store each state's historical values, which are indexed by learned models to facilitate efficient data retrieval and provenance queries. We develop a series of write-optimized strategies to realize COLE in disk environments. Extensive experiments are conducted to validate the performance of the proposed COLE system. Compared with MPT, COLE reduces the storage size by up to 94% while improving the system throughput by $1.4 imes$-$5.4 imes$.

研究动机与目标

  • 解决区块链系统中高昂的存储成本问题,尽管实际交易内容仅占 2.8% 的数据,但索引(如梅尔克尔前缀树)仍主导了存储开销。
  • 克服现有学习索引在区块链系统中的局限性,这些索引因节点尺寸过大和持久化节点需求,无法有效支持数据完整性、溯源查询和高效的基于磁盘的写入操作。
  • 设计一种面向区块链的高效学习索引,支持在磁盘环境中实现高效的溯源查询、数据完整性保障和高写入吞吐量。
  • 通过基于检查点的异步合并策略,降低区块链存储中的长尾写入延迟,同时不增加存储开销。
  • 通过消除对过时区块索引的遍历,仅依赖最新区块的学习索引,实现高效的历史数据检索,从而支持版本化状态访问。

提出的方法

  • 采用列式数据库设计,将每个区块链状态的历史值连续存储,以支持高效的压缩和访问模式。
  • 在每个 LSM-tree 运行中实现磁盘优化的学习索引,以替代传统的 B+-tree 结构,使用回归模型预测数据位置,从而以极低的存储成本实现高效索引。
  • 引入一种流式算法,用于构建梅尔克尔文件,确保跨版本的数据完整性,支持对历史状态的密码学验证。
  • 设计一种基于检查点的异步合并策略,将写入操作与合并过程解耦,将长尾写入延迟降低 1–2 个数量级。
  • 使用版本化区块高度作为追加式标识符,通过最新区块的学习索引实现高效的更新与溯源查询。
  • 利用列式布局,为未来集成利用相邻状态版本间相似性的数据压缩技术提供支持。

实验结果

研究问题

  • RQ1学习索引能否被有效适配于区块链存储,以在保持数据完整性与溯源查询支持的同时显著减小索引大小?
  • RQ2学习索引如何针对频繁写入操作和高持久性要求的基于磁盘的存储系统进行优化?
  • RQ3哪些设计模式可以最小化区块链系统中持久化索引节点的存储开销,尤其是在学习索引通常具有更大节点尺寸的情况下?
  • RQ4列式存储模型结合学习索引在多大程度上能够降低区块链工作负载中的长尾写入延迟?
  • RQ5梅尔克尔文件流与学习索引的集成是否能够实现高效、可密码学验证的溯源查询,而无需遍历过时的索引树?

主要发现

  • 与梅尔克尔前缀树相比,COLE 将区块链存储大小最多减少 94%,其中绝大部分节省来自于消除了冗余索引节点的持久化存储。
  • 由于学习索引带来的更快查询性能和优化的写入模式,系统吞吐量相比 MPT 提升了 1.4× 至 5.4×。
  • 基于检查点的异步合并策略在保持与基线系统相当的存储开销的同时,将长尾写入延迟降低了 1–2 个数量级。
  • 列式设计通过仅依赖最新区块的学习索引即可解析溯源查询,无需遍历过时的索引树,从而实现高效的历史数据检索。
  • 流式梅尔克尔文件构建算法确保了数据完整性,并以极低的运行时开销支持对任意历史状态的密码学验证。
  • 在 SmallBank 工作负载上的评估表明,底层数据仅占总存储的 2.8%,证实索引膨胀是主要的存储瓶颈。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。