【问题标题】:Clarification in regards to using safe_time in YugabyteDB关于在 YugabyteDB 中使用 safe_time 的说明
【发布时间】:2021-09-23 20:37:18
【问题描述】:

文档 https://docs.yugabyte.com/latest/architecture/transactions/transactional-io-path/ 说分布式 txn 可以从一个相关的 tablet 中选择 safe_time,并且 safe_time 考虑第一个未提交的 raft 日志的混合时间戳。这是否意味着 yugabytedb 保证所有 txn 都可以在启动前读取提交的 txn 写入的数据?

[免责声明]:这个问题最初是在 YugabyteDB 社区 Slack 频道上提出的。

【问题讨论】:

    标签: distributed-transactions yugabyte-db


    【解决方案1】:

    为快照隔离事务选择读取时间戳有两个组成部分:(1)它需要足够新,以捕获事务开始之前已提交的所有内容; (2) 它需要尽可能低以避免不必要的等待。从事务读取或写入的第一个平板电脑中选择安全时间只是对上述目标的启发式方法。安全时间将该平板电脑的 Raft 日志中的第一个未提交(在 Raft 意义上)记录的时间戳视为输入之一,而实际进入安全时间计算的是未提交时间戳减去“epsilon”(最小可能的混合时间步长)这样记录提交就不会改变该时间戳的数据视图(并且安全时间由平板电脑领导者的混合时间领导者租约限制,因此我们可以安全地防止领导者更改和新领导者试图读取领导者租约到期后的新时间戳)。因此,以上所有内容都涉及“快照安全”(即,如果我们在某个时间读取 read_ht 的属性,我们保证不会对时间戳

    【讨论】:

      猜你喜欢
      • 2013-09-14
      • 2013-04-20
      • 1970-01-01
      • 1970-01-01
      • 2019-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多