文章目录

  • 背景
    • 两种模型
      • order-execute
      • simulate-order-validata-commit
  • 优化
  • 实现
    • transaction recordering
    • early transaction abort

背景

分布式数据库与区块链的最大不同之处:
传统数据库要求可信节点,区块链技术支持拜占庭节点。

两种模型

order-execute

先通过共识算法排序,然后各节点本地再执行。代表有比特币、以太坊等。

该模型存在两点不足:

  1. 无法并行执行

  2. 每个节点都要执行

导致无法扩展、性能低。

而分布式数据库很多年前就解决了这些问题。

simulate-order-validata-commit

并行模拟、后验证。代表有Hyperledger Fabric.

支持了并发执行,但是Hyperledger Fabric实现的不够好:大量的transaction被abort,导致tps低。

优化

作者采用了两种并发控制的优化手段对Hyperledger Fabric进行优化:

  • transaction recordering
  • early transaction abort(需要细粒度并发的支持)

为什么采用了这两种并发控制优化措施?

  1. 区块链都是以block的形式commit,有些优化是针对单独的transactions
  2. 区块链需要在每个节点复制数据,而传统数据库可能是单机的、或者每个节点负责一部分数据(sharding)
  3. 区块链的transaction在多个节点模拟,节点的状态可能不一致,而在数据库中,transaction只需要执行一次
  4. 区块链的性能瓶颈在加密签名、网络通信、信任验证。传统数据库的瓶颈在低级的组件,比如锁机制的使用。

已有的相关工作可以分为两类:一是提高吞吐量的,二是将aborted transactions变为successful transactions的

作者经过分析在区块链中只能采用第二种。

实现

transaction recordering

#1 强连通分量
#2 simple 环
#3 统计各点的环数
#4 去点,同时更新环数
#5 拓扑排序,逆序

early transaction abort

在模拟阶段或者排序阶段提前终止。

模拟阶段

并行进行模拟和验证,模拟的时候读数据的时候要检查version,如果version大于last-version,说明在验证阶段数据被修改了,终止模拟,提前结束交易。

排序阶段

如果同一个 block中的不同交易读取同一个数据的不同版本,那么说明两者模拟之间其他事务修改了数据,后者交易变为无效,不再对其进行排序,提前结束交易。

Blurring the Lines between Blockchains and Database Systems: the Case of Hyperledger Fabric相关推荐

  1. Blurring the Lines between Blockchains andDatabase Systems: the Case of Hyperledger Fabric(翻译)

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

  2. Managing Non-Volatile Memory in Database Systems

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

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

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

  4. 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 ...

  5. 《Hyperledger Fabric: A Distributed Operating System for Permissioned Blockchains》笔记

          Hyperledger Fabric: A Distributed Operating System for                                    Perm ...

  6. CMU Database Systems - Concurrency Control Theory

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

  7. Hybrid Blockchain Database Systems: Design and Performance(VLDB‘2022)

    目录 Abstract 2 background and related work 2.1 混合区块链数据库系统 2.2 账本数据库Ledger DB 2.3 总结 四.Performence ana ...

  8. CMU Database Systems - Sorting,Aggregation,Join

    Sorting 排序如果可在内存里面排,用经典的排序算法就ok,比如快排 问题在于,数据表中的的数据是很多的,没法一下都放到内存里面进行排序 所以就需要用到,外排,多路并归排序 看下最简单的,2路并归 ...

  9. 全球名校AI课程库(12)| CMU卡内基梅隆 · 数据库系统进阶课程『Advanced Database Systems』

最新文章

  1. 黑马程序员——java语言基础——组合,关联,聚合的区别
  2. 算法导论第三版第十一章11.1-4
  3. 应用容灾中,MySQL数据表是否需要跨云同步?
  4. Java 8——接口中个的默认方法和静态方法
  5. (Object detection)目标检测从入门到精通——第二部分
  6. ​不容错过的 13 个 JavaScript 实用技巧!
  7. ios URLSchemes
  8. 2019全球最具颠覆性的17大公司
  9. Netapp存储日常检查及信息收集
  10. 计算机组装硬件配置清单,组装电脑配置清单
  11. Google企业邮箱申请
  12. “荣光医院”急救中心 73 问答
  13. iOS 视频播放(AVPlayer)
  14. elementUI分页删除最后一页数据时跳转回上一页并且el-table序号递增
  15. echarts地图下钻与回钻
  16. CAD制图怎么绘制对称的图形?
  17. 大数据人工智能领域从菜鸟到高手晋级指南
  18. windows11 安装Kibana
  19. biba和blp安全模型都是基于格的吗
  20. 基于FPGA的复杂的数字时钟设计(代码)

热门文章

  1. 环信java_java环信服务端注册IM代码
  2. ISM频段ZigBee传输距离的估算
  3. SPSS学习笔记 -- 独立样本t检验
  4. mtk wifi display投射屏幕
  5. Error while extracting response for type
  6. 学习笔记—什么是微数据?itemscope/itemtype/itemprop(搜索引擎seo优化)
  7. 优秀的论文答辩PPT模板值得被应用
  8. xtraReport的简易使用方法
  9. dubbo comsumer指定服务
  10. SWITCH 和ROUTE的故事(来自Csico论坛)