分布式系统之数据复制,分布式事务,DDBMS

#继续分布式概念#

一.Data replicaiton in distributed systems数据复制

1.目的:增加data的可用性(对应CAP理论中的A);提升数据检索的速度

2.类型:

  • Synchronous Data replication(同步数据复制):原始数据存储发生一点微小的变化时,立即同步更新
  • Asynchronous Data replication(异步数据复制):在所有改变发生都结束后才会更新,不是同步的,会滞后

3.三种复制方式:1.full replication(全复制,更高数据可用性但更新操作效率低) 2.No replication(并发很好实现但数据可用性低) 3.Partial replication(一个均衡的方式,复制根据信息的重要性来控制)

二.Issue of distributed transactions

between a client (mostly software) and a data repository server.

事务是用于同时访问(和修改)共享数据的同步机制。

类似于商务谈判:首先,聚在一起,建立连接,谈判应该做什么;在谈判的任何时候,任何一方都可以退出;如果达成一致,各方都需要承诺。

Abort:事务失败

分布式事务:A transaction where operations involve multiple servers.(操作包含多个服务器)

必须要遵循ACP(atomic commit protocols):所有改变一起发生或一起不发生,保持原子性

如何让所有的服务器同时接收一个事务或者终止一个事务(同时)

  • 1.One-phase The coordinator keep requesting all participants to commit until they return an acknowledgment.◼ No chance of a participant(servers) to initiate an abort.(终止)【服务器本身是没有机会提出终止的】
  • 2.two-phase (1.让所有服务器投票 2.根据投票结果决定终止或进行)【服务器可以自行提出终止】If all participants answer yes (including the coordinator), the coordinator sends doCommit to all participants.

         在服务器投票阶段:有一个参与者返回失败,那么协调者就会向所有参与者发送回滚事务的请求,即分布式事务执行失败;

            在根据投票结果决定阶段:如果所有服务器都回复yes,协调器就会发doCommit,否则就会向投yes的服务器发送doAbort。  服务器就等待协调器的结果来进行行动,如果是doCommit,就会发送一个haveCommited的确认。

此时如果发生错误导致第二阶段提交失败:1.第二阶段执行的是回滚事务操作,那么答案是不断重试,直到所有参与者都回滚了,不然那些在第一阶段准备成功的参与者会一直阻塞着。

2.第二阶段执行的是提交事务操作,那么答案也是不断重试,因为有可能一些参与者的事务已经提交成功了,这个时候只有一条路,就是头铁往前冲,不断的重试,直到提交成功,到最后真的不行只能人工介入处理。

若协调者发送了doCommit,只有一个回应:Transaction is blocked until the participant resumes. Consistency is ensured because of transaction state being saved on stable storage.事务拥塞直到参与者修好后再次进入。

三.DDBMS——Distributed database management systems

DDBMS的三种结构:

1.Client-server architecture(客户端负责向服务器发送请求,服务器处理和存储数据。客户端和服务器通过网络进行通信。在分布式环境中,可以在不同站点上有多个服务器,客户端可以从任何一个服务器访问数据。)在centralised server system中用到

2.Collaborating server architecture(系统中的每个服务器可以处理数据的子集,并具有自己的处理能力。它们协作执行分布式事务并在分布式数据库中维护一致性和完整性。)

3.Middleware (中间件) architecture(中间件抽象了分布式环境的底层复杂性,并为应用程序提供了统一的接口,用于与分布式数据库交互。中间件可以处理各种任务,如数据分布、复制、缓存、事务管理和查询优化。)【需要一个服务器作为中间件,处理来自其他服务器的检索和事务,本地服务器就处理本地的检索和事务】

EG:SingleStore——Aggregator node(聚合器节点) is responsible for receiving SQL queries, breaking them down across leaf nodes, and combining results back for the client.

  • 22
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值