Hybrid Logical Clocks: Repairing Time in Distributed Systems