美文网首页tidb
三篇文章了解 TiDB 技术内幕——说存储(学习总结)

三篇文章了解 TiDB 技术内幕——说存储(学习总结)

作者: 上海大坤哥 | 来源:发表于2018-09-05 01:36 被阅读0次

    实现一个分布式存储需要考虑如下几个问题:

    1. 存储引擎
    2. 负载均衡(包括如何扩容,缩容)
    3. 高可用
    4. 一致性

    存储引擎:
    tidb 底层存储的数据内容就是 key-value, 其实就是一个大的map,tidb 选择开源的 RocksDB

    负载均衡:
    因为面向的是海量数据,所以数据需要均衡的分布在不同的存储节点上, 通常就两种选择 hash (对key进行hash计算,根据hash结果分散在不同节点), range(对key 进行排序,按照顺序分钟多段,每段存在一个节点上) 两种, tidb 选择 range 方式。
    选择 range 方式,主要是根据tidb业务场景选择的, 因为是 关系数据库,所以有大量连续数据场景, 所以其实是没得选择,只能选range。选range 带来的问题是热点数据的问题。

    高可用,一致性:
    分布式系统数据一定要高可用,也就是同一份数据要存储多份(每份数据都要存储在不同的节点上),这样就牵扯出来一致性问题,因为 tidb 的目标是强一致,所以一定要选择 raft,paxos 等强一致协议,tidb 选择的是 raft(采用开源etcd中的raft实现)

    看起来很简单,其实原理就是这么简单。。。。

    相关文章

      网友评论

        本文标题:三篇文章了解 TiDB 技术内幕——说存储(学习总结)

        本文链接:https://www.haomeiwen.com/subject/lzdowftx.html