0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

分布式存储的技术原理

jf_78858299 来源:老李说架构之道 作者: 梦海飞翔 2023-02-15 15:38 次阅读

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架构

  • 基于RocksDB
  • Raft一致性协议
  • Etcd存储元数据
  • 支持OLTA
  • 支持OLAP

图片

MySql迁移到TiDb:数据迁移和流量迁移

数据迁移:

            1、支持主从同步的方式

            2、双写(MQ)
流量迁移:

            1、切读

            2、停双写

如下图所示:

图片

注意的事項:

乐观锁冲突的问题,使用分布式锁,串行化处理解决;
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 计算机系统
    +关注

    关注

    0

    文章

    276

    浏览量

    24071
  • 分布式
    +关注

    关注

    1

    文章

    855

    浏览量

    74436
  • CAP
    CAP
    +关注

    关注

    0

    文章

    16

    浏览量

    2073
收藏 人收藏

    评论

    相关推荐

    视频监控中分布式存储技术方案

     在一个视频监控系统中,选择什么样的存储解决方案直接决定了整个系统的系统架构以及系统的性能和稳定程度,目前视频监控系统中的存储方案大致上有两种。视频监控系统存储方案
    发表于 03-10 10:22 4726次阅读

    深度解读分布式存储技术分布式剪枝系统

    分布式文件系统存储目标以非结构化数据为主,但在实际应用中,存在大量的结构化和半结构化的数据存储需求。分布式键值系统是一种有别于我们所熟悉的分布式
    发表于 10-27 09:25 1822次阅读

    什么是分布式存储技术?有哪些应用?

    分布式存储概念 与目前常见的集中式存储技术不同,分布式存储
    的头像 发表于 11-17 09:26 2.3w次阅读
    什么是<b class='flag-5'>分布式</b><b class='flag-5'>存储</b><b class='flag-5'>技术</b>?有哪些应用?

    分布式存储技术有哪些

    本视频主要详细介绍了分布式存储技术有哪些,分别是元数据管理、系统弹性扩展技术存储层级内的优化技术
    的头像 发表于 01-04 16:39 1.6w次阅读

    阿里巴巴如何使用分布式存储技术

    阿里巴巴可能和其他做云产品的公司不一样,对于我们来说,我们做这些新的技术,并不是让大家去做小白鼠,阿里巴巴自己内部关键的电商业务也是跑在同一套系统上。
    发表于 05-21 11:32 2242次阅读
    阿里巴巴如何使用<b class='flag-5'>分布式</b><b class='flag-5'>存储</b><b class='flag-5'>技术</b>

    瞄上分布式存储技术 京东云投资EasyStack

    8月8日消息,亿邦动力获悉,京东云宣布战略投资EasyStack,双方将在云计算、分布式存储、容器三大开源技术领域进行合作,助力京东云成为可托付的云计算服务商。
    发表于 06-11 10:54 591次阅读

    分布式存储技术 从你说了算到大家说了算

    我们总说区块链就是一个分布式账本,但实际上,区块链的核心技术包含智能合约、共识机制、加密算法等等,分布式存储技术只是其核心
    发表于 06-12 16:39 1064次阅读

    区块链技术的应用有望解决供应链金融的发展痛点

    区块链技术作为一种分布式存储技术,可以通过共识算法解决信任问题,通过智能合约防范履约风险,从而使信任可沿供应链条有效传导,降低合作成本,提高履约效率。
    发表于 06-13 10:59 652次阅读

    分布式存储技术之TurboEx超融合邮件系统

    近日,国产邮件系统的领先品牌TurboEx正式发布分布式存储技术,通过最新的分布式存储技术,Tu
    发表于 10-29 11:38 1232次阅读

    分布式存储技术将引领着产业区块链的发展

    为了应对海量数据传输、存储以及计算带来的挑战,发展分布式网络势在必行。而利用区块链技术的治理机制、安全机制、激励机制才能有效的组织分布式网络资源。
    发表于 10-30 11:21 1412次阅读

    曙光中标分布式存储产品集采 中国移动给大订单

    近年来,分布式存储技术在电信行业得到广泛的推广,在云化转型、 IoT、5G 等新兴业务,虚拟化资源池、数据库业务、传统老旧存储替换等场景下都有着大量的落地。
    发表于 07-02 09:07 432次阅读

    主流分布式存储技术的对比分析与应用

    随着数字化转型的深入,海量数据对存储提出了新的要求。传统存储虽然有技术成熟、性能良好、可用性高等优点,但面对海量数据,其缺点也越来越明显:如扩展性差、成本高等。为了克服上述缺点,满足海量数据的
    发表于 07-13 15:52 3639次阅读
    主流<b class='flag-5'>分布式</b><b class='flag-5'>存储</b><b class='flag-5'>技术</b>的对比分析与应用

    阿里巴巴探讨新基建下数字经济分布式存储新机遇

    本次大会汇集众多领导、嘉宾,在此共同探讨新基建下数字经济以及分布式存储技术的发展新机遇。
    的头像 发表于 08-17 14:21 2932次阅读

    一文知道分布式存储技术的发展历程

    互联网起源于1969年的美国国防部高级研究计划署的阿帕网(ARPANet),阿帕网是计算机网络技术发展的一个重要里程碑,其核心分组交换技术实现了计算机与计算机之间的通信。
    发表于 09-30 14:17 3800次阅读

    主流分布式存储技术对比分析

    如今分布式存储产品众多令人眼花缭乱,如何选型?要根据其背后的核心架构来分析它本来的原貌,然后才能决定其是否适合我们的具体场景。
    的头像 发表于 02-15 15:06 1384次阅读
    主流<b class='flag-5'>分布式</b><b class='flag-5'>存储</b><b class='flag-5'>技术</b>对比分析