酸保证砖是什么?
砖使用三角洲湖默认为所有读写和建立在酸担保所提供的bob下载地址开源三角洲湖协议。酸代表原子性、一致性、隔离性和持久性。
虽然许多数据处理和仓储技术描述ACID事务,具体担保随系统,交易数据砖你共事可能不同于其他系统。
请注意
本页面描述担保表由三角洲湖。其他数据格式和集成系统可能不提供交易担保进行读写操作。
所有砖写入云对象存储使用事务提交,开始创建元数据文件_started_ < id >
和_committed_ < id >
与数据文件。你不需要与这些文件交互,如砖经常清理过期提交文件的元数据。
事务作用域在砖怎么样?
砖在表级别管理事务。一次交易总是适用于一个表。用于管理并发事务,砖使用开放式并发控制。这意味着没有阅读或写作对一个表的锁时,和死锁是不可能。
默认情况下,砖提供快照读取和隔离write-serializable隔离上写道。比快照隔离Write-serializable隔离提供了更强的保证,但它适用于强隔离只是写道。
读操作引用多个表返回当前版本的每个表的访问,但不中断可能修改引用表的并发事务。
砖没有开始/结束
结构,允许多个操作组合在一起作为一个单独的事务。应用程序修改多个表提交事务串行的方式每个表。你可以把插入、更新和删除表到一个写事务使用合并成
。
砖实现原子性如何?
事务日志控制原子性。在事务、数据文件写入到文件目录表支持。当事务完成时,一个新的条目致力于事务日志,包括所有文件的路径在事务期间写的。每个提交增量表版本,使新数据文件读取操作可见。表包含所有数据文件的当前状态显著有效的事务日志。
数据文件不跟踪,除非一个新版本的事务日志记录。如果事务失败后写入数据文件到一个表,这些表数据文件不会腐败的状态,但这些文件不会成为表的一部分。的真空
操作表中删除所有无路径的数据文件目录,包括剩余未提交的文件从失败的事务。
砖实现的耐用性如何?
砖使用云对象存储来存储所有的数据文件和事务日志。云对象存储高可用性和耐久性。因为交易完全成功或失败,事务日志和数据文件生活在云对象存储,表在砖继承云的耐久性保障他们存储的对象存储。
砖是如何实现一致性?
三角洲湖使用开放式并发控制之间提供交易担保写道。在这种机制下,写操作分三个阶段:
读:读取(如果需要的话)的最新版本表来确定哪些文件需要修改(重写)。
写道,扩展不读取当前表状态前写作。从事务日志模式验证利用元数据。
写:将数据文件写入目录用于定义表。
验证并提交:
检查是否该冲突与其他任何变化可能是同时提交自读的快照。
如果没有冲突,所有更改提交新版本快照,和写操作成功。
如果有冲突,写操作失败的并发修改例外。这个失败阻止腐败的数据。
乐观conccurency假定大多数并发事务数据不能相互冲突,但冲突可能发生。看到隔离级别和写冲突砖。
砖是如何实现隔离?
砖使用写可序列化的默认隔离所有表写和更新。快照隔离是用于所有表读取。
写可串行性和乐观并发控制共同提供高吞吐量写道。当前可用的表总是有效的状态,和可以开始写一个表。并发读取只受限于metastore和云资源的吞吐量。
看到隔离级别和写冲突砖。