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: 事
posted on 2024-05-15 21:43  flyingzc  阅读(16)  评论(0)    收藏  举报  来源