MemGraph 背后论文《基于内存和MVCC 的高速可串行化》详细解析(一)

MemGraph 背后论文《基于内存和MVCC 的高速可串行化》详细解析(一)

💡 原文中文,约2900字,阅读约需7分钟。
📝

内容提要

Memgraph是一种内存型图数据库,使用OpenCypher作为查询语言。它使用链表存储多版本数据,并通过时间戳实现数据的可见性。通过条件判断,确定事务对数据的可见性。

🎯

关键要点

  • Memgraph 是一种内存型图数据库,使用 OpenCypher 作为查询语言,适用于小数据量和低延迟的图场景。
  • Memgraph 是开源的,使用 C++ 实现,其内存结构灵感来自于多版本并发控制的相关论文。
  • 论文的目标是实现一种支持可串行化隔离级别的高性能数据结构,采用多版本控制(MVCC)。
  • 使用列存、复用 Undo Buffer 数据结构和双向链表来存储多版本数据,并通过时间戳实现数据的可见性。
  • 在事务提交时,获取 commitTime-stamp,所有更新在原地进行,但旧值保存在 Undo Buffer 中。
  • 版本可见性通过访问链表中的节点来实现,依据事务的时间戳判断可见性。
  • 不同事务访问数据时,根据时间戳条件判断可见的值,确保事务的隔离性。
  • 下篇将讨论如何基于上述数据结构实现可串行化隔离级别。
➡️

继续阅读