分布式存储的技术原理

cap定理: 在一个分布式计算机系统中,一致性,可用性和分区容错性这三种保证无法同时得到满足;
consistency 一致性availability 可用性partition tolerance 分区容错性cap取舍
cp:发生分区,需要牺牲用户的体验,等待所有数据全部一致了之后再让用户访问系统。
ap:发生分区,为了高可用,每个节点只能用本地数据提供服务,会导致全局数据的不一致性。
理想情況下,单机数据库 ac 模型
分布式数据库系统 cp模型
单机数据库分布式解决方案:例如mysql
垂直拆分水平拆分读写分离带来问题:
业务侵入大,维护成本高带来分布式事务问题分布数据库特性
存储量不受单机容量限制计算能力不受单机资源限制扩展性强容错能力强数据可靠性高分布数据库设计思路
多副本的存储
保证数据一致性 一般kv存储模型主从模型:
提供数据分片路由支持
多副本的存储方式
技术难点——热数据问题
热点数据数据分快 热数据迁移解决思路:实时调整块位置将读写频繁的块均匀分布在各个存储节点;
技术难点——原子性问题
保障多个key写入的原子性解决思路:一般都遵守google percolator分布式事务。(在这里不具体讲)
采取的乐观锁的方式,如图所示:
两阶段提交:prewrite(预写)、commit(提交);并发冲突提交的问题。
如图所示:
rocksdb数据库存储原理
rocksdb:使用c++编写的嵌入式kv存储引擎,其键值均允许使用二进制流。由facebook基于leveldb开发。
lsm的设计依据
随机写转换成顺序写
优化读性能
三种数据结构
mentable
logfile
sstfiles
如下图:
rocksdb写入
插入记录log mentable写入新记录更新记录log mentable写入新记录删除记录log mentable标记key删除wal:write-ahead log,确保数据不丢失全部是内存写入,没有磁盘i/o
mentable写满后写入磁盘,顺序i/o。
lsm读
读memtable
定位sslfile,文件内查找
rocksdb首先会去查看内存中的memtable,如果memtable中包含key及其对应的value,则返回value值即可;如果在memtable没有读到key,则接下来到同样处于内存中的memtable中去读取,类似地,如果读到就返回,若是没有读到,那么会从磁盘中的sstable文件中查找。
rocksdb为了提高读取速递,增加了读cache和bloomfilter。
上面的分布式存储原理都理解了,那我们具体的tidb的架构原理就很简单了。
tidb架构
基于rocksdbraft一致性协议etcd存储元数据支持olta支持olap
mysql迁移到tidb:数据迁移和流量迁移
数据迁移: 1、支持主从同步的方式 2、双写(mq)流量迁移: 1、切读 2、停双写如下图所示:
注意的事項:
乐观锁冲突的问题,使用分布式锁,串行化处理解决;

光伏变频器的使用方法有哪些
曝iPhone 15系列国行备货量猛降30%,原因是什么?
中兴被禁背后,国产芯片产业该如何突围?
COMWIN智能传感器自动检测、自动识别、自动计算功能的传感器 直接显示物理量的振弦传感器DSensor
2.4寸旋钮智能屏在扫地机上的应用
分布式存储的技术原理
华为P10最新消息:华为P10闪存门和疏油层事件之后,如何看待骄傲的华为?
英特尔处理器漏洞引关注_intel处理器漏洞检测_处理器漏洞怎么修复
硅谷半导体企业技术探秘:从汽车电子到EDA
从新松机器人、埃斯顿等集体定增募投计划看机器人未来布局
在传统软件和AI模型上的半自动化调试工作分享
华为智能生活馆·石家庄欢乐汇12月25日盛大开业
荣耀8青春版评测:4GB运存+镜面工艺,美得让人窒息
光刻机的难度在哪里
功率放大器的阻抗匹配、防护措施、使用技巧及特点
蓝牙芯片认证观察:市场趋向单芯片路线
美国毅力号已成功部署风力传感器
智能视频分析技术应用研究
Xposed的测试版可以在安卓Oreo(8.0/8.1)支持下使用
多功能食品安全检测仪的标准方法是什么