clickhouse 副本ReplicateMergeTree实现原理
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实现原理相关推荐
- 【clickhouse】clickhouse 副本与分片 分片详解
1.概述 转载:[clickhouse]clickhouse 副本与分片 分片详解 clickhouse 中每个服务器节点都可以被称为一个 shard(分片). 假设有 N 台服务器,每个服务器上都有 ...
- clickhouse副本和分片
title: clickhouse副本和分片 date: 2021-02-20 16:48:02 categories: 数据库 tags: clickHouse 副本和分片是在很多分布式系统中都有, ...
- Clickhouse的数据存储原理、二进制文件内容分析与索引详解
Clickhouse的数据存储原理.二进制文件内容分析与索引详解 Clickhouse以其强大的性能著称,已经被越来越多的使用在OLAP分析查询等场景中.Clickhouse是一个列式存储的数据库,而 ...
- ClickHouse 副本协同原理:ReplicatedMergeTree引擎
文章目录 ReplicatedMergeTree引擎 特点 数据结构 ZooKeeper内的节点结构 Entry日志对象的数据结构 副本协同的核心流程 INSERT MERGE MUTATION AL ...
- 【clickhouse】clickhouse 副本与分片 副本详解
1.概述 转载:ClickHouse 11.副本与分片 1. 副本 集群是副本和分片的基础,它将 clickhouse 的服务拓扑由单节点延伸到多个节点. clickhouse 集群配置很灵活,既可以 ...
- clickHouse副本和同步机制
文章目录 1. 副本的基本概念 1. 1 什么是副本 1. 2 副本写入流程简单示例 1. 3 多副本的配置 1. 4 clickhouse创建副本表 2. 副本同步原理 2.1 clickhouse ...
- ClickHouse副本表ReplicatedMergeTree实操
不适用的场景 首先副本表无法实现下图的设计,这是因为clickhouse中的副本是一张实实在在的物理表,而你不能在一台clickhouse服务器上创建两个相同的表 我们可以尝试一下,三分片一副本,按照 ...
- MongoDB副本集同步原理
MongoDB的同步原理,官方文档介绍的比较少,网上资料也不是太多,下面是结合官方文档.网上资料和测试时候的日志,整理出来的一点东西. 因为MongoDB的每个分片也是副本集,所以只需要搞副本集的同步 ...
- clickhouse 副本引擎
文章目录 副本 副本写入流程 配置步骤 副本 副本的目的主要是保障数据的高可用性,即使一台 ClickHouse 节点宕机,那么也可以从其他服务器获得相同的数据. https://clickhouse ...
最新文章
- Tensorflow— MNIST数据集分类简单版本
- JavaEE基础(十四) /正则
- 澳洲 计算机 本科学费,澳大利亚墨尔本大学一年学费和生活费清单
- 使用SQL Server 2008提供的表分区向导
- python模拟键盘输入_这件神器,每个 Python入门学习者都值得一试
- MySQL学习笔记17:别名
- Android 内存泄漏分析(完)
- linux 写地址 hex,你怎么理解Hex文件? (扩展地址记录)
- 都说人工智能入门难?但80%的人都错了……
- focus和onfocus区别
- PC端浏览器启动本地应用
- 华为m6更新鸿蒙吗,华为手机升级鸿蒙的方法,有哪位升级成功的吗?
- Cadence Capture CIS / OrCAD Capture 原理图中显示封装“Show Footprint”的问题
- 修复版拼团商城前端+后端微信小程序源码下载
- 『网络迷踪』ctfshow-网络迷踪(部分)
- 51信用卡两道编程题
- 洛谷P1462 通往奥格瑞玛的道路
- 超过百万的数组——解决方法
- Unicode排序编码表全部
- 破解amcharts的方法
热门文章
- V 语言强势登顶 GitHub TOP1,欲取 Go 而代之?
- 京东回应淘汰员工;阿里巴巴建江苏总部;5G 移动网被吐槽 | 极客头条
- 软件正在吞噬整个世界?!
- 为什么好的程序员会写出糟糕的单元测试?
- AI 产品经理如何练就?一文了解十大必备技能
- 芯片漏洞攻击出现新变种,涉及英特尔SGX技术支持的应用
- 谁在控制着 iCloud 中国区账号的密钥?
- 堕落 Java vs 新贵 Python,2018 年最应该学习哪一门编程语言?
- 程序员,有什么资格去谈佛系?
- ======第一章总结及习题======