分布式数据库【3、关于持久消息的应用背景、及2PC的关系、并发控制】

我们知道,2PC容易在协调器失效的情况下容易产生阻塞,也就是2PC提交的阻塞问题是不能够接受的;另外一种解决方案是采用持久消息persisent msg来解决问题;

场景分析:

1、2个银行的转账操作,一种方案是采用分布式事务,然而该事务容易产生阻塞问题;另外一种方案是采用支票进行转账;银行A首先从可用的余额内扣除支票金额,然后派送支票,然后银行B接受支票,更新可用余额,支票则形成了一次消息传递,要求消息(支票)不能够复制、丢失、或者存入多次;


持久消息(persitent msg)是这样的消息:当发送该消息的事务提交,则不管是否发生故障,都能够保障传送给接受者恰好一次(不多不少);如果该事务终止,则消息不传递;

持久消息的处理比2PC负责,如果接受者(银行B)账户关闭,则支票需要退回处理,两个站点都需要复杂的错误处理代码集处理持久消息的代码;相反,2PC的错误则可以被事务检测到,不会扣除银行A的资金;

可能出现异常情况类型取决于应用,数据库无法处理【理解】,因此,发送与接收持久性消息的app需要包括处理异常情况的代码,并能够是系统恢复至一致的状态【理解】;


工作流提供一种通用的事务处理模型,持久消息在分布式环境中形成了工作流的基础。


持久消息的实现:持久消息通过相关的协议保障在不可靠的传递架构上进行传递,从而保障消息的不丢失、不多次传递等;


分布式数据库并发控制

1、锁管理器方式:单一锁管理器(集中唯一的全局锁管理器,存在瓶颈、脆弱性)、分布式锁管理器(容易产生全局死锁)

2、多数协议等

3、时间戳:每个事务被赋予唯一的时间戳,系统利用时间戳确定串行化顺序(关注全局时间戳的产生)

4、弱一致性级别的复制


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值