《NoSQL权威指南》——1.7 服务器端一致性

1.7 服务器端一致性

在服务器端,我们可能在几个节点,但不一定是所有的节点,拥有相同的数据。如果所有n个节点都在一个数据值上达成一致,那么我们确定这个数据就是对的。生活是美好的。

但是,在针对“更新”建立共识的过程中,我们需要知道到目前为止邮件列表外有多少节点确认收到更新。我们正在寻找一个仲裁规则来审计节点故障和不完整复制。这些规则与应用程序不同。大型银行转账可能想要在所有节点上完全一致。一个网站购物车应用程序只要满足下面的条件就是令人满意的:客户返回给任何服务节点购物车的某个版本,用户就可以继续购物,即使有一些丢失的物品也没关系。只要确保当用户点击“结账”按钮时其他节点知道要删除其购物车的本地副本就可以。

我们不希望将节点的突发紧急重新启动作为默认动作。早期的文件系统是就是以这种方式工作的。几十年前,我的妻子为处理社会保障数据的保险公司工作,一个打卡故障会中止整批处理,并发出无用的错误消息。

我们希望系统会设计有优雅的降级机制。Sabre的航空订票系统会排出少量的重复订票。如果某个人有两次冲突的或冗余的订票,不会有什么问题,因为一名乘客无法同时做两个座位,在同一个座位也无法乘坐两次,问题会通过人为方式或者问题本身的逻辑来解决。

当某一个节点过载时,你可能会容忍降低性能并将部分负载迁移到其他节点,直到第一个系统得以修复。最好的例子是独立磁盘冗余阵列(redundant array of independent disks,RAID)系统。当一个磁盘发生故障时,它在物理上从阵列中删除并插入一个新的单元来取代它。在故障磁盘重建的过程中,访问的性能将会有一点点下降。在系统继续运行其日常任务时,数据必须从被替换阵列磁盘中复制到新磁盘。

时间: 2024-09-23 00:52:40

《NoSQL权威指南》——1.7 服务器端一致性的相关文章

《NoSQL权威指南》导读

引言 NoSQL权威指南"没有什么会比引入新秩序更难,因为创新者必须要面对那些在旧环境中已经做得很好的对手,以及那些在新环境中做得很好的冷漠者." --Niccolo Machiavelli [1] 在过去的几十年,我已经通过Elsevier/Morgan Kaufmann出版社出版了一系列的书,这些书几乎全部是关于SQL和RDBMS的.而这本书对行业媒体中所谓的大数据.新SQL或NoSQL(我们这些极客非常喜欢流行语)做了一些概述.第一个创造或挖掘了新名词的专栏作家或博主很可能会在维

《NoSQL权威指南》——第1章 NoSQL和事务处理

第1章 NoSQL和事务处理 NoSQL权威指南简介本章讨论传统的批处理和事务处理.将作业队列读入大型计算机仍然是商业数据处理大量采用的方式.事务处理模型通过使用新的ETL工具来加载数据库,完成批处理作业.我们需要了解批处理和事务处理这两种模型以及它们在新技术中如何使用. 早期的时候,计算机系统只能做单路处理,也就是说计算机只能从头开始按照顺序完成一项作业.后来,有了多处理技术,多个作业可以共享计算机资源,但每个作业仍相互独立并在硬件队列中等着轮到自己执行. 这种方式演化为一种事务模型,并成为S

《NoSQL权威指南》——第2章 列式数据库

第2章 列式数据库 NoSQL权威指南简介从打孔卡和磁带的年代开始,文件就是物理设备上连续的字节,访问的方式是从文件开始(打开文件)到文件结束(文件结束的标志为TRUE).是的,存储可以在磁盘上被分割成数据页,并且各种数据页可以通过指针链连接,但这种模型仍然与前面提到的打孔卡.磁带是相同的.后来,文件被拆分成记录(record,更多物理连续的字节),记录又被拆分成字段(field,仍然是更多物理连续的字节). 文件被一条记录一条记录地处理(读/取一条,然后下一条)或按照物理存储位置顺序地处理(从

《NoSQL权威指南》——1.8 错误处理

1.8 错误处理 错误信息有两大类,我们可以遇到一些预料之中的问题,如无效密码,针对这些情况可以采用标准的响应或处理过程.假如我们忘记了正确的密码,并且在做多次尝试后仍不能使用正确的密码,就会被锁定. 第二类错误消息能告诉我们发生了什么事,可能会有使人厌烦的细节.这些信息会让用户进行一些处理操作或者让用户知道他为什么会失败. 但是有了NoSQL的发展和最终一致性模型的出现,事情也未必就会变得很舒服.系统还是会停止或锁定,不知道是为什么,可以做什么,或者需要多长时间来解决(如果能解决的话).截至2

《NoSQL权威指南》——1.5 CAP定理

1.5 CAP定理 2000年,Eric Brewer在ACM分布式计算原理主题研讨会做了主题演讲,并介绍了CAP定理(也称Brewer定理).2002年,在麻省理工学院的Seth Gilbert和Nancy Lynch的努力下进行了修订和修改,后来又有很多人参与. 这个定理是针对分布式计算系统的,而传统并发模型会假设有中央并发管理机制.悲观并发模型有一个"交通警察",乐观并发模型有一个"服务领班".CAP代表一致性(consistency).可用性(availab

《NoSQL权威指南》——1.4 悲观并发详解

1.4 悲观并发详解 悲观并发控制假定冲突是预料之中的情况,必须警惕.在关系数据库管理系统(relational database management system,RDBMS)中最流行的模型是基于加锁的.锁是一种允许一个用户会话对资源的访问同时保持或限制其他会话对同一资源的访问的装置.每个会话可以针对资源获得对应的锁,对资源进行修改,然后在数据库中提交(COMMIT)或回滚(ROLLBACK)相应的操作.COMMIT语句将修改持久保存,ROLLBACK语句将数据库恢复到会话之前的状态.如果修

《NoSQL权威指南》——1.3 ACID

1.3 ACID 已故的Jim Gray [2]在20世纪70年代才真正发明了现代事务处理,并在1981年6月写入经典论文"事务概念:优点和限制"(The Transaction Concept: Virtues and Limitations).从这篇论文开始,有了ACID(原子性.一致性.隔离性和持久性)这个缩写词.Gray的论文论述了原子性.一致性.持久性,隔离性是后来补充的.Bruce Lindsay和他的同事于1979年在Gray的论文的基础上写了论文"分布式数据库

《NoSQL权威指南》——2.1 列式数据库的历史

2.1 列式数据库的历史 列式存储以及倒排或不按顺序存储文件的方式并不是最新提出的.TAXIR是1969年为生物学建立的第一个列式数据库存储系统.加拿大统计局于1976年实现了RAPID系统,并将其用于加拿大人口和住房普查数据的处理和检索,以及其他与统计相关的一些应用.RAPID被拿来与世界各地的其他统计机构共享,并在20世纪80年代被广泛使用.直到20世纪90年代,它一直被加拿大统计局使用. 多年来,Sybase IQ是市面上唯一一个可以商用的列式DBMS.然而,当OLAP(online an

《NoSQL权威指南》——2.2 技术原理

2.2 技术原理 由于在列存储中的所有值都是同一类型的,并来自同一个域,计算其中第n行的位置很容易.所有列都按相同的顺序,因为它们在原始行中,所以要组装第i行,可以转到相关的列存储的第 i 个位置并且将它们连接起来.在电话号码的例子中,转到 area_codes.phone_exchange和phone_nbr列存储并且在每一列中并行查找第i条记录. 区号相对较小,所以它们最先返回,其次是交易所,最后是电话号码.当我第一次在Sand(nee引擎)数据库中看到这个时,是非常令人惊讶的.测试数据是一