关注 spark技术分享,
撸spark源码 玩spark最佳实践

Delta 乐观锁并发事务控制 Delta Concurrency Control

Delta Lake 对读写请求提供了 ACID 的事务保证。

  • 如果有多个并发写,即使来自不同的集群,会保证一致性,这些写入会串行写入,类似mysql中的串行化的隔离级别
  • 读操作一旦启动,会保证看到的是 table 的某个 snapshot,保证了读的一致性,即使在读取过程中数据有变动,读操作看到也是读操作开始一瞬间的 table 的一个 snapshot, 读操作看到的数据集不会变动。

Optimistic concurrency control

Delta 使用乐观锁 optimistic concurrency control , 来保证事务,写操作分为3个阶段

1 Read: 读取最新版本的数据,作为一个数据集的一个 snapshot, 然后定位需要改变的文件

2  Write : 在上一步read 操作checkout 出来的版本上写入新数据

3 Validate and commit  : 在提交之前,检测是不是有其他以及提交的操作变动的文件,和本事务变动的文件有冲突,如果没有冲突,本次staged 的changes 就提交,产生一个新的数据集版本,如果有冲突,就会抛出一个并发修改异常,放弃修改。R

赞(1) 打赏
未经允许不得转载:spark技术分享 » Delta 乐观锁并发事务控制 Delta Concurrency Control
分享到: 更多 (0)

评论 1

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    Delta 乐观锁并发事务控制 Delta Concurrency Control-spark技术分享 http://togelsingapuraku.com

    click over here now 5年前 (2019-12-23) 这家伙可能用了美佬的代理 谷歌浏览器 Windows 7 回复

关注公众号:spark技术分享

联系我们联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏