一致性模型

更新时间:2023-04-27 09:54

在计算机科学领域,分布式一致性问题是一个相当重要,且被广泛论证与探索的问题。

概述

通常存在于分布式内存共享,分布式存储(例如:分布式文件系统,数据库,缓存)等分布式系统中。

问题原型

假设有下列场景:

-节点N_1和N_2上存放着数据X的拷贝

-客户端A更新节点N_1上的数据X

-一段时间之后,客户端B从节点N_2上读取数据X

在这个场景中,客户端B从节点N_2上是否可以读取到客户端A在节点N_1上的数据更新取决于系统的实现,而这便是分布式一致性问题。

一致性算法

Paxos算法是莱斯利·兰伯特(Leslie Lamport,就是 LaTeX中的La,供职于微软研究院)于1990年提出的一种基于消息传递且具有高度容错特性的一致性算法,是最优秀的分布式一致性算法。

Basic Paxos

Multi-Paxos

Cheap Paxos

Fast Paxos

Generalized Paxos

Byzantine Paxos

工程实现

zookeeper

zookeeper是Hadoop的正式子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

Chubby

来自Google的Paxos实现,是一个分布式锁服务。

spanner

Spanner是谷歌公司研发的、可扩展的、多版本、全球分布式、同步复制数据库。它是第一个把数据分布在全球范围内的系统,并且支持外部一致性的分布式事务。本文描述了Spanner的架构、特性、不同设计决策的背后机理和一个新的时间API,这个API可以暴露时钟的不确定性。这个API及其实现,对于支持外部一致性和许多强大特性而言,是非常重要的,这些强大特性包括:非阻塞的读、不采用锁机制的只读事务、原子模式变更。

IBM SVC

IBM SVC异构存储整合解决方案实现了虚拟存储层(Virtualization Layer)的功能,将存储智能加入到SAN的网络中。用户可以按照应用不断变化的需求来分配存储,而不再受制于存储子系统设备在功能和性能上的限制。SVC又是一个SAN网络的中心管理控制点,而且它对服务器的操作系统和存储子系统透明。

Microsoft AutoPilot

AutoPilot是微软用于维护大规模互联网服务的工具利器,采用简单的模型和设计思想,AutoPilot负责自动化的运维数据中心中提供服务的大规模机器。

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}