• @[email protected]
    link
    fedilink
    English
    29 months ago

    I hate time. The more I learn about time the more I hate it.

    At this point I know enough to know that all time is wrong. Your watch, wrong. Your phone, wrong. Your computer, also wrong.

    I’m an IT guy and having accurate time is very important to keep things moving correctly, but systems inherently have a problem when things happen “in the future” (from their perspective)… Even if it’s only by a few milliseconds… So when dealing with large scale systems having accurate time sync across systems is extremely important. It becomes extremely hard to do that at any kind of scale. Even having a handful of systems stay in sync is difficult, nevermind hundreds or more, and accurate time keeping is basically an impossibility without extremely expensive add-ons, and even then, it’s still very hard.

    Sure, most time sources are only off by less than a second and for most purposes, that’s fine. For example, your phone syncing to your mobile networks time service and being 10ms off from the actual time isn’t something that’s going to affect your day, but it could substantially affect how quickly you can access things. The endpoint you’re trying to interface with may see that you’re sending a request from the future and have to wait until your future request enters the present before your request is processed and replied to… Sure, 10ms isn’t much of a delay, but still… And what happens when the remote system is behind by 10ms? Your wait time is now doubled. Good job stupid. Update your clock.

    The most common way for systems to sync on the internet is ntp, which usually relies on a skew time determined by ping; so if your ping round-trip time is 5ms, it adds 2.5 ms (the one-way delay) to the time it received, this is mostly accurate, but the path to, and from, a location can be quite different, and your request may get there in 1ms, and take 4ms to return. Or vice versa. Or the route may change between the ping and the ntp request, or change between sending the request and getting the reply… Skewing the numbers even further.

    Time is always wrong.

    All of the examples so far, assume that the time source is 100% accurate, which it often isn’t.

    Time is always wrong!

    The only thing you can be assured of is that a broken clock will be right twice a day. Everything else is some amount of incorrect.