酸保证砖是什么?

砖使用三角洲湖默认为所有读写和建立在酸担保所提供的bob下载地址开源三角洲湖协议。酸代表原子性、一致性、隔离性和持久性。

  • 原子性意味着所有事务要么完全成功或失败。

  • 一致性保证与如何观察到给定的数据同步操作。

  • 隔离是指如何同时操作潜在冲突。

  • 耐用性意味着承诺改变是永久性的。

虽然许多数据处理和仓储技术描述ACID事务,具体担保随系统,交易数据砖你共事可能不同于其他系统。

请注意

本页面描述担保表由三角洲湖。其他数据格式和集成系统可能不提供交易担保进行读写操作。

所有砖写入云对象存储使用事务提交,开始创建元数据文件_started_ < id >_committed_ < id >与数据文件。你不需要与这些文件交互,如砖经常清理过期提交文件的元数据。

事务作用域在砖怎么样?

砖在表级别管理事务。一次交易总是适用于一个表。用于管理并发事务,砖使用开放式并发控制。这意味着没有阅读或写作对一个表的锁时,和死锁是不可能。

默认情况下,砖提供快照读取和隔离write-serializable隔离上写道。比快照隔离Write-serializable隔离提供了更强的保证,但它适用于强隔离只是写道。

读操作引用多个表返回当前版本的每个表的访问,但不中断可能修改引用表的并发事务。

砖没有开始/结束结构,允许多个操作组合在一起作为一个单独的事务。应用程序修改多个表提交事务串行的方式每个表。你可以把插入、更新和删除表到一个写事务使用合并

砖实现原子性如何?

事务日志控制原子性。在事务、数据文件写入到文件目录表支持。当事务完成时,一个新的条目致力于事务日志,包括所有文件的路径在事务期间写的。每个提交增量表版本,使新数据文件读取操作可见。表包含所有数据文件的当前状态显著有效的事务日志。

数据文件不跟踪,除非一个新版本的事务日志记录。如果事务失败后写入数据文件到一个表,这些表数据文件不会腐败的状态,但这些文件不会成为表的一部分。的真空操作表中删除所有无路径的数据文件目录,包括剩余未提交的文件从失败的事务。

砖实现的耐用性如何?

砖使用云对象存储来存储所有的数据文件和事务日志。云对象存储高可用性和耐久性。因为交易完全成功或失败,事务日志和数据文件生活在云对象存储,表在砖继承云的耐久性保障他们存储的对象存储。

砖是如何实现一致性?

三角洲湖使用开放式并发控制之间提供交易担保写道。在这种机制下,写操作分三个阶段:

  1. :读取(如果需要的话)的最新版本表来确定哪些文件需要修改(重写)。

    • 写道,扩展不读取当前表状态前写作。从事务日志模式验证利用元数据。

  2. :将数据文件写入目录用于定义表。

  3. 验证并提交:

    • 检查是否该冲突与其他任何变化可能是同时提交自读的快照。

    • 如果没有冲突,所有更改提交新版本快照,和写操作成功。

    • 如果有冲突,写操作失败的并发修改例外。这个失败阻止腐败的数据。

乐观conccurency假定大多数并发事务数据不能相互冲突,但冲突可能发生。看到隔离级别和写冲突砖

砖是如何实现隔离?

砖使用写可序列化的默认隔离所有表写和更新。快照隔离是用于所有表读取。

写可串行性和乐观并发控制共同提供高吞吐量写道。当前可用的表总是有效的状态,和可以开始写一个表。并发读取只受限于metastore和云资源的吞吐量。

看到隔离级别和写冲突砖

三角洲湖支持多表事务吗?

三角洲湖不支持多表事务。在三角洲湖支持事务的水平。

这是什么意思,三角洲湖支持多集群写吗?

三角洲湖防止数据损坏当多个集群编写并发相同的表。一些写操作可以同时执行过程中冲突,但不要腐败的桌子上。看到隔离级别和写冲突砖

请注意

三角洲湖在S3有几个局限性没有找到其他存储系统。看到三角洲湖限制S3

我可以修改从不同的工作区三角洲表吗?

是的,你可以同时修改同一个三角洲表不同的工作区。此外,如果一个进程从工作区写,读者在其他工作区将会看到一个一致的观点。