开发者社区> 问答> 正文

PolarDB-SCC的核心设计主要有什么?

PolarDB-SCC的核心设计主要有什么?

展开
收起
萝卜丝丸子 2024-06-03 20:10:29 21 0
1 条回答
写回答
取消 提交回答
  • 主要是以下三个:
    (1)线性Lamport时间戳。由于最新修改的时间戳保存在RW节点上,因此RO节点必须在每次处理请求时从RW节点获取该时间戳。虽然RDMA网络速度很快,但如果RO节点的负载很重,开销仍然很大。为了减少时间戳获取的开销,我们提出了线性Lamport时间戳。在线性Lamport时间戳的基础上,RO节点从RW节点获取时间戳后,可将其存储在本地。任何早于该时间戳到达RO节点的请求都可以直接使用本地存储的时间戳,而不用从RW节点获取新的时间戳。当RO节点负载较重时,这可以节省许多获取时间戳造成的开销。
    (2)分层的细粒度的修改跟踪。在RW维护全局、表级、页面(page)级的更新时间戳。当RO处理请求时,首先获取全局的时间戳,如果全局时间戳比RO回放日志的时间戳小,RO不会立即进入等待,而是继续比较请求需要访问的表、page的时间戳。只有当需要访问的page的时间戳仍然不满足时,才会等待日志回放。这样可以避免一些不必要的日志回放等待。
    (3)基于RDMA的日志传输。PolarDB-SCC采用了单边RDMA的接口来实现RW到RO的数据传输,极大地提高了日志传输速度,同时减少了日志传输时带来的CPU开销。

    2024-06-03 22:07:48
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载