MemGraph 背后论文《基于内存和MVCC 的高速可串行化》详细解析(一)
2023-05-24 05:49:10来源:哔哩哔哩
Memgraph 是一个内存型图数据库,使用 OpenCypher 作为查询语言,主打小数据量、低延迟的图场景。由于 Memgraph 是开源的(repo 在这,使用 C++ 实现)我们可以一窥其实现。根据这行注释[1],我们可以看出,其内存结构实现灵感主要来自论文:Fast Serializable Multi-Version Concurrency Control for Main-Memory Database Systems[2]。
(资料图)
本系列主要分为两大部分,论文解读和代码串讲,每一部分会根据情况拆成几篇。本篇,是论文解读(一),主要讲论文概述以及如何使用链表巧妙的存储了多版本、控制了可见性。论文解析(二),会讲如何实现可串行化以及回收多版本数据。
概述
从论文题目可以看出,本论文旨在实现一种针对内存型数据库的、基于多版本(MVCC)实现的、支持可串行化隔离级别的高性能数据结构。其基本思想是:
使用列存
复用 Undo Buffer 数据结构
使用双向链表来串起数据的多版本
巧妙设计时间戳来实现数据的可见性
通过谓词树(PT)来判事务读集合(Read Set)是否被更改
与一般的多版本不同的是,本论文会在原地更新数据,然后将旧版本数据“压”到链表中去,使用 “压”是因为链表采用头插法:表头一侧数据较新、表尾一侧数据较旧。所有数据的链表头由一个叫 VersionVector
的数据结构维护,如果某一行没有旧数据,对应的位置就是 null
。
之后,我们之后会一直使用上图例子来辅助理解原理。这是一个 Sally 持续向别人转账的例子。开局时(T0)每人十块钱,然后 Sally 每次转给别人 1 块钱,一共转了三笔,当前时刻前两笔已经完成:
Sally → Wendy,提交时间戳为 T3
Sally → Henry,提交时间戳为 T5
正在进行第三笔:
3. Sally → Mike,事务 ID 是 Ty,起始时间戳为 T6
中间穿插着两次全表扫描(求所有账户总额)事务 Tx 和 Tz,起始时间戳分别为 T4 和 T7 ,都已经开始,但还没结束。
版本管理
每个事务在进入系统时会获取两个时间戳(uint64):
transactionID:事务 ID 也是一个时间戳(从 2^63 开始自增),上图中的 Tx, Ty, Tz。
startTime-stamp:一个自增的时间戳(从 0 开始自增),上图中的 T4, T6, T7。
如前所述,所有的更新是原地的(in-place),但会在 undo buffer 中保存旧值。旧版本的数据有两个作用:
before-image value,作为事务 undo log 的一部分。
作为该字段多版本的一个旧值。
对于快照隔离和可串行化隔离级别来说,原地更新的值,是不为其他事务所见的,下一小节我们会讲如何控制可见性。
在事务提交时,会获取另外一个时间戳:commitTime-stamp,该时间戳和 startTime-stamp 共用一个自增计数器。
在事务进行中,所有的 Undo Buffer 中的旧值会被打上 transactionID 的时间戳(图中第三笔转账:Ty);在事务提交时,会统一替换为 commitTime-stamp (图中前两笔转账:T3 和 T5)。
版本可见性
某个事务在访问一个字段的值时,会首先进行原地访问,然后沿着该值对应的 VersionVector 指向链表进行访问,直到满足以下条件后停止:
下面我们逐一看下三个子条件各自适用情况:
v.pred == null
:当该值没有多版本,或者链表到头时成立。
v.pred.TS == T
:正在进行的事务访问自己更新的数据。
v.pred.TS < T.startTime
:通过事务起始时间戳,访问已经提交的老版本数据。
上述条件比较抽象,我们结合例子来看。Sally 的多次转账会形成以下链表:
然后来看不同事务访问 Sally 的 Bal(Balance)数据的可见性:
事务 Ty:(Ty 是一个 > 2^63 的值),所以会在后继节点满足:pred == (Ty, Bal, 8)
(条件2,Ty == Ty)时停住,此时访问到的值为 7 ,也即事务 Ty 更新到的值。
事务 Tx:起始时间戳为 T4,所以会在后继节点满足 pred == (T3, Bal, 10)
(条件3,T3 < T4)时停住,此时访问到的 Sally 账户的值为 9,也即此时刚转过一次账,即提交时间戳为 T3 的那次转账。
事务 Tz:起始时间戳为 T7,所以会在后继节点满足 pred == (T5, Bal, 9)
(条件 3,T5 < T7)时停住,此时访问到 Sally 的账户值为 8,也即此时完成了两次转账,第三次转账尚未完成,对 Tz 不可见。
可以看出,上述链表把时间轴分成了四段:
比较事务起始时间戳和后继链节时间戳,是为条件 1:
T0 ~ T3:见到的值是 10
T3 ~ T5:见到的值是 9
T5 ~ ∞:见到的值是 8
其中,Ty (事务 ID)相对起始时间戳来说就是无穷大,这就是我们在前一小节提到的将 uint64 对半劈开的妙用之处:
起始和提交时间戳:0 ~ 2^63 -1
事务ID:2^63 ~ 2^64 - 1
另外,null 就相当于 T0 ,是为条件 1 。
最后,为了让事务能够看到自己的更新,于是额外加了条件 2 。
下篇,我们会详细讲如何基于上述数据结构来实现可串行化隔离级别的。
参考资料
[1]
MemGraph 参考论文注释: https://github.com/memgraph/memgraph/blob/master/src/storage/v2/storage.hpp#L57
[2]
Fast Serializable Multi-Version Concurrency Control for Main-Memory Database Systems: https://db.in.tum.de/~muehlbau/papers/mvcc.pdf
题图故事
本篇文章来自我的小报童专栏,第二篇解读也已经在专栏更新,欢迎喜欢我文章的朋友订阅支持,激励我产出更多优质文章。订阅方式见https://xiaobot.net/p/system-thinking,会保证每周不低于两篇更新。
标签:
相关阅读
-
MemGraph 背后论文《基于内存和MVCC 的高速可串行化》详细解析(一)
Memgraph是一个内存型图数据库,使用OpenCypher作为查询语言,主打小数据量、低延迟的图场景。由于Memgraph
2023-05-24 -
MemGraph 背后论文《基于内存和MVCC 的高速可串行化》详细解析(一)
Memgraph是一个内存型图数据库,使用OpenCypher作为查询语言,主打小数据量、低延迟的图场景。由于Memgraph
2023-05-24 -
股份制银行板块5月23日跌1.75%,中信银行领跌,主力资金净流出8.17亿元-每日热点
5月23日股份制银行板块较上一交易日下跌1 75%,中信银行领跌。当日上证指数报收于3246 24,下跌1 52%。深证
2023-05-24 -
庭有枇杷树 吾妻死之年所手植也 今日已亭亭如盖矣 ldquo庭有枇杷树吾妻死之年所手植也今已亭亭如盖矣rdquo是什么诗_360 环球即时看
今天来聊聊关于庭有枇杷树,吾妻死之年所手植也,今日已亭亭如盖矣,ldquo庭有枇杷树吾妻死之年所手植也今
2023-05-24 -
(高质量发展调研行)浙江清华长三院:打通校地成果转化“最后一公里”_环球快看点
中新网嘉兴5月23日电(胡丰盛)位于浙江嘉兴的浙江清华长三角研究院(以下简称:长三院),是清华大学和浙江
2023-05-24 -
今日观点!阅文集团(00772.HK)授出2187份受限制股份单位
格隆汇5月23日丨阅文集团(00772 HK)公告,董事会宣布,于2023年5月23日,公司根据2020年受限制股份单位计划
2023-05-24 -
天天热讯:国家电影局:5 月至 10 月阶段性免征国家电影事业发展专项资金
文 羊城晚报全媒体记者李丽5月23日,国家电影局网站发布《关于阶段性免征国家电影事业发展专项资金政策的公
2023-05-24 -
5 月 25 日晚,体院路、曲塘路沿线将停水 11 个小时
为配合市政管网配套设施建设,长沙供水公司将于2023年5月25日22:00至5月26日9:00进行体院路加压泵站供水管
2023-05-24 -
天天快消息!2023呼伦贝尔市科技活动周暨全市第二十八届科普活动宣传周启动仪式在阿荣旗举行
日前,2023呼伦贝尔市科技活动周暨全市第二十八届科普活动宣传周启动仪式在阿荣旗王杰广场举行。市政府副市
2023-05-24 -
中小银行应在“三低一高”中进行“三个转向”,跨越数字化转型深水区 全球即时看
经过20多年的发展,中小银行数量占整个银行业的85%以上,资产规模超过三分之一的比例,在银行体系中举足轻
2023-05-24 -
助力打通数字新基建“大动脉”!“海上扬帆 数创宝山”数字新基建融合应用推进会今天召开
为充分发挥数字新基建对城市数字化转型的赋能作用,5月23日,上海市通信管理局、上海市宝山区人民政府联合
2023-05-24
精彩推荐
阅读排行
相关词
- 沃尔沃XC90
- 2023年5月23日广东省一乙醇胺价格最新行情预测
- 要闻速递:一审被判赔偿5000万,《三国志战略版》将上诉
- 2023年5月23日浙江省无缝管价格最新行情预测 实时
- 2023年5月23日山东省无缝管价格最新行情预测 今日快看
- 观察:2023年5月23日湖南省乙腈价格最新行情预测
- 吴滩镇:开展“全民禁毒宣传月”系列活动-环球观焦点
- 夏坝镇:扎实开展企业环保检查工作
- 几江街道大什字社区:组织学生代表参观辖区市级文物
- 【天天快播报】广州vs黑龙江冰城首发:凌杰、张达驰、郑圣雄先发,唐诗战旧主
- 区社保中心打出便民服务“组合拳”——服务有温度 办事有速度 环球速读
- 守护儿童安全 远离产品伤害 全球播资讯
- 美媒:美国贫困率远超其它发达国家 制度被操纵只为富人谋利
- 硬朗金属风 3199元映众RTX4060TI 8GB曜夜解析_观点
- TikTok起诉美国蒙大拿州禁令违法
- “桃”醉崃山生态园 采摘正当时
- 天天要闻:realme GT Neo5 SE新配色发布 2099元起
- 当前快讯:新华视点 | 世界聚焦东方,中国高质量发展进行时
- 什么是真正的中国美学?来《美的殿堂》看看! 每日热议
- 焦点消息!TikTok针对蒙大拿州禁令向美法院提起诉讼,外交部回应
- 世界观焦点:iQOO Neo8 Pro发布:起步16G内存 淘汰12G!
- G7,真的过时了! 全球快报
- 专访:美国推行贸易保护主义的结果将适得其反——访俄罗斯新社会研究所所长科尔塔绍夫
- 喜茶子品牌喜小瓶公司增资至3亿# 增幅200%_天天最新
- 社旗县下洼镇:“五星”创建强引领 全力保障“三夏”粮-焦点速读
- 当前观察:我国发布首个汽车知识产权交易平台
- ld陶瓷瓷砖官网 ld瓷砖官网 当前观察
- 【世界独家】抖音新手常踩5大坑,90%的创作者都栽过
- 苹果公布首份透明度报告
- 索尼ZV-1 Mark II或将搭载2010万堆栈式CMOS 标配等效18-50mm变焦镜头
- 工信部:积极协调推动京津冀三地聚焦产业协同发展 加快推动八方面重点任务 天天视点
- 蔚来皖能电力等成立聚变新能公司# 注册资本50亿|全球头条
- iQOO Pad正式发布 旗舰配置2299元起
- 环球速看:旗舰级影像!iQOO Neo8 Pro配备IMX866VCS大底主摄
- 浦发银行: 网传事件系一业务外包公司与所属员工之间存在劳动纠纷所致,目前该外包公司正与员工沟通解决|当前热点
- 世界快讯:凡人微光|守护绿海龟,他们在行动
- 95岁老人跟医生“吵架”,老人赢了,网友却哭了……
- 世界动态:落水女子惊到附近训练的龙舟队,这场救援很暖!
- 世界要闻:“18个针眼换你一命,值了!”
- iQOO Neo8 系列正式发布,首发天玑9200+,一文看懂主要配置
- 这些改变,为了你!各地创新模式破解失能老人照护难题|天天日报
- 姬凤梨种植要点讲解 世界简讯
- 环球报道:鸡脑软化症特点和治疗方法讲解
- 环球滚动:联农带农是什么意思?
- 番鸭中雏期和育肥期饲养方法
- 红花蕉栽培方法讲解
- 世界速递!烯效唑特点和使用方法讲解
- 全球热讯:知名网红探访常州大学城,发现“鬼秤”乱象
- 郑州市金基社区:运用“数智金水”赋能基层治理 播报
- 看点:三款配色惊艳全场!iQOO Neo8系列新机亮相
- 小米无线鼠标静音版E318上架:三模连接设计、99元 天天快讯
- 许留山线下门店大清退,港式甜品为何不行了?_环球动态
- 全球热点!拥抱未来 DF启停电池以品牌力量引领品质生活
- 性能稳了!iQOO Neo8 Pro全球首发天玑9200+ 当前关注
- 讯息:深圳创业补贴持续给力,深圳开公司开店均可申请!
- 宏碁掠夺者 2TB 固态硬盘仅 499 元,7200MB/s 顶级读速
- 卡斯高女鞋携手加盟商创造时尚流行趋势|热讯
- 当前播报:lol加速器哪个最有用_lol加速器哪个最好
- 世界动态:台经济外冷内热批发业连六黑 餐饮业爆发
- 构建新型配电网 储能如何发力?
- 四款 16+1TB 手机参数对比,618 卷王还得是这款
- 环球视讯!得邦照明为瑞金得邦提供1亿元担保
- 环球信息:成功登顶!
- 英特尔发布首款支持PCIe 5.0和CXL功能的Agilex 7 FPGA R-Tile
- 3099元!realme GT Neo5手机150W新版16GB+1TB今晚20点预售|每日焦点
- 东湖评论:练好内功站稳露营经济新“风口”_每日看点
- 【全球新视野】“毅”行搭台,农品唱戏——安徽这个乡村振兴成果展 “叫好又叫座”
- 【大学生评论大赛】东湖评论:在“复苏的班车”上继续推进消费结构升级 全球热门
- 【大学生评论大赛】东湖评论:“数商兴农”助推乡村振兴 世界观察
- 30条最新举措!安徽力促个体工商户持续健康发展_每日观点
- 《永州市生活垃圾分类管理条例》正式实施暨全市生活垃圾分类宣传周活动启动仪式举行
- 世界观焦点:永州市油茶产业高质量发展和林火阻隔系统建设两年行动推进会召开
- 0基础学习VR全景平台篇第28章:场景管理—遮罩功能
- 环球热点!曙光深化存力建设,支撑中国算力发展新阶段
- 徽商银行原董事长李宏鸣被逮捕|全球热文
- 永州市委宣传部进社区开展“二十大·二十队”理论微宣讲志愿服务活动|重点聚焦
- 追着花儿看新疆 | 沙漠玫瑰竞相绽放 “花海经济”带动产业发展-热讯
- 世界报道:总台海峡时评丨涉台提案再被拒,挑战一个中国原则必然失败!
- 今日看点:追着花儿看新疆 | “饲喂厨房”精准投喂 助力肉羊产业发展 村民持续增收
- 【万人说新疆】新疆小伙用原生态音乐为家乡代言|视焦点讯
- 快资讯丨追着花儿看新疆 | “产城融合”发展特色产业助力乡村振兴 描绘宜居新画卷
- 能源革命新篇章,喆塔科技助力光伏企业数字化转型 世界新消息
- 世界今亮点!炒糖色发苦怎么补救_炒糖色
- 皮秒洗纹眉最好的方法_纹眉怎么用土方法洗掉 今日快讯
- 云汉芯城IPO:半导体领域批发商,利润增长背后仅是账面富贵,研发占比不足1%
- 每日播报!美国债务上限僵局难解 两党相互“甩锅”
- 加速度单位换算 m/s2和km/h2_加速度单位换算_环球速读
- 华春莹连发5帖质问:如中国是“威胁”,对主权国家发动战争的G7是什么?
- 世界观|极端暴力在这里竟如此“随意” 世界聚焦
- 【世界报资讯】一家人一年买了药店3个月的进货量!上海警方通报数起涉医保诈骗犯罪案例
- 视评线丨造谣一张嘴,翻脸如翻书!美国就是这样搞外交的?|世界观速讯
- 华尔街严阵以待 为美国债务违约风险做准备|全球信息
- 世界今日讯!耀州区孙思邈中医院康养中心揭牌仪式隆重举行
- 共探变革发现创新,2023 INDIEGOGO年度峰会圆满召开
- 小米米家智能跑步机上架:采用降噪无刷电机、首发1899元 每日消息
- 天天短讯!成都航院航空装备制造产业学院赴信邦智能考察交流
- 三星Galaxy Z Flip5外屏贴膜曝光 确认“文件夹”造型
- 磷酸铁锂涨3500元/吨 电解液涨700元/吨|当前关注
- 今天你垃圾分类了吗?住建部:2025年基本实现垃圾分类全覆盖
- 微头条丨东软熙康等3家企业递表港交所
- 在妙山村,瞥见未来乡村美妙模样|高质量发展调研行·浙江站 世界即时
- 两级反转?百度全球范围流量是Bing的四倍
- 【大学生评论大赛】东湖评论:科技与网络或将解决残疾人士“就业难” 天天微资讯
- 环球微头条丨全国麦收进度达4.8% 1650万台农机备战“三夏”
- 如何发展数字经济?总台记者带你探访浙江一线企业 世界热讯
- 辰安科技:公司正在积极开拓江苏省业务,并为各级用户提供核心产品及服务
- 西部陆海新通道!平陆运河今起全线动工建设
- 福利来袭!内蒙古平安好车主车险服务赠送钜惠车险报价礼包
- 进军漂浮式海风:“中海油”们的私心与野心
- 【全球热闻】商务部新闻发言人就日本正式出台半导体制造设备出口管制措施事答记者问
- 自拍逆天了!小米Civi 3前置双主摄:32MP美人镜+32MP超广角
- 世界海拔最高的自动气象站技术升级成功-天天时讯
- ChatGPT炒股回报率超500%|当前信息
- “云擎未来 智信天下”移动云城市发布会新疆站,共话数智新未来
- 【世界聚看点】兰州水上巴士周末有吗?
- 快看点丨威派格前4月订单高速增长 智慧水务业务贡献新增长极
- dx12和dx11是什么意思 DX12是什么DX12和DX11有什么区别
- 多地发布学位预警,今年或成“最难入学年”
- 安乐工程(01977.HK):委员会就第二轮诉讼正式向审裁处提出申请
- 国际米兰主席是哪个国家的人?国际米兰历年球员都有谁?
- 意甲球队实力定位分几个档次?2020-2021谁夺得了意甲冠军?
- 美国足球冠军联赛哪里看?意甲联赛举办地在哪?
- 国家能源局调研遵义智源配售电有限公司增量配电网建设-世界热讯
- 曼城转会收入是什么?哪里能看曼城比赛?
- 曼城买下贝林厄姆了吗?曼城后腰代表人物是谁?
- 海尔智家: 这个问题涉及公司内部商业信息,不方便透露,非常感谢!
- 约谈到底是个啥?网信部门约谈机制初窥
- 杭州:全面推进城市更新|焦点热议
- 全球信息:看,我们的新生活!
- 认识、适应、引领我国人口发展新常态_天天微资讯
- 【全球报资讯】存退市风险!泰禾集团收盘价连续11个交易日低于1元
- 【世界独家】创新与产业“互链” 激活高质量发展“增量”
- 热评丨风吹麦浪时 从“增”“减”中看夏收
- 【全球新视野】@老年人 到2025年,国家提供这些养老服务
- 焦点速递!广西壮族自治区防城港市2023-05-23 07:57发布雷电黄色预警
- 推特疯传AI生成“五角大楼发生大爆炸”假图 导致股市短暂下跌
- 《永州公安赋》:“忠诚使命在肩,强国复兴有我”快闪活动 天天关注
- Meta收到创纪录“天价”罚单,扎克伯格财富刚刚激增440亿美元-世界播资讯
- 强化供应链韧性,供应商管理这3个关键点不容忽视
- 当前视点!小米电视S新机发布:55英寸2399元 85英寸5999元
- 纽威数控(688697.SH):针对新能源汽车行业开发多款适用于新能源汽车行业机型_全球热文
- 过去三年门店净增4122家 绝味食品逆势扩张稳步提升市占率_热文
- 深圳证监局召开北交所高质量发展证券公司座谈会-当前热讯
- 初夏赛里木湖美如画 世界实时
- 东湖评论:托起“银发群体”稳稳的幸福
- 在曼城踢过的中后卫的球员都有谁?曼城成立时间是哪一年?
- 今日讯!聚焦高质量发展|安徽马鞍山:“刚柔并济”打造长三角“白菜心”
- 曼城最近受伤的球员都有谁?曼城与切尔西球队实力对比谁更有实力?
- 英特科技上市首日破发,盘中一度跌超9% 天天热消息
- 曼城俱乐部老板叫什么名字?孙继海在曼城踢了几年?
- 618活动开启!华为Mate 50系列至高优惠800元