在论文中作者提出了一种全新的解决分布式事务的方案Galvin。

它是一个分布式事务解决框架,不依赖存储层,只要满足CRUD的存储层均可。

作者的核心思路是对即将处理的事务进行预处理,事务执行之前在执行层面达成事务执行的共识,作者通过将事务记录写入日志,这样事务在日志中的顺序就是事务的执行顺序,这是一个全局的事务日志,从而保证事务执行在全局层面达成共识。

Calvin分成三层

sequencing layer

这一层负责劫持和收集所有的事务请求,并将它们按照10ms的时间窗口batch提交到全局事务日志(排序),论文中说这一层不是单点,是分布式的,但是毕竟写日志一般很难多点写入,因此仍然存在单点瓶颈。

scheduling layer

调度层负责按照顺序执行全局事务日志,如果严格的串行执行,性能肯定不足,因此这一层会尽力将那些并发执行无环的事务并发执行以提升性能。

storage layer

存储层,只要满足CRUD接口即可。

由于事务共识在预处理的时候就已经达成了,后续执行事务的时候无需再次共识,只需要执行即可,因为故障恢复也比较简单,新的节点从事务日志的指定位置继续消费即可。

作者这论文中分析了传统的2PC提交的成本,作者分析认为在多个节点之间达成共识需要包含其中的网络通信开销,必要的日志存储开销,还有锁的开销,因为这些开销进而导致事务持有锁的时间变长了,出现事务冲突的概率就会增加。

总结

在论文中作者提供了一种比较新颖的事务处理方案,通过事务预处理提前达成共识,减少事务执行过程中临时达成共识带来的开销。不过作者的分布式事务解决框架存在一些弊端

  • 全局事务排序存在单点写入瓶颈
  • 这个框架不能解决交互式事务,只适用于确定的事务,即事务执行时提交的数据是一次性确定的。

cockroachDB在local range执行事务时参考了这种解决事务冲突的思路,即利用时间戳确定事务执行的先后顺序,这种共识是确定的,无需二次确认。

作者:贺大伟
链接:https://www.jianshu.com/p/67800b98a4b1
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Calvin: Fast Distributed Transactions for Partitioned Database Systems研读相关推荐

  1. Distributed transactions with multiple databases, Spring Boot, Spring Data JPA and Atomikos

    2019独角兽企业重金招聘Python工程师标准>>> A couple of weeks ago I was evaluating the possibility to use S ...

  2. 分布式事务2PC论文翻译(Concurrency Control and Recovery in Database Systems )

    作者:Philip A. Bernstein, Vassos Hadzilacos, Nathan Goodman. 1987 原文:Concurrency Control and Recovery ...

  3. GRIT: Consistent Distributed Transactions across Polyglot Microservices with Multiple Databases

    GRIT 基于多个数据库的聚合微服务的一致性分布式事务 GRIT: Consistent Distributed Transactions across Polyglot Microservices ...

  4. 分布式事务(Distributed Transactions)概述

    分布式事务是分布式领域必须要面对的问题,同时也是衡量一个分布式系统成熟度的重要指标.那么什么是分布式事务,哪些场景会涉及到分布式事务,如何实现分布式事务?本文将重点讨论以上问题. 分布式事务定义 分布 ...

  5. A First Course in Database Systems(数据库基础教程 第三版)课后答案——2.3.1\2.3.2\2.4.1

    A First Course in Database Systems(数据库基础教程 第三版)课后答案--2.3.1\2.3.2\2.4.1 文章目录 2.3.1 2.3.2 2.4.1 数据文件 2 ...

  6. IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY(TCSVT) 投稿经验

    期刊名:IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY 第一次投稿一审一个月被拒,五个审稿人,三个正向意见两个拒稿. 根据 ...

  7. IEEE Transactions on Intelligent Transportation Systems投稿经验分享

    IEEE Transactions on Intelligent Transportation Systems期刊,2021~2022年影响因子9.551,年发文量大约在1500篇左右(最近两年文章数 ...

  8. Managing Non-Volatile Memory in Database Systems

    Managing Non-Volatile Memory in Database Systems 一.背景及动机 1.几种场景的NVM存储方式 NVM-DIRECT 将nvm放到内存总线上,直接访问. ...

  9. CMU Database Systems - Concurrency Control Theory

    并发控制是数据库理论里面最难的课题之一 并发控制首先了解一下事务,transaction 定义如下, 其实transaction关键是,要满足ACID属性, 左边的正式的定义,由于的intuitive ...

  10. Blurring the Lines between Blockchains and Database Systems: the Case of Hyperledger Fabric

    文章目录 背景 两种模型 order-execute simulate-order-validata-commit 优化 实现 transaction recordering early transa ...

最新文章

  1. win10 vs2015 编译caffe2
  2. bootstrap中点击左边展开
  3. mysql inception web_基于Inception搭建MySQL SQL审核平台Yearing
  4. Android开发笔记(二)
  5. CAD答辩周 -- 与自己相关的几场
  6. jquery替换节点
  7. python转移矩阵_使用Python / Numpy中的单词构建转换矩阵
  8. 扫描枪取消回车二维码_如何使条码扫描枪录入完不自动回车呢-百度经验
  9. 【深度学习】计算机视觉(七)——使用GPU进行目标检测详解(上)
  10. 又猎一“狐”:一名外逃越南嫌疑人落网-网易
  11. Linq之IQueryable与IEnumerable
  12. 用AI变革新药研发,终极目标是延缓衰老,这家创业公司迎来“里程碑”
  13. windows下载Android系统源码
  14. Python爬虫-专业数据库书名爬取
  15. document.getElementById(id) 与 $(#id) 的区别
  16. java车牌识别系统mysql
  17. [转]人生多磨难 句句皆精华
  18. vue路由的两种模式:hash与history的区别
  19. 网络规模推荐系统的图卷积神经网络
  20. 手机如何剪辑音频,极简操作制作专属BGM和铃声

热门文章

  1. 利用grep和awk来分析nginx日志
  2. Linux 脚本删除大于指定大小的文件
  3. [翻译] REST API必须是超文本驱动的
  4. RAID (HP)双循环
  5. hdu1233 还是畅通工程 基础最小生成树
  6. 搜索整理MyEclipse 快捷键
  7. DHTML3(表格动态创建,删除行/列,表格行排序,行颜色交替高亮显示)
  8. 计算机视觉(CV)前沿国际国内期刊与会议
  9. anaconda配置python_interpreter报错_MAC系统下SublimeText3 Python环境配置参考
  10. 拓端tecdat:R语言主成分回归(PCR)、 多元线性回归特征降维分析光谱数据和汽车油耗、性能数据