��ǰλ�ã�首页 > 集团企业

集团企业

不要使用多阶段提交

����:ʱ��:2019-04-13
不要使用多阶段提交协议来存储或处理事务。不要使用它。将数据存储和处理系统与Y轴或Z轴分开。应用程序原因A多阶段提交协议是一种阻止提议,在完成之前无法执行。不要使用多阶段提交协议作为实现整个数据库生命的简单方法。它可能会降低可扩展性,甚至可以提前终止系统的使用寿命。 TR TR 多阶段提交协议是专用共识协议,其中两阶段提交协议(2PC)和三阶段提交协议(3PC)是常见的。这些协议的目的是协调分布式原子事务中涉及的过程,并决定是提交还是终止(回滚)事务。由于这些算法可以处理整个系统网络或进程中的故障,因此它们通常用作分布式数据存储或处理的解决方案。 TR TR TR 2PC的基本算法包括两个阶段。第一阶段是投票阶段,其中主存储设备或协调器发起“提交请求”。所有参与者或其他存储设备。在提交之前,所有参与者都处理了交易,并且在提交之后,参与者将通知主存储或协调员他们能够提交或投票赞成。这将启动第二阶段,即完成阶段,其中主存储设备向所有参与者发送提交信号,并且参与者开始提交数据。一旦参与者未能提交,则回退信号被发送给所有参与者并且交易终止。 TR TR 到目前为止,该协议听起来相当不错,因为它提供了分布式数据库环境中事务的原子性。我们不要早点结束。它在步骤A中启动了事务。然后在主数据库告诉应用服务器事务完成(步骤C)之前完成所有2PC步骤(步骤B)。在整个过程中,应用程序服务器上的线程等待SQL查询完成,数据库响应事务。此示例非常常见,网络上的几乎所有用户都可以购买,注册或竞标交易,这可以通过2PC实现。但是,长时间锁定应用程序服务器会产生可怕的后果。即使您可能认为您的应用程序服务器具有足够的容量,或者因为应用程序服务器是商用硬件,您可以以较低的成本扩展它们,但也可以考虑在数据库端进行锁定。执行提交操作时,假设您正在使用行锁,则所有数据行都将被锁定,直到所有数据都已提交。如果使用块锁定,结果会更糟。我们已经大规模地实施了2PC协议,结果是灾难性的,这完全是由于该方法的锁定和等待特性。在实施2PC协议之前,数据库最初可以每秒处理数千次读写操作。在小型(少于Q%)的呼叫中吸引2PC后,整个站点只能处理以前交易的四分之一。即使我们可以添加更多应用程序服务器,网站构建数据库也无法处理更多查询,因为数据已被锁定。虽然2PC协议似乎是比Y轴或B轴更好的分割数据库的方法,但经过仔细考虑后可以发现许多问题。您需要以更好的方式拆分数据库表,而不是使用多阶段提交协议来延长单个数据库的生命周期。 TR  TR
���ű�ǩ: