2

⛵️帆船书#19 | 分布式数据库

 2 years ago
source link: https://samperson1997.github.io/2020/02/09/dbsc19/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Blog of Samperson

⛵️帆船书#19 | 分布式数据库

2020-02-09

分布式数据存储与分布式事务

[1] 并行系统: 处理器紧密耦合, 组成单个数据库系统
分布式数据库系统: 松散耦合的站点, 不共享物理部件
每个站点处理局部事务, 事务访问的数据仅位于单个站点; 站点可以参与全局事务的执行, 全局事务访问多个站点的数据, 需要站点之间进行通信

[2] 同构数据库: 所有站点拥有共同的模式和数据库系统代码
异构数据库: 模式和系统代码可能不同

[3] 复制: 可用性, 增加并行读, 增加更新开销
复制提高读性能, 增加了对只读事务的可用性, 但是更新开销会增大
系统应该决定读请求引用哪个副本, 写请求更新所有副本

[4] 分片: 垂直分片和水平分片
元组的物理地址或逻辑地址可以用作tuple-id, 因为每个元组有唯一的地址

[5] 数据透明性: 分片透明性, 复制透明性, 位置透明性
系统应尽量减小用户需要了解关系如何存储的程度

[6] 保证名字唯一的方法

  • 所有名字在中央名字服务器中注册——缺点: 使用名字定位时, 名字服务器会成为性能瓶颈; 名字服务器崩溃, 系统中所有站点不能继续运行
  • 站点自身标识符作为前缀, 但无法实现位置透明性——解决: 为数据项创建别名, 别名和真实名字的映射可以存储在每个站点上, 用户无需了解数据项的物理位置

[7] 系统结构——每个站点包括两个子系统

  • 事务管理器: 维护用于恢复的日志; 参与并发控制方案, 协调站点上执行的事务并发执行
  • 事务协调器: 启动事务执行; 将事务分成子事务, 分派给合适的站点执行; 协调事务的中止, 可能导致事务在所有站点都提交或者都中止

[8] 故障: 与集中式系统相同类型的故障, 站点故障, 链路故障, 消息丢失, 网络划分

Catalog
  1. 1. 分布式数据存储与分布式事务
  2. 2. 提交协议

© 2017-2020 | Content by Samperson | Proudly powered by Hexo | Theme by yanm1ng


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK