2020年,你需要一个全网通用的网站平台

阿拉尔建站谈不要使用多阶段提交

编辑:阿拉尔新城建站 关注: 时间:2019-12-17 11:14:28


温馨提示:专业网站建设、小程序制作、APP开发,尽在新城建站,详询 15544599750(手机、微信、QQ同号)

文前导读:

阿拉尔建站谈xDSL技术

阿拉尔网络优化分享利用页面缓存

阿拉尔SEO分享尽可能减少对象

阿拉尔小程序分享防火墙,到处都是防火墙

不要使用多阶段提交协议存储或处理事务。不要使用它。用Y轴或Z轴划分分割数据存储和处理系统。应用理由:多阶段提交协议是一种阻断提议,在它完成之前,其他事务不能执行。不要将多阶段提交协议作为廷长整体数据库生命的简单方式。它很可能降低扩展性,甚至更早地终止系统的寿命。

多阶段提交协议是专用的共识协议,其中常见的是两阶段提交协议(2PC)和三阶段提交协议(3PC)。这些协议的目的是协调参与分布式原子事务的进程,决定是提交还是终止(回退)事务。由于这些算法能够处理整个系统网络或进程方面的故障,所以它们常被当作分布式数据存储或处理的解决方案。



2PC的基础算法由两个阶段构成。第一个阶段是表决阶段,即主存储设备或协调程序向所有参与者或其他存储设备发起“提交请求”。在提交前,所有参与者都处理事务,提交后参与者会告知主存储或协调程序它们能够提交了,或者投赞成票了。这就可以开始第二阶段了,即完成阶段,主存储设备给所有参与者发送提交信号,参与者们开始提交数据。只要有参与者提交失败,回退信号就会发送给所有参与者,事务将被终止。

到目前为止,该协议听起来相当不错,因为在分布式数据库环境中提供了事务的原子性。暂且不要这么早下结论。它在步骤A中发起了事务。那么在主数据库告知应用服务器事务完成(步骤C)前,所有的2PC步骤都要完成(步骤B)。在整个过程中,应用服务器上的线程都要等待SQL查询结束,且数据库响应了这一事务。这一示例非常常见,网络上几乎所有的用户购买、注册或竞价的事务,都可能用2PC实现。但是,把应用服务器锁住那么久,会造成可怕的后果。即使你可能认为自己的应用服务器还有充足的容量,或者由于应用服务器是商用硬件,可以用较低的成本扩展它们,但还要考虑锁定同样会发生在数据库端。在执行提交操作时,假设你采用的是行锁,那么在所有数据提交完之前,所有的数据行都会被锁住。如果采用的是块锁,结果会更糟我们已经大范围地实现了2PC协议,结果是灾难性的,这要完全归昝于该方法的锁定和等待特性。在实现2PC协议前,数据库最初每秒可以处理几千个读操作和写操作。在一小部分(少于20%)调用中引人了2PC后,整个站点能处理的事务量只有以前的1/4。即使我们能增加更多的应用服务器,但由于数据被锁定了,网站建设数据库也不能处理更多的查询。虽然2PC协议看起来是个比Y轴划分或乙轴划分更好的分割数据库的方法,但仔细考虑后就会发现很多问题。要用更好的办法拆分数据库表,而不是用多阶段提交协议延长单一数据库的生命。


拓展阅读:

阿拉尔建站谈xDSL技术

阿拉尔网络优化分享利用页面缓存

阿拉尔SEO分享尽可能减少对象

阿拉尔小程序分享防火墙,到处都是防火墙

阿拉尔网络优化分享iis 安装准备

阿拉尔网站建设公司谈网络商务信息的研究

阿拉尔建站分享避免让消息总线过度拥挤

阿拉尔SEO谈删除事务处理中的商业智能

本文由新城建站整理发布,喜欢请收藏,转载请保留链接 阿拉尔建站谈不要使用多阶段提交https://www.nccpu.net/xinjiang/alaer/29131.html

服务支持

我们珍惜您每一次在线询盘,有问必答,用专业的态度,贴心的服务。

让您真正感受到我们的与众不同!