云数据库系统:挑战、解决方案与技术剖析
云数据库的交易处理架构
在云环境中,交易服务的处理架构具有一定的灵活性。交易可以在云端进行,这对于云数据存储提供商将部分数据的交易服务本地化到 TC(Transaction Coordinator)组件十分有帮助。一个 TC 可以为多个 DC(Data Center)提供服务,由于 TC 不依赖数据项的存储位置,因此自然支持跨多个 DC 的交易。同时,虽然可以存在多个 TC,但一个交易仅由一个特定的 TC 提供服务。
Calvin 系统是为与非事务性存储系统协同运行而设计的,其目标是将非事务性存储系统转变为一个无共享的、近乎线性可扩展的数据库系统,该系统能提供高可用性和完整的 ACID 事务。这些事务可能跨越无共享集群中的多个分区。Calvin 通过在存储系统之上提供一个处理分布式事务调度、复制和网络通信的层来实现这一目标。Calvin 的关键技术特性在于它依赖于确定性锁定机制,从而消除了分布式提交协议。具体来说,Calvin 系统分为三个独立的处理层:
1. 排序层 :拦截事务输入,并将其放入全局事务输入序列中,该序列代表所有副本在执行期间将确保串行等价的事务顺序。
2. 调度层 :使用确定性锁定方案编排事务执行,以保证与排序层指定的串行顺序等价,同时允许事务执行线程池并发执行事务。
3. 存储层 :处理所有物理数据布局。Calvin 事务使用简单的 CRUD 接口访问数据,因此任何支持类似接口的存储引擎都可以直接接入 Calvin。
在 Calvin 部署中,每个节点通常运行每个层的一个分区。它
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



