开发者社区 > 数据库 > 正文

从XLOG Service 的内部结构来看,它是如何工作的?

已解决

从XLOG Service 的内部结构来看,它是如何工作的?

展开
收起
云上静思 2022-09-12 14:09:49 363 0
1 条回答
写回答
取消 提交回答
  • 推荐回答

    配图13.png

    如图所示,日志块从主节点同步写入LZ(Landing Zone)。当前版本的Socrates 使用Azure 的高级存储服务(XIO)作为LZ 的存储载体,为了保证持久性,XIO 保留所有数据的三个副本。主节点还将日志异步地传送到XLOG Process,此进程进一步将日志发送到只读节点和Page Servers。在将日志块并行地发送到LZ 和XLOG Process 时,数据有可能在LZ 持久化之前就到达只读节点,从而在发生故障时产生数据不一致或丢失的现象。为了避免这种情况,XLOG只传播已经在LZ 中持久化的日志。XLog Process 首先将日志存放在Pending Blocks中,同时主节点会通知哪些日志块已经被持久化,XLog Process 会将已经持久化的日志块从Pending Blocks 移动到LogBroker 用于向只读节点和Page Serves 广播分发。在XLOG Process 内部还有一个Destaging 进程,该进程会将已经持久化的日志块复制到固定大小的本地SSD 缓存以实现快速访问,并且还会复制一份到XStore 进行长期归档保留,Socrates 将日志块的这种长期存档称为Long-Term Achieve(LT)。

    以上内容摘自《云原生数据库原理与实践》,这本书可以在电子工业出版社天猫店购买。

    2022-09-12 14:28:35
    赞同 展开评论 打赏
问答地址:

数据库领域前沿技术分享与交流

相关电子书

更多
Patroni使用维护手册 立即下载
开源广进-用Service Catalog构造K8S服务能力 立即下载
《基于 Service Worker 实现在线代理》 立即下载