内容提要
Facebook使用网络时间协议(NTP)和精确时间协议(PTP)在其数百万台服务器上实现了时间精确度。NTP帮助在网络上同步时钟,而PTP提供更高的准确性。PTP利用硬件时间戳和透明时钟来改善网络中的一致性和对称性。Facebook的PTP架构包括PTP机架、PTP网络和PTP客户端。采用PTP使Facebook实现了纳秒级精度,并改善了系统的各个方面,如元宇宙中的事件追踪和延迟补偿。
延伸解读
从NTP到PTP:精度提升的驱动力
Facebook最初使用NTP将时间同步精度从10毫秒提升到100微秒,但随着元宇宙等应用对时间精度的要求提高,NTP的异步性和物理时钟方法导致延迟和方差,无法满足需求。PTP通过硬件时间戳和透明时钟,将精度提升至纳秒级,比NTP精确约100倍,从而支持事件追踪、缓存失效等高级用例。
PTP架构的核心组件与设计
Facebook的PTP架构包括PTP机架、PTP网络和PTP客户端。机架中的时间设备利用原子钟和GNSS信号提供高精度时间,自定义的ptp4u服务器软件支持超过100万客户端。网络采用单播PTP和透明时钟,避免边界时钟以降低复杂性。客户端使用增强的ptp4I和fbclock API,提供时间不确定窗口,确保应用获取可靠时间。
实际影响:从数据一致性到元宇宙
精确时间同步解决了分布式系统中的数据一致性问题。例如,用户发布状态后,查看请求可能由不同服务器处理,PTP确保服务器时钟紧密同步,只需等待服务器追上发布时间戳,无需多服务器投票,节省资源并降低延迟。此外,PTP还支持事件追踪、缓存失效、隐私违规检测和元宇宙中的延迟补偿,提升了系统整体性能。
Q&A
Facebook是如何实现服务器时间同步的?
Facebook使用网络时间协议(NTP)和精确时间协议(PTP)来实现服务器时间同步。
PTP相比于NTP有什么优势?
PTP提供纳秒级的时间精度,而NTP只能提供毫秒级的精度,PTP在大规模系统中更有效。
Facebook的PTP架构包含哪些主要组件?
Facebook的PTP架构包括PTP机架、PTP网络和PTP客户端。
什么是时间跳跃(leap second)?
时间跳跃是为了保持时钟与地球自转同步而偶尔添加或移除的一秒钟。
Facebook如何处理时间跳跃对服务器的影响?
Facebook使用“涂抹”(smearing)技术,逐渐调整时间以减少时间跳跃对服务器的影响。
PTP如何提高时间同步的准确性?
PTP通过硬件时间戳和透明时钟来提高时间同步的准确性,减少延迟影响。