ReplicateMergeTree可以通过和zk结合,把数据同步到对应的副本节点中,而且同步是相互的,也就是说从A节点写入的数据会同步到B节点,从B节点写入的数据也会写入到A节点中,典型的Mul-Master架构。通过一个分片多个副本的形式可以分摊读和写的负载,我们看一下同步的原理:

a. insert数据:假设A节点进行数据插入,首先A节点本地会创建一个新的目录分区,然后他会把这个分区目录的信息推送到zk的log目录节点下,目的是为了通知B节点来获取该分区的数据,B节点会监听zk的log节点的变更通知,让得知是要去A节点同步数据分区数据时,他首先先把这个消息发送到他对应的zk上面的任务执行队列,B本身会按照zk上面的执行队列的顺序顺序执行各个操作,自然当获取到是要去A同步数据分区数据时,他会和A节点建立数据连接,希望从A那里下载到该分区数据,等到A返回对应的分区数据时,B会在本地创建一个名称一模一样的目录分区数据,自此insert的数据完成了同步。

b. merge合并数据: 这个操作需要从A和B中通过zk选举出主节点,假设A是主节点,B是副节点,当B执行optimize table操作合并数据分区时,B首先和主节点A直接建立连接,告诉A主副本负责制定merge合并计划,当A收到B的制定merge计划的请求后,A制定了merge计划,比如把2020_0_0_0和2020_2_2_1合并成2020_0_2_2,他会把这个执行计划推送到zk的log节点中,这样A和B监听到zk的log节点执行计划后会分别把这个执行计划推送到各自在zk上的queue任务队列中,然后A和B各自执行各自的任务队列操作时,就会各自按照执行计划merge各自的分区

整个执行过程中zk只是作为消息通知的手段,clickhouse表数据的传输并没有通过zk进行,zk的压力其实不大,此外,对于ReplicateMergeTree表的查询操作并不需要zk的参与。

clickhouse 副本ReplicateMergeTree实现原理相关推荐

  1. 【clickhouse】clickhouse 副本与分片 分片详解

    1.概述 转载:[clickhouse]clickhouse 副本与分片 分片详解 clickhouse 中每个服务器节点都可以被称为一个 shard(分片). 假设有 N 台服务器,每个服务器上都有 ...

  2. clickhouse副本和分片

    title: clickhouse副本和分片 date: 2021-02-20 16:48:02 categories: 数据库 tags: clickHouse 副本和分片是在很多分布式系统中都有, ...

  3. Clickhouse的数据存储原理、二进制文件内容分析与索引详解

    Clickhouse的数据存储原理.二进制文件内容分析与索引详解 Clickhouse以其强大的性能著称,已经被越来越多的使用在OLAP分析查询等场景中.Clickhouse是一个列式存储的数据库,而 ...

  4. ClickHouse 副本协同原理:ReplicatedMergeTree引擎

    文章目录 ReplicatedMergeTree引擎 特点 数据结构 ZooKeeper内的节点结构 Entry日志对象的数据结构 副本协同的核心流程 INSERT MERGE MUTATION AL ...

  5. 【clickhouse】clickhouse 副本与分片 副本详解

    1.概述 转载:ClickHouse 11.副本与分片 1. 副本 集群是副本和分片的基础,它将 clickhouse 的服务拓扑由单节点延伸到多个节点. clickhouse 集群配置很灵活,既可以 ...

  6. clickHouse副本和同步机制

    文章目录 1. 副本的基本概念 1. 1 什么是副本 1. 2 副本写入流程简单示例 1. 3 多副本的配置 1. 4 clickhouse创建副本表 2. 副本同步原理 2.1 clickhouse ...

  7. ClickHouse副本表ReplicatedMergeTree实操

    不适用的场景 首先副本表无法实现下图的设计,这是因为clickhouse中的副本是一张实实在在的物理表,而你不能在一台clickhouse服务器上创建两个相同的表 我们可以尝试一下,三分片一副本,按照 ...

  8. MongoDB副本集同步原理

    MongoDB的同步原理,官方文档介绍的比较少,网上资料也不是太多,下面是结合官方文档.网上资料和测试时候的日志,整理出来的一点东西. 因为MongoDB的每个分片也是副本集,所以只需要搞副本集的同步 ...

  9. clickhouse 副本引擎

    文章目录 副本 副本写入流程 配置步骤 副本 副本的目的主要是保障数据的高可用性,即使一台 ClickHouse 节点宕机,那么也可以从其他服务器获得相同的数据. https://clickhouse ...

最新文章

  1. Tensorflow— MNIST数据集分类简单版本
  2. JavaEE基础(十四) /正则
  3. 澳洲 计算机 本科学费,澳大利亚墨尔本大学一年学费和生活费清单
  4. 使用SQL Server 2008提供的表分区向导
  5. python模拟键盘输入_这件神器,每个 Python入门学习者都值得一试
  6. MySQL学习笔记17:别名
  7. Android 内存泄漏分析(完)
  8. linux 写地址 hex,你怎么理解Hex文件? (扩展地址记录)
  9. 都说人工智能入门难?但80%的人都错了……
  10. focus和onfocus区别
  11. PC端浏览器启动本地应用
  12. 华为m6更新鸿蒙吗,华为手机升级鸿蒙的方法,有哪位升级成功的吗?
  13. Cadence Capture CIS / OrCAD Capture 原理图中显示封装“Show Footprint”的问题
  14. 修复版拼团商城前端+后端微信小程序源码下载
  15. 『网络迷踪』ctfshow-网络迷踪(部分)
  16. 51信用卡两道编程题
  17. 洛谷P1462 通往奥格瑞玛的道路
  18. 超过百万的数组——解决方法
  19. Unicode排序编码表全部
  20. 破解amcharts的方法

热门文章

  1. V 语言强势登顶 GitHub TOP1,欲取 Go 而代之?
  2. 京东回应淘汰员工;阿里巴巴建江苏总部;5G 移动网被吐槽 | 极客头条
  3. 软件正在吞噬整个世界?!
  4. 为什么好的程序员会写出糟糕的单元测试?
  5. AI 产品经理如何练就?一文了解十大必备技能
  6. 芯片漏洞攻击出现新变种,涉及英特尔SGX技术支持的应用
  7. 谁在控制着 iCloud 中国区账号的密钥?
  8. 堕落 Java vs 新贵 Python,2018 年最应该学习哪一门编程语言?
  9. 程序员,有什么资格去谈佛系?
  10. ======第一章总结及习题======