网络下重思数据库高可用
摘要
高可用数据库系统常常使用用数据复制来达到容错的目的。
和
复制算法都是严重依赖于时延,网络常常成为性能的主要瓶颈。从某种意义上说,
这些技术旨在最小化副本之间的网络通信。然而,下一代网络的出现,以期高吞吐低延迟
的特性,使得需要重视这些假设。
首先提出,现代
网络使得瓶颈转向
,因此现代网络优化的复制技术不再是
最优选择。提出了一个新高可用机制
复制,充分利用
达到消除在复制
中处理多余工作的目的。使用
,所有
都将
能力专用于执行新事物,
而不是复制的冗余计算。当出现故障时,
通过基于
的
机制,维
护高可用和数据正确性。实验表明,
比第二种协议在
网络上快
倍。
引言
任何传统数据库系统都有一个关键功能:高可用。单机情况下,故障会导致数据库服
务不可用并且会造成数据丢失。高可用通常通过分布式数据复制来完成。主机上
会
复制到备机从而当主机故障时可以被备机替代。
传统分布式系统设计时针对的是:网络是服务性能的瓶颈。在同一个数据中心内通过
传统的
千兆以太网发送消息,例如,与访问本地内存相比,网络传输在高延迟和低带宽
上会差上
个数量级。高可用方法主要有
和
,这两种方法都是
为了优化网络负载。
随着下一代网络的出现,传统的高可用协议不再适用,尤其是在局域网环境中。基于
的网络,具有和主存相近的带宽,只有其
倍的高延迟。我们对
和
机制实验表明,现代
网络下,性能瓶颈转向
的计算负载。因此传统
网络优化高可用机制不再是最优的方案。需要设计新的协议全力释放
硬件的红利。
为此,我们提出
复制协议适配
硬件。在执行数据复制时,
优化目标在于最小化
负载而不是最小化网络负载。该机制核心思想:使用
单边特性,直接在远方备机上直接
记录,而不需要远程
的参与。这种设
计的挑战在于,备机
不参与复制协议下如何达到故障容错。为解决这个问题,我们设
计了意向新型的
,所有逻辑都由主机单方面执行。每
个事务经历两个阶段:(
)
和本地
(
)日志空间回收,其中每个
都由单独的
写来执行。我们证明了在不同故障场景下该机制的正确性。和
、
相比,
快两倍。
本文贡献如下:
重视下一代网络上传统高可用协议,证明优化网络负载不再是最合适的设计目标。
提出
协议,部署在
高速网络上。
评论