In her hit song, Cher sang, "If I could turn back time." For her, that would be a good thing. But in the computing world, Meta, formerly Facebook, believes it would be a very bad thing indeed. In fact, Meta wants to get rid of leap seconds, which keep computing time in sync with Earth's rotational time.
Meta's not the only one that feels that way. The US National Institute of Standards and Technology (NIST), its French equivalent (the Bureau International de Poids et Mesures or BIPM), Amazon, Google, and Microsoft all want to put an end to leap seconds.
Why? As Meta explained in a blog post, "We bump into problems whenever a leap second is introduced. And because it's such a rare event, it devastates the community every time it happens. With a growing demand for clock precision across all industries, the leap second is now causing more damage than good, resulting in disturbances and outages."
Therefore, Meta concludes, we should simply "stop the future introduction of leap seconds."
Computers require accurate timekeeping for pretty much everything they do -- security, identification, networks, and more. Some systems rely on Global Positioning Systems (GPS) appliances and the GPSD daemon to tell the exact time.
The problem is Earth's rotational time is not absolute; Earth's spin speed varies in response to geological events. For example, Earth's ice caps and ice-topped mountains are constantly melting and refreezing, affecting the Earth's rotation's angular velocity. This, in turn, slows down and speeds up our days.
The International Earth Rotation and Reference Systems Service (IERS) tracks this, and every few years, it adds a leap-second to the year. This is done to Coordinated Universal Time (UTC), which is the standard universal time system.
Why do we have leap seconds?
In 1972, the idea of leap seconds was introduced by IERS. This periodical UTC update kept computer time in sync with observed solar time (UT1) and the long-term slowdown in the Earth's rotation. That made astronomers and navigators happy -- programmers and IT administrators, not so much.
UTC is used by the internet's Network Time Protocol (NTP) to set the time. For its part, NTP keeps all of our internet-connected devices in sync with each other.
How does NTP know what time it is? By synchronizing NTP servers with atomic clocks. NTP is based on a hierarchy of levels, where each level is assigned a number called the stratum. Stratum 1 (primary) servers at the lowest level are directly synchronized to national time services via satellite, radio, or modem. Stratum 2 (secondary) servers are synchronized to stratum 1 servers and so on. Usually, NTP clients and servers connect to Stratum 2 servers.
So far, so good, but how do stratum 1 servers sync up with clocks? Many of them use GPSD. This service daemon monitors one or more GPSs for location, course, velocity, and -- for our purposes -- time.
The problem is that this system is complicated and prone to failure. If you're a system or network administrator, you already know this. Meta's researchers insist that "introducing new leap seconds is a risky practice that does more harm than good, and we believe it is time to introduce new technologies to replace it."
In the past, leap seconds have crashed programs or even corrupted data, due to weird data storage timestamps. For example, both Reddit and CloudFlare have had nasty outages due to leap seconds.
As Linux founder Linus Torvalds said in response to the problem that tripped up Reddit, "Almost every time we have a leap second, we find something. It's really annoying, because it's a classic case of code that is basically never run, and thus not tested by users under their normal conditions."
Worse still, Meta points out that "with the Earth's rotation pattern changing, it's very likely that we will get a negative leap second at some point in the future. The timestamp will then look like this: 23:59:58 -> 00:00:00."
What happens then? We don't know. "The impact of a negative leap second has never been tested on a large scale; it could have a devastating effect on the software relying on timers or schedulers."
Meta explains, "With a growing demand for clock precision across all industries, the leap second is now causing more damage than good, resulting in disturbances and outages." Therefore, we should simply "stop the future introduction of leap seconds."
Period. End of statement. And if our computing clocks don't agree with the stars above us? That's a problem for astronomy application developers, not the rest of us.
Eventually, we'll need to change the clocks again. After all, the lack of leap days eventually led to our losing 10 days when we switched from the Julian to the Gregorian calendar in 1752. But Meta thinks that we'll do just fine for the next thousand years or so without any more leap seconds.