福州软件开发有限公司是一家专业从事软件开发、软件定制、App开发的软件公司。 新闻| 联系我们 咨询热线>>  135-1408-4304 手机端
不要使用多阶段提交_福州软件开发定制公司


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

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



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

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




相关文章
企业如何选择购买套餐软件建设?_福州软件开发定制公司
新闻动态加速档案软件开发人才的培养_福州软件开发定制公司
电子书推广的传播_福州软件开发定制公司
价值定位的逻辑之一:价值映射_福州软件开发定制公司
网站色彩搭配的速成知识_福州软件开发定制公司
软件开发服务器技术的选择_福州软件开发定制公司
企业网站如何做到规范化?_福州软件开发定制公司
知道的公众号推广方式也不少,如何快速有效增加关注度?_福州软件开发定制公司
Baidu spider抓取频次原则_福州软件开发定制公司
应用系统的可用性_福州软件开发定制公司
怎么建设个有特色的网站又符合自己主题呢?_福州软件开发定制公司
移动物联,下一个十年谁与争锋_福州软件开发定制公司
持续微创新,不走寻常路_福州软件开发定制公司
软件制作的关键技术优化点_福州软件开发定制公司
Windows NT Sorver_福州软件开发定制公司
电子商务的内涵_福州软件开发定制公司
为什么最后设计主页_福州软件开发定制公司
Web站点的典型内容_福州软件开发定制公司
网站的制作_福州软件开发定制公司
网站的创新才是硬道理_福州软件开发定制公司


福州软件开发定制公司专注于福州软件定制、福州外包、福州软件开发、管理软件/管理系统开发、微信开发、小程序开发          公司地址:福建省福州市仓山区浦上大道仓山万达广场C3#16F  联系电话:135-1408-4304

ONLINE SERVICES

咨询电话
135-1408-4304
在线客服
QQ咨询
QQ咨询
QQ咨询
服务时间
9:00 - 24:00