Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[clock] add a built-in NTP client implementation
This adds a stripped-down implementation of built-in NTP client without any reliance on the kernel NTP discipline. This initial implementation doesn't have all the necessary sanity checks for true time that RFC-compliant client would have and doesn't implement everything from RFC5905. However, this implementation is good enough for running with well behaved and properly configured reference NTP servers such as servers from pool.ntp.org, other public-domain NTP services, and properly configured NTP servers in local network. This is a first step on the road to eventually have robust and RFC-compliant Kudu's own NTP client that is able to detect and reject misbehaving and rogue reference NTP servers. For Kudu, this should hopefully make it easier for users to configure NTP even if they don't have root, and also can maintain better clock error than the system implementation, since we can prioritize low error bounds rather than low jitter. This patch doesn't have the knobs to control error vs jitter yet, though. This patch also contains tests to verify the newly introduced functionality in scenarios when the built-in NTP client is pointed to various combinations of properly configured NTP servers or unintentionally misconfigured/unavailable ones. Change-Id: Ieb9eee9f0334236f39617492bd6f01304d1a0255 Reviewed-on: http://gerrit.cloudera.org:8080/7477 Reviewed-by: Adar Dembo <adar@cloudera.com> Tested-by: Alexey Serbin <aserbin@cloudera.com>
- Loading branch information