网站设计公司易捷网络:专注企业网站设计

不要使用多阶段提交

来源:易捷网站设计公司     时间:2018-10-29
不要使用多阶段提交协议存储或处理事务。不要使用它。用Y轴或Z轴划分分割数据存储和处理系统。应用理由:多阶段提交协议是一种阻断提议,在它完成之前,其他事务不能执行。不要将多阶段提交协议作为廷长整体数据库生命的简单方式。它很可能降低扩展性,甚至更早地终止系统的寿命。
多阶段提交协议是专用的共识协议,其中常见的是两阶段提交协议(2PC)和三阶段提交协议(3PC)。这些协议的目的是协调参与分布式原子事务的进程,决定是提交还是终止(回退)事务。由于这些算法能够处理整个系统网络或进程方面的故障,所以它们常被当作分布式数据存储或处理的解决方案。
2PC的基础算法由两个阶段构成。第一个阶段是表决阶段,即主存储设备或协调程序向所有参与者或其他存储设备发起“提交请求”。在提交前,所有参与者都处理事务,提交后参与者会告知主存储或协调程序它们能够提交了,或者投赞成票了。这就可以开始第二阶段了,即完成阶段,主存储设备给所有参与者发送提交信号,参与者们开始提交数据。只要有参与者提交失败,回退信号就会发送给所有参与者,事务将被终止。
到目前为止,该协议听起来相当不错,因为在分布式数据库环境中提供了事务的原子性。暂且不要这么早下结论。它在步骤A中发起了事务。那么在主数据库告知应用服务器事务完成(步骤C)前,所有的2PC步骤都要完成(步骤B)。在整个过程中,应用服务器上的线程都要等待SQL查询结束,且数据库响应了这一事务。这一示例非常常见,网络上几乎所有的用户购买、注册或竞价的事务,都可能用2PC实现。但是,把应用服务器锁住那么久,会造成可怕的后果。即使你可能认为自己的应用服务器还有充足的容量,或者由于应用服务器是商用硬件,可以用较低的成本扩展它们,但还要考虑锁定同样会发生在数据库端。在执行提交操作时,假设你采用的是行锁,那么在所有数据提交完之前,所有的数据行都会被锁住。如果采用的是块锁,结果会更糟我们已经大范围地实现了2PC协议,结果是灾难性的,这要完全归昝于该方法的锁定和等待特性。在实现2PC协议前,数据库最初每秒可以处理几千个读操作和写操作。在一小部分(少于20%)调用中引人了2PC后,整个站点能处理的事务量只有以前的1/4。即使我们能增加更多的应用服务器,但由于数据被锁定了,网站建设数据库也不能处理更多的查询。虽然2PC协议看起来是个比Y轴划分或乙轴划分更好的分割数据库的方法,但仔细考虑后就会发现很多问题。要用更好的办法拆分数据库表,而不是用多阶段提交协议延长单一数据库的生命。
深圳网站设计公司易捷网络科技是一家专业从事深圳网站建设和深圳网页设计的深圳网络公司,主要经营的业务有:深圳网站建设、网页设计、网站推广优化、企业邮箱申请、网站域名空间备案。欢迎来电咨询(微信同号):13714247375
返回上一级
您可能需要:
网站设计图标
企业网站设计
高速稳定的国内空间,免费备案的香港、国外空间,单线、双线以多线空间
点击咨询
关键字推广优化图标
网站推广优化
指定网站关键词,确保一月之内优化到搜索引擎得首页,到首页之后再收费
点击咨询
企业邮箱图标
企业邮箱申请购买
以企业官网后缀为名称的邮箱,彰显公司企业形象,先试用,满意后再付款
点击咨询
国徽图标
网站域名空间备案
域名空间提交国家工信部备案审核,十五天即可完成,网站备案实名势在必行
点击咨询
网站设计相关资讯推荐
电商网站如何进行网络推广
网站外链建设需要注意什么
企业网站制作开发需要注意的五大环节
如何确定公司网站的设计风格
网站优化之关于个人网站的一些小知识
10个小提示,使文本效果变得更好!(上)
面包屑导航优化
原创文章对网站关键词排名的影响
Ajax技术是什么
设计网站使用什么颜色搭配最合适
移动电子商务技术是什么
网站设计的精髓在于细节雕琢
怎样进行网站的需求分析
图片如何营造最佳用户体验
全国型家教网站建设成本探底
QQ在线咨询
 
金亚洲打不开