[转帖]TIDB TIKV 数据是怎么写入与通过Region 分割的?
https://cloud.tencent.com/developer/article/1882194
国产的分布式数据库不少,TDSQL, OB, TIDB ,等等都是比较知名的产品,使用的分布式协议也不同,有使用POSTGRES-XL ,也有从外观模仿ORACLE 的,还有借鉴各家所长自己研发的。为什么最近一直在看TIDB,主要有以下几点
1 TIDB 对比其他的分布式数据库是目前影响力较大的产品
2 TIDB 是基于成型的产品的理论以及底层成熟的存储层研发的数据库产品
3 互联网企业使用的量已经成型,经过验证
4 开放,以及国际上的影响
——————————————————————————————
TIDB 的三个模块,TIDB, TIKV, PD ,这三个名词估计是耳熟能详了,接入层,事务隔离级别控制层,信息路由层 , 以及信息存储层。TIKV 作为TIDB 的信息存储层, 首先一个信息是如何存储进TIKV

整体的数据写入的过程采用PUT指令,通过PD来对要写入的数据进行路由,对需要写入数据的目的地进行获取,并将获取后的位置发送给TIDB 模块,TIDB 模块将需要写入的数据直接发送给TIKV , TIKV 通过两阶段提交的方式将信息写入 leader region, 并将数据写入的结果反馈给TIDB , 同时数据线性的在follower region中写入。
反向在数据读取的过程过,会根据raft 协议中的大多数的原理,读取的数据必须在大多数的region 中存在,否则是无法进行数据的读取的。
TIKV 的数据存储的单位是REGION ,REGION 对于TIKV是非常重要的,TIKV 通过REGION 以及RAFT 协议将同样的REGION 分布在不同的TIKV 的主机中。随着数据的不断的写入REGION 承载的数据越来越多就需要开始进行分割。TIKV 中存储的数据也是有序的,并且是通过RAGE 的方式(范围的方式进行数据的存储),数据的增大必然导致范围的粒度越来越细分。

初始化时一个REGION为64MB , 并且标注好REGION 数据存储的范围,当数据灌入超过8MB后,TIKV 产生CHECK 线程对REGION 的大小进行定期的巡检, 当数据在REGION 中超过96MB 就产生一个分割的需求了。根据分割的需求,TIKV 中的RAFTSTORE 线程会将需求发送给PD, PD 会根据需求分配新的REGION的ID ,并且将信息会送给TIKV。
TIKV 获得了新的ID 后根据当前REGION 存储的数据中KEY:VALUE 的情况调整并且重新划分REGION 中的存储数据的范围。由于REGION的拆分仅仅是在元数据上进行范围的重新标定和注册,所以分割本身并不牵扯数据的迁移,速度会比较快。在产生新的REGION 后,并完成注册和分割后,TIKV 会将信息回馈给PD,并进行记录。后续新的数据写入以及提取PD 会根据新的信息进行路由,将信息写入新的REGION。

[转帖]TIDB TIKV 数据是怎么写入与通过Region 分割的?的更多相关文章
- java下DataInputStream与DataOutputStream写入数据的同时写入数据类型
package cn.stat.p2.demo; import java.io.DataInputStream; import java.io.DataOutputStream; import jav ...
- Java将数据按列写入Excel并设置格式(字体、背景色、自动列宽、对齐方式等)
本文使用jxl.jar工具类库将数据按列写入Excel并设置格式(字体.背景色.自动列宽.对齐方式等). /** * 按列写入Excel并设置格式 * * @param outputUrl * 输出路 ...
- php从memcache读取数据再批量写入mysql的方法
这篇文章主要介绍了php从memcache读取数据再批量写入mysql的方法,可利用memcache缓解服务器读写压力,并实现数据库数据的写入操作,非常具有实用价值,需要的朋友可以参考下. 用 Mem ...
- 一个I/O线程可以并发处理N个客户端连接和读写操作 I/O复用模型 基于Buf操作NIO可以读取任意位置的数据 Channel中读取数据到Buffer中或将数据 Buffer 中写入到 Channel 事件驱动消息通知观察者模式
Tomcat那些事儿 https://mp.weixin.qq.com/s?__biz=MzI3MTEwODc5Ng==&mid=2650860016&idx=2&sn=549 ...
- matlab将数据读取和写入txt文档
原文链接 matlab中打开文件 fid = fopen(文件名,‘打开方式’): 说明:fid用于存储文件句柄值,如果fid>0,这说明文件打开成功. 另外,在这些字符串后添加一个“t”,如‘ ...
- R 数据读取与写入
路径 getwd() #获取当前工作路径 setwd() #设置工作路径 获取普通文本数据 x = read.table("data.txt") #通过路径直接获取 x = rea ...
- C语言中链表任意位置怎么插入数据?然后写入文件中?
链表插入示意图:(图是个人所画)因为链表指针指来指去,难以理解,所以辅助画图更加方便. 插入某个学号后面图: 定义的结构体: struct student { ]; //学生学号 ]; //学生姓名 ...
- C#调用NPOI组件读取excel表格数据转为datatable写入word表格中并向word中插入图片/文字/书签 获得书签列表
调用word的com组件将400条数据导入word表格中耗时10分钟简直不能忍受,使用NPOI组件耗时4秒钟.但是NPOI中替换书签内容的功能不知道是不支持还是没找到. 辅助类 Excel表格数据与D ...
- SSIS 系列 - 在 SSIS 中使用 Multicast Task 将数据源数据同时写入多个目标表,备份数据表,以及写入Audit 信息
转自http://www.cnblogs.com/biwork/p/3328838.html 在 SSIS Data Flow 中有一个 Multicast 组件,它的作用和 Merge, Merge ...
- NPOI 创建Excel,数据读取与写入
<1> using System; using System.Collections.Generic; using System.Linq; using System.Web; using ...
随机推荐
- 确定了-C#是2023年度的编程语言!
大家好,我是沙漠尽头的狼.在朋友圈看到桂素伟大佬发的喜讯截图,站长赶紧翻译向大家报喜,确定了-C#是2023年度的编程语言! 在TIOBE指数的历史上,C#首次获得了年度编程语言的奖项.祝贺!二十多年 ...
- 前端系列:ES6-ES12新语法
目录 ECMAScript系列:简介 ECMAScript系列:ES6新特性 let 关键字 const 关键字 变量的解构赋值 模板字符串 简化对象写法 箭头函数 参数默认值 rest 参数 spr ...
- 理论+实践详解最热的LLM应用框架LangChain
本文分享自华为云社区<LangChain是什么?LangChain的详细介绍和使用场景>,作者:码上开花_Lancer . 一.概念介绍 1.1 Langchain 是什么? 官方定义是: ...
- 再拔头筹,FusionInsight为华为云大数据打造硬实力
摘要:在IDC2020大数据报告中,有云服务厂商.传统ICT 厂商,以及大数据时代的创企等三类"玩家",为何华为云能够脱颖而出? 近日,IDC发布<IDC MarketS ...
- 提升漏洞修复率,DevSecOps真的很有一套
摘要:在业务应用交付规模不断扩大.交付速度不断提高.开发运营场景一体化的大环境下,安全问题你真的重视么? 本文分享自华为云社区<HDC.Cloud2021 | 提升漏洞修复率,DevSecOps ...
- 一个Camel Multicast组件聚合策略问题的解决过程
摘要:本文通过案例,发现了一个Camel Multicast组件聚合策略相关的问题.通过查看Camel源代码,找到了问题原因并给出了解决方案.希望本文可以帮助到遇到同样问题的Camel用户. 本文分享 ...
- 云图说|Git云上仓库哪家好?一张图了解华为云代码托管服务
阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要: 云办公时代已然到 ...
- APP加固原理与作用
APP加固原理与作用 引言 在移动应用开发中,APP加固是一种保护应用代码逻辑的重要措施.通过对应用文件进行隐藏.混淆和加密等操作,可以有效提高软件的逆向成本,降低被破解的几率.本文将介绍APP加固的 ...
- 火山引擎DataTester:AB实验平台未来演进趋势是怎样的?
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 近日,DataFun联合行行AI举办第四届"数据智能创新与实践人工智能大会,火山引擎DataTester ...
- 如何在 Unity 游戏中集成 AI 语音识别?
简介 语音识别是一项将语音转换为文本的技术,想象一下它如何在游戏中发挥作用?发出命令操纵控制面板或者游戏角色.直接与 NPC 对话.提升交互性等等,都有可能.本文将介绍如何使用 Hugging Fac ...