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