分布式数据库系统

分布式数据库系统 (Distributed Database System, DDBS) 是指将一个大型数据库系统分割成多个部分,分布在不同的计算机节点上,并通过网络连接进行通信和协作,以提高数据库系统的性能、可用性和可伸缩性。

分布式数据库系统目标

分布式数据库系统的主要目标是为了适应现代组织的分布式特性和不断增长的数据需求,提高数据管理和访问的效率。具体来说,分布式数据库系统旨在实现以下目标:

现代组织通常具有地理上分散的部门和分支机构。分布式数据库系统允许将数据存储在多个地理位置,满足组织分布式的特点。这样可以降低数据传输和管理的成本,提高数据访问的效率。

通过将数据分布在多个节点上,并采用数据复制、数据分片等技术,分布式数据库系统可以提高数据的并发访问能力和吞吐量。这有助于充分利用数据库资源,提高资源利用率。

随着业务发展,数据量会不断增长。分布式数据库系统可以通过增加节点、增加存储容量等方式,水平扩展系统的处理能力和存储能力,满足不断增长的数据需求。

分布式数据库系统还可以采用负载均衡等技术,平衡节点之间的负载,提高系统的可扩展性和整体性能。

通过数据复制和故障转移等机制,分布式数据库系统可以提高数据的可用性和系统的容错能力,确保在节点故障时仍能正常访问数据。

分布式数据库系统特点

数据分片是一种将大型数据集分散存储在多个节点上的技术。采用数据分片具有以下优势:

分布透明性

分布透明性是分布式系统中一个重要的概念,指的是系统的用户无需了解数据存储和分布的内部细节,就可以像使用本地数据库一样便捷地访问分布式数据库系统。具体来说:

  • 用户不需要知道数据存储在哪个节点上,数据的物理位置对用户是透明的
  • 用户不需要关心数据是如何在不同节点之间分布和存储的,数据分布机制对用户是透明的
  • 用户无需了解分布式系统的内部架构和实现细节,可以像使用单机数据库一样使用分布式数据库系统
  • 分布透明性使得分布式系统对用户来说就像是一个单一的逻辑整体,极大地简化了分布式系统的使用和管理。这种透明性是分布式系统设计的一个重要目标,有助于提高系统的可用性和易用性。
 分布透明性

复制透明性

复制透明性是分布式系统中另一个重要的概念,指的是系统的用户无需关心数据的复制和同步情况,也无需关心数据是否有多个副本,分布式数据库系统中多个节点之间的数据副本对用户是透明的。具体来说:

  • 用户不需要知道数据是否被复制到多个节点上,数据复制机制对用户是透明的
  • 用户不需要关心数据副本之间的同步情况,数据同步机制对用户是透明的
  • 用户无需了解分布式系统中数据复制和同步的实现细节,可以像使用单机数据库一样使用分布式数据库系统
  • 复制透明性使得分布式系统中的数据复制和同步对用户来说是不可见的,从而简化了分布式系统的使用。这种透明性有助于提高系统的可靠性和容错性,因为即使某些节点发生故障,用户仍然可以正常访问数据。
 复制透明性

易于扩展性

易于扩展性是分布式数据库系统的一个重要特性,指的是分布式数据库系统可以根据需求,通过增加节点或增加硬件资源来进行水平或垂直扩展,以提高系统的性能和容量,满足不同的业务需求和负载变化。具体来说:

  • 水平扩展:通过增加更多的节点来扩展系统的计算能力和存储容量,从而提高系统的整体性能和吞吐量。这种扩展方式被称为"Scale Out"。
  • 垂直扩展:通过增加单个节点的硬件资源(如 CPU、内存、磁盘等)来提高单个节点的性能,从而提高整个系统的性能。这种扩展方式被称为"Scale Up"。
  • 分布式数据库系统的易于扩展性使其能够根据业务需求的变化灵活地调整系统规模,满足不断增长的性能和容量需求,而无需停机或重新设计系统架构。这种灵活性对于现代大规模 Web 应用程序至关重要,可以有效应对不断变化的用户负载和数据量。
 易于扩展性

亚马逊云科技中国峰会

6 月 19 日 - 20 日|上海世博中心

聚焦生成式 AI 从技术爆发迈向行业深耕的跨越

分布式数据库系统优缺点

分布式数据库系统是一种将数据分散存储在多个节点上的数据库架构。相比传统的集中式数据库系统,分布式数据库系统具有以下优缺点:

优点

灵活的体系结构:分布式数据库系统可以根据实际需求和环境选择不同的架构和技术,以适应不同的业务需求和数据类型。例如,可以采用主从复制、分片等架构,或结合关系型和非关系型数据库等技术,从而提高系统的灵活性。 高可靠性和可用性:分布式数据库系统通过数据副本机制,将数据复制到多个节点,当某个节点发生故障时,其他节点可以接管其工作,确保数据和服务的高可用性。用户无需关注故障节点,只需访问整个系统即可,从而提高了系统的可靠性。 可扩展性:分布式数据库系统可以通过水平扩展(增加更多节点)或垂直扩展(升级单个节点的硬件资源)的方式满足不断增长的业务需求,具有良好的可扩展性。

优点

缺点

复杂性:分布式数据库系统涉及多个节点之间的通信、协调和数据一致性等问题,增加了系统的复杂性和管理难度。需要专门的技术人员进行设计、开发和维护。 成本高:分布式数据库系统需要更多的硬件资源(服务器、存储等)、网络带宽以及人力成本,总体运营成本较高。 数据分布不均:由于数据分布在多个节点,可能导致数据分布不均匀,从而影响查询效率。需要合理的数据分片策略来解决这个问题。

缺点

分布式数据库系统的架构

分布式数据库系统主要有三种架构类型:共享内存、共享磁盘和共享无 (sharednothing)。共享内存和共享磁盘架构不对数据进行分区,而共享无架构则对数据进行分区。在实践中,数据库的不同层可以采用不同的架构,例如计算层采用共享无架构,存储层采用共享磁盘架构,如某些云数据库系统所示。

分布式数据库还可以采用"数据库中心"架构,通过利用共享数据库实现分布式计算,而无需直接进程间通信。这种架构可以在关系模式架构中提供关系处理分析,允许实时环境中继。

分布式 SQL 处理由某些系统实现,允许网络连接的关系数据库协作完成SQL请求。然而,SQL在某些方面偏离了关系模型的元组演算。

分布式数据库系统的一致性保证

分布式数据库系统中的一致性保证是一个重要的设计考量。在分布式环境下,数据通常被复制和存储在多个节点,需要确保不同节点之间的数据保持一致。

CAP 定理与最终一致性

根据 CAP 定理,分布式系统只能同时满足一致性 (Consistency)、可用性 (Availability) 和分区容错性 (Partition Tolerance) 中的两个。许多 NoSQL 数据库选择牺牲强一致性,转而采用"最终一致性"模型,以获得更高的可用性和分区容错能力。这意味着在短时间内,不同节点上的数据可能存在不一致,但最终会收敛到一致状态。

CAP 定理与最终一致性

某些数据库的 ACID 保证

与此相反,某些数据库旨在提供与传统关系型数据库相同的 ACID 保证,同时具备 NoSQL 系统的可扩展性能。这些数据库通过复制和复制技术,确保分布在不同位置的数据保持一致。这种强一致性对于关键数据(如金融记录)来说至关重要,但代价是牺牲了一定的性能和可用性。

某些数据库的 ACID 保证

强一致性与最终一致性

分布式数据库系统可以提供强一致性或最终一致性保证,这取决于具体应用的需求和权衡。强一致性(同步复制)确保所有应用程序和用户看到的是相同的最新数据值,但会影响性能和数据访问速度。而最终一致性(异步复制)允许更快地访问数据,尽管短时间内可能会看到过期的数据副本。

强一致性与最终一致性

一致性协议与耦合

为了实现数据一致性,分布式系统通过通信协议和规则在组件之间创建依赖关系,即耦合。强一致性通常需要更紧密的耦合,而最终一致性则允许更松散的耦合。设计人员需要根据应用场景,权衡一致性、性能和可用性,选择合适的一致性模型。

一致性协议与耦合

分布式数据库系统的容错能力

分布式数据库系统通过在多个节点上复制数据来实现容错能力。每个数据块都会被复制到多个(通常是三个)节点上存储。即使某些节点发生故障,数据仍然可以在其他节点上被访问到,从而确保了系统的可用性。主节点会定期与其他节点通信,跟踪数据块的位置,但并不精确地维护这些位置信息,这有助于提高系统的可扩展性。

除了数据本身的复制,分布式数据库系统还会对元数据(如文件到数据块的映射关系)进行冗余存储。元数据通常存储在主节点的内存中,并被记录到磁盘上的操作日志中,该日志会被复制到远程机器。这种元数据冗余机制进一步增强了系统的容错能力。

分布式数据库系统能够自动管理跨所有节点的数据一致性,确保即使部分节点发生故障,数据也不会出现不一致的情况。这种自动化的一致性管理为容错能力提供了保障。

分布式系统通常会定期对应用程序状态进行检查点,将状态信息保存下来。一旦发生故障,系统可以自动从最近的检查点恢复执行。此外,系统还支持按需创建保存点,保存一致的执行状态快照,以实现停止、恢复、更新或分支等操作,同时保留应用状态。这些检查点和保存点机制都是异步的,不会中断应用程序的处理。

欢迎加入亚马逊云科技培训中心

从 0 到 1 轻松上手云服务,获取更多官方开发资源及培训教程

快速上手训练营

第一课:亚马逊云科技简介

本课程帮助您初步了解云平台与本地环境的差异,以及亚马逊云科技平台的基础设施和部分核心服务,包括亚马逊云科技平台上的弹性高可用架构,架构设计准则和本地架构迁移上云的基本知识。

亚马逊云科技技术讲师:李锦鸿

第二课:存储与数据库服务

您将在本课程中学习到亚马逊云科技上的三个存储服务分别是什么。我们也将在这个模块中为您介绍亚马逊云科技上的关系型数据库服务 Amazon Relational Database Service (RDS)。

亚马逊云科技资深技术讲师:周一川

第三课:安全、身份和访问管理

在这个模块,您将学习到保护您在亚马逊云科技上构建的应用的安全相关知识,责任共担模型以及身份和访问管理服务, Identity and Access Management (IAM) 。同时,通过讲师演示,您将学会如何授权给 EC2 实例,允许其访问 S3 上的资源。

亚马逊云科技技术讲师:马仲凯

了解更多入门学习计划 »

快速上手训练营

账单设置与查看

账单设置与查看

动手实操

快速上手云上无服务器化的 MySQL 数据库

本教程将引导您创建一个Aurora Serverless 数据库并且连接上它。

部署时间:10 分钟

启动一台基于 Graviton2 的 EC2 实例

本教程将为您讲解如何在云控制台上启动一台基于 Graviton2 的 EC2 实例。

部署时间:5 分钟

使用 Amazon Systems Manager 进行云资源统一跟踪和管理

在这个快速上手教程中,您将学会如何使用 Amazon Systems Manager 在 Amazon EC2 实例上远程运行命令。

部署时间:10 分钟

查看更多教程 »

动手实操

立即注册,免费试用 Amazon EC2 T4g 实例

新老用户现可享受每月 750 小时的免费 t4g.small 实例使用时长,优惠期至 2025 年 12 月 31 日!

打开中国区账号注册页面

进入页面后,按照界面提示填写 您的有效邮箱 信息进行邮箱验证,输入邮箱收到的验证码。

立即开始注册 »

image

填写用户名密码

首先设置您的 账号用户名,再为您的帐号 设置密码,最后重新 输入密码。

立即开始注册 »

图片

完善您的企业信息

公司名称请务必与您所提供的营业执照公司名称保持一致,填写贵公司的所在地信息。

立即开始注册 »

图片

企业信息验证

填写 企业信息 并上传 公司营业执照、网络安全负责人的有效身份证件信息,并进行身份验证。

立即开始注册 »

图片

手机验证与支持计划

填写 手机号发送验证码,进行身份验证。

根据需求 选择一个支持计划

一切就绪,开启您的云上之旅吧!


*如有问题请咨询:

1010 0966 西云数据运营宁夏区域

1010 0766 光环新网运营北京区域

立即开始注册 »

图片