栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > 架构设计

《分布式数据库30讲》总结一:基础

架构设计 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

《分布式数据库30讲》总结一:基础

分布式数据库含义:用分布式架构实现的关系型数据库,是服务于写多读少(写入能力需要可水平扩展)、低延时、海量并发 OLTP (联机交易)场景的,具有海量数据存储能力和高可靠性的关系型数据库

需要达成的目标:存储、事务、查询、复制、其他

分布式数据库的强一致性包括数据一致性和事务一致性,是两者的融合;
数据一致性关注的是单对象、单操作在多副本上的一致性;
事务一致性则是关注多对象、多操作在单副本上的一致性

数据一致性:首先是状态视角,数据只有两种状态:所有副本一致或者不一致,不一致的状态是暂时,还会转换到一致的状态,而那些永远不一致的情况几乎不会去讨论,所以把不一致称为“弱一致”。相对的,一致就叫做“强一 致”,强一致会导致性能略差、可用性也降低,因此会采用最终一致性,此时可以从操作视角来分析,分为常见的五种最终一致性:写后读一致性、单调读一致性、前缀一致性、线性一致性、因果一致性

事务一致性:使用ACID,最核心的就是隔离级别,可以分为五个级别:

数据一致性和事务一致性的关系:不同颜色分别代表了不同的一致性级别所需付出的性能代价

注意:Paxos等一致性协议算法(其实是共识算法,翻译为Consensus)本质上是一种复制协议,约定了副本之间的同步策略,比如最终一致性,同样也只是描述了副本之间同步情况;
而 5 个数据一致性(翻译为Consistency)模型都在多副本的基础上又约定了读写策略;
这两点都是一致性模型 (Consistency Model)必不可少的内容

分布式数据库有两种架构风格,在单体数据库客户端通讯管理器、进程管理器、查询处理器、事务存储管理器和共享组件与工具的基础上添加了分片信息管理、分布式事务管理、跨节点查询、全局时钟;

一种由分库分表的代理发展而来:

一种由nosql、分布式思想发展而来:

时间:在分布式数据库中与时间有关的功能主要体现在事务并发控制,比如 MVCC、读写冲突等,主要是关注三要素

时间源:单个还是多个

使用的时钟类型:物理时钟还是混合逻辑时钟

授时点:一个还是多个

多授时点是指当前集群有多个可以获取时间的服务器

多时间源是说多个独立提供时间的实例

方案典型有TSO、HLC

复制协议的选择:和数据副本数量有很大关系;
如果副本少,参与节点少,可以采用广播方式,也就是 Paxos、Raft 等协议;
如果副本多,节点多,那就更适合采用 Gossip 协议,Paxos等成本太高,虽然达到一致性的速度会更快些

分片存储方案:

首先要看元数据会不会变更,

1 如果不会变更,比如静态分片,那么就可以把它复制多份部署在所有工作节点上;

2 如果会变更,那就要考虑变更带来的多副本一致性问题;

2.1 如果是少数节点集中存储元数据,那么可以采用 Paxos 协议保证一致性;(Raft也可以,比如用etcd来存储)

2.2 如果是 P2P 架构,因为节点规模太大,那就适合采用 Gossip 协议

2.3 设计的权衡点主要是在于节点规模大小对传播效率的影响。

存储也是会有容量上限的,这个限制是由元数据的存储方式决定的

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/911766.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号