整个AWS的基础是Dynamo分布式存储系统,因此很有必要了解一下这个分布式存储系统。
一、分布式存储系统的挑战
设计一个分布式存储系统会碰到许多方面的挑战(参见备注1),从大的方面讲,由于可靠性、可用性和一致性这三者是不可兼得的,因此必然要在三者之间做出选择。Dynamo选择的是牺牲一定程度的一致性。其实很多其他设计为应付海量存储的分布式存储方案都做出了相同的选择。这是由于在海量访问的情况下,保证严格的一致性,将会导致性能急剧下降。
由于Dynamo最初设计的目标是作为Amazon内部的存储架构,因此他根据自身业务特点做了一下几个预设前提:
• 数据以key-value的形式存储,只有两种操作:读取、写入。
• 数据条目(item)之间不发生联系,不支持Join等关系数据库支持的操作,没有Schema。
• 一个数据条目较小(小于1MB)。
• 考虑到提供完全的ACID保证导致性能低下,因此不提供完全的ACID支持。(参见备注2)
• 为了降低费用会使用普通电脑作为存储节点,该存储系统需要支持这点。
其中第一第二点和目前逐渐升温的No-SQL风潮不谋而合,这说明在海量存储方面,No-SQL不仅仅是大有用武之地,而且是大势所趋。在这点上另一个网络巨头Google的做法也是大同小异,可谓是英雄所见略同。
二、Dynamo的设计思路
出于以上考虑,Dynamo在设计上定了几个原则(参见备注3):
• 可持续扩展规模
• Node之间完全对等
• 去中心化
• 支持异构系统
在这样的思路下,针对分布式存储系统中几个需要解决的大问题,Dynamo分别给出了解决方案:
• 数据均衡分布—一致性哈希算法
• 数据冲突处理—向量时钟
• 临时故障处理—Hinted handoff机制
• 永久故障恢复—Merkle哈希树
• 成员资格检测—gossip协议
(未完待续)
备注1:
一个分布式系统需要考虑的问题有以下这些:load balancing,membership and failure detection, failure recovery,replica synchronization,overload handling,state transfer,concurrency
job scheduling,request marshalling, request routing,system monitoring alarming,and configuration management
备注2:
ACID Properties: ACID (Atomicity, Consistency, Isolation,Durability) is a set of properties that guarantee that database transactions are processed reliably. In the context of databases, a single logical operation on the data is called a transaction.Experience at Amazon has shown that data stores that provide ACID guarantees tend to have poor availability. This has been widely acknowledged by both the industry and academia .
Dynamo targets applications that operate with weaker consistency (the “C” in ACID) if this results in high availability. Dynamo does not provide any isolation guarantees and permits only single key updates.(引自Amazon官方文档)
备注3:
Incremental scalability: Dynamo should be able to scale out one
storage host (henceforth, referred to as “node”) at a time, with
minimal impact on both operators of the system and the system
itself.
Symmetry: Every node in Dynamo should have the same set of
responsibilities as its peers; there should be no distinguished node
or nodes that take special roles or extra set of responsibilities. In
our experience, symmetry simplifies the process of system
provisioning and maintenance.
Decentralization: An extension of symmetry, the design should
favor decentralized peer-to-peer techniques over centralized
control. In the past, centralized control has resulted in outages and
the goal is to avoid it as much as possible. This leads to a simpler,
more scalable, and more available system.
Heterogeneity: The system needs to be able to exploit
heterogeneity in the infrastructure it runs on. e.g. the work
distribution must be proportional to the capabilities of the
individual servers. This is essential in adding new nodes with
higher capacity without having to upgrade all hosts at once.
(引自Amazon官方文档)
分享到:
相关推荐
#### 二、Amazon EC2概述 Amazon EC2允许用户在云环境中创建和管理虚拟服务器(实例),这些服务器可以在几分钟内启动并运行。用户可以根据需求选择不同的操作系统、硬件配置以及网络设置等。Amazon EC2支持按需...
#### 二、EC2 API版本与版权信息 EC2 API文档的版本号为2015-04-15,该文档版权归属于Amazon Web Services, Inc.及其附属公司所有,并且包含了一系列Amazon的商标和服务标志,如Amazon EC2、Amazon Elastic Compute...
通过以上对ITE_WinECU_D2EC使用手册中各个功能点的详细介绍,我们可以看到该工具提供了丰富的功能,旨在帮助用户高效地进行硬件调试和监控工作。无论是对于专业工程师还是普通用户来说,掌握这些功能都将极大地提高...
通过本文档的详细介绍,希望能够帮助您更好地理解和掌握 U-EC2 的使用方法,从而提高开发效率,加快产品的上市时间。如果您在使用过程中遇到任何问题,建议参考附带的文档资料或联系技术支持获取进一步的帮助。
本文将详细介绍如何制作C8051F单片机的EC2调试器,并探讨相关知识点。 一、C8051F单片机概述 C8051F单片机家族具有丰富的内置功能,包括高速CPU、模拟电路、数字逻辑、通信接口等。它们的引脚数目多样,可满足不同...
在压缩包中的“Windchill EC介绍.ppt”文件,通常会包含Windchill EC的详细介绍,如系统架构、主要功能、优势、实施案例等内容,可能是对这个系统的入门教程或者是销售演示材料。通过查看这个文件,你可以更深入地...
#### 二、Amazon EC2简介 Amazon EC2是Amazon Web Services (AWS) 提供的一种弹性计算服务,允许用户通过互联网租用虚拟计算机集群(或实例)。EC2提供了可扩展的云计算平台,支持多种操作系统和应用程序,并能够...
- **2001年**:批量生产ECAS III电磁阀及ECASCAN2 ECU,标志着ECAS系统进入了一个全新的发展阶段,性能更优越,可靠性更高。 - **2003年**:ECASCAN技术全面应用于客车,为公共交通提供了更稳定、更舒适的乘坐体验。...
### Amazon Elastic Compute Cloud (EC2) CLI Reference #### 概述 Amazon Elastic Compute Cloud (EC2) 是一种 Web 服务,提供可调整大小的计算能力,简化了在云中进行 Web 应用程序的开发和部署。Amazon EC2 的...
【标题】:“Linux环境下利用CodeBuild与CodeDeploy实现GitHub到EC2的CI/CD流程” 在现代软件开发中,持续集成(Continuous Integration, CI)和持续部署(Continuous Deployment, CD)已经成为不可或缺的实践,...
### AC3、EC3杜比音频打包成TS流的详细介绍 #### 一、概述 在数字音频领域,AC-3(Audio Codec 3)与E-AC-3(Enhanced Audio Codec 3)是两种非常重要的音频编码格式,广泛应用于广播、电影、电视等领域。这两种...
1. **产品简介**:这部分简要介绍了EC200T, EC20 R2.1和EC20-CN模块的功能特性,为后续的设计工作提供了基础信息。 2. **功能概述**:详细阐述了这些模块的基本功能,包括数据传输能力、网络兼容性、电源管理等,...
综上所述,本文档详细介绍了EC风机通过MODBUS通讯协议实现智能控制的方法,详细讲解了与MODBUS RTU相关的设置,通信参数和更新记录,以及如何读取和写入EC风机的寄存器来实现对风机转速的控制和参数的读取。...
- **配置**: 介绍如何在EC2实例上部署和配置WordPress博客。 #### 八、亚马逊系统映像(AMI) **8.1 使用AMI** - **选择**: 根据应用场景选择合适的AMI。 - **创建**: 用户可以创建自己的AMI,以便重复使用或分享给...
移远Quectel EC20 GNSS AT命令手册V1.1是一份详尽的技术文档,它主要介绍了EC20系列模块如何通过AT指令集来配置并使用全球导航卫星系统(Global Navigation Satellite System, GNSS)功能。EC20 GNSS AT命令手册不仅...
本指南将详细介绍如何利用EC800M-NC模块,通过MQTT协议连接到阿里云物联网平台,实现高效、稳定的消息订阅和发布功能。 一、EC800M-NC模组介绍 EC800M-NC是一款集成了物联网通讯功能的模组,特别适合于需要远程数据...