无主复制系统(1)-节点故障时写DB概述

简介: 单、多主复制的思路都是:客户端向某主节点发写请求,而DB系统负责将写请求复制到其他副本。

单、多主复制的思路都是:客户端向某主节点发写请求,而DB系统负责将写请求复制到其他副本。


主节点决定写顺序

从节点按相同顺序应用主节点发送的写日志

某些数据存储系统另辟蹊径:放弃主节点,允许副本直接接受客户端写。最早的复制数据系统就是无主节点(或称之为去中心复制、无中心复制),但后来在关系DB主导的时代,这想法被忘却。在亚马逊将其用于其内部的Dynamo系统1后,它再一次成为流行的DB架构。Riak,Cassandra和Voldemort都是由Dynamo启发的无主复制模型的开源数据存储,所以这类DB也被称为Dynamo风格。


某些无主实现,客户端直接将写请求发到多副本

而另一些实现中,有个协调者(coordinator)节点代表客户端进行写入,但与主节点的DB不同,协调者不负责维护写入顺序

4.1 节点故障时写DB

假设三副本DB,其中一个副本当前不可用(或许正在重启以安装系统更新):


主节点复制模型下,若要继续处理写,则需执行故障切换

而无主模型,则不存在这切换

图-10:User 1234将写请求并行发送到三副本,两可用副本接受写,而那不可用副本无法处理。假设这俩成功确认写,User 1234收到两个确定响应后,即可认为写成功。完全能忽略那一个副本无法写入的情况。

14.png



等失效节点重新上线,而客户端开始读取它。节点失效期间发生的任何写入在该节点都尚未同步,因此可能读到过期数据。


为解决该问题,当某客户端从DB读数据时,它不是向1个副本发送请求,而是并行发送到多个副本。客户端可能会从不同节点获得不同响应,即来自一个节点的最新值和来自另一个节点的旧值。可利用版本号确定哪个值是更新的。


Dynamo不适用于Amazon以外用户。 令人困惑的是,AWS提供了一个名为DynamoDB的托管数据库产品,它使用了完全不同的体系结构:它基于单领导者复制。 ↩︎

目录
相关文章
|
机器学习/深度学习 关系型数据库
|
SQL Windows 数据库
sql server 高可用故障转移(完结)
原文:sql server 高可用故障转移(完结)  最后测试  安装完二个sql server 节点后,对外的虚拟ip是192.168.2.105     测试将sql server转到另一节点      转移后连接sql 虚拟ip 测试                  通过windows日志查看远行状态            总结            到这里故障转移群集就配置完成了,   通过一系列的配置,会发现实现起来还是很繁琐。
1145 0
|
SQL 存储 网络协议
sql server 高可用故障转移(5)
原文:sql server 高可用故障转移(5) 测试故障转移群集报告           在SQL-CL01(hsr 50)进行故障转移群集的创建,如图下图所示,在SQL-CL01和SQL-CL02的“服务器管理”中右键点击“功能”,选择“添加功能          勾选故障转移群集  (注意...
781 0
|
SQL 网络协议 测试技术
sql server 高可用故障转移(2)
原文:sql server 高可用故障转移(2)   添加网卡心跳线     目标: 二台sql服务器需要添加网卡心跳线,用于sql server内部数据传输      计算机名 Ip信息 心跳线 Hsr1 192.
832 0
|
SQL 存储 监控
sql server 高可用故障转移(4)
原文:sql server 高可用故障转移(4) 二台sql服务器配置ISCSI虚拟磁盘       在上篇我们利用ISCSI Target软件在DC-ISCSCI上创建了三个ISCSI虚拟磁盘,在下面我们将为大家介绍SQL-CL01(hsr1 50)和SQL-CL02(hsr2  51)如何访问这些ISCSI虚拟磁盘.        SQL-CL01和SQL-CL02可以使用ISCSI协议访问DC-ISCSCI上的虚拟ISCSI磁盘,由于Windows Server 2008已经内置了ISCSI协议,因此我们无需在SQL-CL01和SQL-CL02上安装ISCSI客户端软件。
952 0
|
SQL 网络协议 数据库
sql server 高可用故障转移(1)
原文:sql server 高可用故障转移(1) 群集准备工作        个人电脑 内存12G,处理器 AMD A6-3650CPU主频2.6GHz         虚拟机 VMware Workstation 12        数据库  sql server 2008 r2     ...
893 0
|
SQL 存储 监控
sql server 高可用故障转移(3)
原文:sql server 高可用故障转移(3) 虚拟磁盘创建           前面我们已经搭了域和两台sql 服务器, 下面我们准备让DC域服务器除了担当域控制器外,还行使另一个职能:充当集群共享存储。
910 0
|
SQL 存储 监控
sql server 高可用故障转移(6)
原文:sql server 高可用故障转移(6) 创建分布式事务处理DTC群集服务      在hsr3 ip 49上继续                 \     输入一个没有冲突的ip地址用作SQL-CL的DTC解析地址:192.
893 0
|
关系型数据库 MySQL 测试技术