time|NVIDIA助力Facebook新一代计时系统实现精确计时

Facebook正在开放其开源计算项目——时间设备项目(OCP TAP)的源代码,该项目以经济高效的方式提供高度精确的计时功能,以及跨数据中心时间同步功能。在NVIDIA ConnectX-6 Dx网卡(NIC)的支持下,这项解决方案中的Time Card通过精确计时协议,可以将几乎所有商用现成的(COTS)服务器变成精确的计时设备,与整个数据中心内的其他服务器共享精确计时。
time|NVIDIA助力Facebook新一代计时系统实现精确计时
文章插图
NVIDIA ConnectX网卡助力社交网络关键任务的分布式应用实现精确计时功能
Facebook Time Card和NVIDIA网卡这对组合为数据中心运营商提供了一个先进和低成本的时间同步解决方案,并且该解决方案具有开源、安全、可靠和可扩展等特点。
精确的时间为什么对于数据中心至关重要
随着应用的扩展并且IT运营遍布全球,保持数据中心内不同服务器,或位于各大洲不同数据中心的数据同步,变得更加重要和困难。分布式数据库必须追踪事件的确切顺序以保持一致性并显示因果关系。如果有两个人试图购买同一只股票,那么根据公平性(和合规性)原则,就必须知道买单的先后顺序。同样,当每小时有上千万人发布内容,数百万用户喜欢/称赞/喜爱这些帖子时,Facebook必须知道每个帖子、每次点赞、每条回复或每个表情符号的实际发生顺序。
保持数据同步的方法之一是让每个数据中心在每件事务操作完成后向其他中心发送更新,但由于数据中心之间的延迟太高,以至于无法支持每小时数百万个事件,这种做法很快就变得无法维持。
更好的方法是让每个服务器和数据中心同步到精确的时间,使彼此之间的时间误差不超过一微秒。这样每个站点都能追踪时间,并且当它们与其他数据中心共享事件时,能够正确排序每个事件。
时间同步越精确,应用性能就越快。最近的一项测试表明,将计时精度提高80倍(将任何时间差异减小80倍)能够使分布式数据库的运行速度提高3倍。在相同的服务器硬件上仅仅通过提高更精确和更可靠的时间就能实现显著的性能提升。
网卡和网络在时间同步中的作用
OCP TAP项目(以及Facebook关于开源时间设备的博客文章)确切地定义了Time Card如何接收和处理来自GPS卫星网络的时间信号,即使在卫星信号暂时不可用时,也能保持精确的时间并与时间服务器共享这一精确的时间。同时,网络以及所使用的网卡也发挥着至关重要的作用。
time|NVIDIA助力Facebook新一代计时系统实现精确计时
文章插图
OCP Time Card保持精确的时间并与支持PPS输入/输出的网卡(如NVIDIA ConnectX-6 Dx)共享这一时间(资料来源:Facebook工程博客)
时间设备中的网卡必须有一个用于连接Time Card的每秒时间脉冲(PPS)端口。这能确保每个时间服务器中Time Card和网卡之间的精确时间同步(精确到几纳秒之内)。ConnectX-6 Dx是首批支持此功能的现代25/50/100/200Gb/s网卡之一。它还能过滤和检查传入的PPS信号,并使用其ASIC中的硬件在内部维护时间,从而确保精确性和一致性。
【 time|NVIDIA助力Facebook新一代计时系统实现精确计时】计时精度达到次微秒级的时间装置可以与数百个使用网络时间协议(NTP)的普通服务器或数万个使用精确时间协议(PTP)的服务器共享该计时。由于网络会增加时间信号的延迟,因此NTP和PTP通过为数据包添加时间戳来测量两个方向的传输时间、将抖动和延迟考虑在内并计算出每个服务器上的正确时间(PTP的精度更高,因此它开始取代NTP协议)。
time|NVIDIA助力Facebook新一代计时系统实现精确计时
文章插图