Checking whether database transactions adhere to isolation levels is a crucial yet challenging problem. We present Boomslang, the first general-purpose checking framework capable of verifying configurations that were previously uncheckable. Boomslang advances beyond prior work in three key aspects: (1) it supports arbitrary operation types provided by modern transactional key-value stores, (2) it requires no knowledge of database internals, and (3) it offers a modular, extensible pipeline amenable to customization and optimizations. Boomslang adopts a front-/back-end separation. As the front-end, it parses a database trace into an Abstract Semantic Graph, which is then lowered -- via semantic analysis -- into a low-level intermediate representation (IR). The back-end converts this IR to a set of constraints for SMT solving. This design is enabled by a key abstraction in the IR, called superpositions, which capture the uncertainty and complexity caused by arbitrary operations and missing information. Our experiments show that with just 271--386 lines of code, the core logic of three prior checkers can be reimplemented as Boomslang modules, achieving comparable or superior performance. Using Boomslang, we also identify a new bug in TiDB, audit the metadata layer of the JuiceFS file system, check vendor-specific behavior in MariaDB, support five previously unchecked isolation levels, and confirm a theoretical result on the correctness of strict serializability.


翻译:检查数据库事务是否遵守隔离级别是一项至关重要但极具挑战性的问题。我们提出Boomslang——首个通用的检查框架,能够验证以往无法检查的配置。Boomslang在三个方面超越了先前工作:(1)支持现代事务性键值存储提供的任意操作类型,(2)无需了解数据库内部实现,(3)提供模块化、可扩展的流水线,便于定制和优化。Boomslang采用前端/后端分离架构。在前端,它将数据库追踪解析为抽象语义图,再通过语义分析降级到低级中间表示(IR)。后端将此IR转化为一组供SMT求解器求解的约束。该设计依赖于IR中的关键抽象——叠加(superpositions),它捕捉了由任意操作及信息缺失所导致的不确定性和复杂性。实验表明,仅用271至386行代码,即可将三个先验检查器的核心逻辑重建为Boomslang模块,性能相当或更优。借助Boomslang,我们还在TiDB中发现了一个新漏洞,审计了JuiceFS文件系统的元数据层,检查了MariaDB中的供应商特定行为,支持了五个先前未检查过的隔离级别,并确认了严格可串行化正确性的理论结果。

0
下载
关闭预览

相关内容

数据库( Database )或数据库管理系统( Database management systems )是按照数据结构来组织、存储和管理数据的仓库。目前数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。
《利用 ChatGPT 实现高效事实核查》
专知会员服务
48+阅读 · 2023年10月25日
【CVPR2022】ContrastMask:对比学习来分割各种
专知会员服务
20+阅读 · 2022年3月21日
【SIGIR2020】学习词项区分性,Learning Term Discrimination
专知会员服务
16+阅读 · 2020年4月28日
无监督分词和句法分析!原来BERT还可以这样用
PaperWeekly
12+阅读 · 2020年6月17日
深入理解BERT Transformer ,不仅仅是注意力机制
大数据文摘
22+阅读 · 2019年3月19日
读扩散?写扩散?推拉架构一文搞定!
架构师之路
17+阅读 · 2019年2月1日
disentangled-representation-papers
CreateAMind
26+阅读 · 2018年9月12日
NetworkMiner - 网络取证分析工具
黑白之道
16+阅读 · 2018年6月29日
TextInfoExp:自然语言处理相关实验(基于sougou数据集)
全球人工智能
12+阅读 · 2017年11月12日
文本分析 | 常用距离/相似度 一览
数说工作室
26+阅读 · 2017年10月12日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
2+阅读 · 2014年12月31日
Arxiv
0+阅读 · 3月24日
VIP会员
最新内容
印度精确打击与指挥架构的断层
专知会员服务
0+阅读 · 今天14:41
美空军AI完成F-16战斗机自主空战历史性试飞
专知会员服务
2+阅读 · 今天14:13
深入Project Maven:为何人工智能在战场上依然失灵
锻造未来士兵:外骨骼、基因工程与赛博格
专知会员服务
7+阅读 · 7月19日
《无人机蜂群通信技术研究》50页
专知会员服务
8+阅读 · 7月19日
相关VIP内容
《利用 ChatGPT 实现高效事实核查》
专知会员服务
48+阅读 · 2023年10月25日
【CVPR2022】ContrastMask:对比学习来分割各种
专知会员服务
20+阅读 · 2022年3月21日
【SIGIR2020】学习词项区分性,Learning Term Discrimination
专知会员服务
16+阅读 · 2020年4月28日
相关基金
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
2+阅读 · 2014年12月31日
Top
微信扫码咨询专知VIP会员