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