Percolator 分布式事务原理
Percolator 分布式事务原理
简介
Percolator 提供了跨行、跨表的、基于快照隔离的 ACID 事务。
结构
Percolator 为了实现分布式事务,抽象了三个列。
列
Data
作用:
具体存储数据集
映射关系: {key, start_ts} => {value}
key: 真实的 key
start_ts: 事务开始时间戳
value: 真实的数据值
Lock
作用:
事务执行中产生的锁
事务开启时获取锁
事务提交时释放锁
映射关系: {key, start_ts} => {primary_key, lock_type,..etc}
key: 数据的 key
start_ts: 事务开始时间戳
primary_key: 该事务的 primary_key 的引用. primary_key 是在事务执行时,从待修改的 keys 中选择一个作为 primary_key, 其余的则作为 secondary key.
Write
作用:
已提交事务信息,存储提交时间戳
write 列记录着 key 的提交记录,当客户端读取一个 key 时,会从 write 列中读取 key 所对应数据在 data 列中的存储位置,然后从 data 列中读取真正的数据。
映射关系:
{key, commit_ts} => {start_ts}
key: 数据的 key
commit_ts: 事
浙公网安备 33010602011771号