Coursera 笔记

Module 01 · Introducing NoSQL

Distributed Databases分布式数据库概述

Coursera ↗

欢迎观看关于 分布式数据库 的介绍视频。通过本视频,您将能够描述分布式数据库的概念,定义数据的碎片化和复制,并描述分布式系统的优势与挑战。


 分布式数据库概念

分布式数据库 是多个相互连接的数据库的集合,这些数据库物理上分布在不同的位置,并通过计算机网络进行通信。分布式数据库通过 碎片化(Fragmentation) 和 复制(Replication) 将数据分布到各个数据站点。

分布式数据库遵循 BASE 一致性模型,这意味着系统优先保证数据的 可用性,而牺牲了部分一致性。


 数据碎片化(Fragmentation)与复制(Replication)

数据碎片化(Fragmentation)

为了将大数据存储在分布式系统的所有服务器上,需要将数据拆分成更小的部分,这个过程称为碎片化(也称为数据分区或数据切分)。

  • 按键值分组:通过键的字母顺序进行分组。例如,所有以 A 开头的键或在 A 到 C 之间的键可以存储在特定的服务器上。
  • 按记录的相同键分组:例如,某商店的所有交易记录可以根据商店 ID 进行分组,将所有相关记录存储在同一服务器上。

这种碎片化方式使得查询操作能在特定节点上高效执行,例如,查询某商店的所有销售记录时,所有相关记录都在一个服务器上。

数据复制(Replication)

如何确保在一个节点故障时数据不会丢失?这就是 复制 的作用,数据的所有碎片或分区会在两个或多个站点上冗余存储。复制 提高了数据的可用性。

  • 冗余存储:如果一个节点失败,丢失的数据可以从另一个节点恢复。
  • 同步问题:复制会带来数据同步的挑战。任何在一个站点的修改都需要同步到所有存储该数据的其他站点,否则会导致不一致。

 分布式数据库的优势

  1. 更高的可靠性和可用性:
    • 数据被复制存储在多个站点上,如果一个本地服务器不可用,可以从其他可用服务器检索数据。
  2. 性能提升:
    • 特别是在处理大量数据时,查询处理时间得以减少,从而提升整体性能。
  3. 可扩展性:
    • 可以通过向集群中添加新服务器来轻松扩展系统容量,实现按需扩展。
  4. 持续运行:
    • 分布式系统不再依赖中央站点,即使某些节点不可用,系统也能继续运行。

分布式数据库帮助解决了许多现代应用服务的技术难题,如 高可用性、快速扩展 和 全球覆盖。


 分布式数据库的挑战

  1. 并发控制:
    • 由于相同数据存储在多个位置,如何确保数据的一致性?修改、更新或删除数据时,如何保证同步?
  2. 数据同步:
    • 为了解决并发控制问题,一些分布式数据库将操作定向到特定数据碎片的一个节点,其他节点进行同步。
    • 也有一些系统会将写操作同步到所有相关节点,从而确保一致性。
  3. 事务支持:
    • 由于并发控制问题,分布式数据库通常不支持事务,或者只提供非常有限的事务支持。由于数据同步的延迟,分布式数据库的事务处理较为复杂。

BASE 一致性模型:

分布式数据库通常遵循 BASE 一致性模型,即 始终可用,数据可能在某些时刻不一致,但最终会达到一致性。


 总结

通过本视频,您了解了:

  • 分布式数据库 是通过 碎片化 和 复制 将数据物理分布到不同的数据站点。
  • 碎片化 使得可以将大型数据集分散存储在分布式系统的所有服务器上。
  • 复制 确保了数据的冗余存储,提高了数据的可用性,确保在某个节点故障时能够从其他节点恢复数据。
  • 分布式数据库提供了多个优势,如 高可用性、性能提升 和 可扩展性,但也面临并发控制和事务支持等挑战。
  • 分布式数据库通常遵循 BASE 一致性模型,强调数据的可用性而牺牲一致性。