Menú de navegaciónMenú
Categorías

La mejor forma de Aprender Programación online y en español www.campusmvp.es

GAMBADAS: 2015 necesita un segundo extra... y eso es un problema para los programadores

El próximo 30 de Junio a las 23:59:59 los relojes atómicos de todo el mundo se van a detener durante un segundo. Demorarán la entrada en el mes de Julio y, durante ese tiempo, en lugar de marcar las 00:00:00, marcarán las 23:59:60 (una hora que no existe en realidad).

Segundo-Bisiesto

A este efecto se le conoce como el "Segundo Bisiesto" (leap second en inglés) y se introduce de vez en cuando para corregir la hora real solar respecto a la que marcan los ultra-precisos relojes atómicos.

Relojes atómicos y rotación de la tierra

Si algo tenemos claro tras miles de años de civilización es que mantener una referencia temporal precisa es muy complicado.

A lo largo de la historia el tiempo se ha medido en relación a la rotación de la tierra respecto al sol, es decir, respecto a la longitud de los días y la posición aparente del sol en el horizonte. Esto tiene todo el sentido del mundo para las personas, pues la salida y la puesta del sol han regulado siempre la actividad humana.

Gracias a los avances científicos del último siglo son posibles los relojes atómicos, y hemos definido un segundo como el tiempo transcurrido durante 9.192.631.770 oscilaciones de la radiación emitida entre la transición entre dos niveles hiperfinos del estado fundamental del isótopo 133 del átomo de Cesio a una temperatura de 0K.

Y entre los sistemas básicos y los más científicos, por el medio, se han ido gestando infinidad de sistemas de medición del tiempo que trataban de ser cada vez más y más precisos.

La referencia actual son los relojes atómicos. Estos, si bien llevan una cuenta ultra-precisa del tiempo, no tienen en cuenta para nada la rotación de la tierra y por lo tanto dejan de lado las necesidades de los seres humanos que comentábamos antes: la posición relativa del sol respecto a la tierra.

El problema es que la tierra no gira siempre a la misma velocidad. De hecho su velocidad de rotación se va modificando ligeramente cada año, decelerándose un poco todo el rato, aunque de manera imperceptible. Esto se debe a multitud de cuestiones: la fuerza gravitatoria de la luna (sobre todo), los grandes terremotos, huracanes o el "rebote" de los glaciares (eso contrarresta lo anterior). En este interesante artículo de la Wikipedia hay una buena explicación.

De hecho el efecto es tan importante que existe (y ¡no nos vas a creer!) un organismo internacional encargado de vigilarlo. Se trata del Servicio Internacional de Sistemas de Referencia y de la Rotación de la Tierra (IERS, de sus siglas en inglés), con centros por todo el mundo.

El efecto de que la tierra gire más despacio es que los días duran más, lógicamente. Para corregir este efecto y hacer que la hora oficial atómica coincida con la hora terrestre, hace ya 43 años, en 1972, se introdujeron los segundos bisiestos, que compensan de vez en cuando el efecto para hacer que las horas coincidan, y añaden a la hora atómica un segundo artificial.

Desde entonces el IERS ha ordenado añadir segundos bisiestos 26 veces, la última en 2012. Y la próxima en unos pocos días. De hecho, puedes ver la nota oficial que sacó el IERS en Enero para anunciarlo, en la que se habla de la hora artificial 23:59:60.

Nota friki: A pesar de que los segundos bisiestos igualan la hora atómica con la terrestre, cuando se introdujo esta acción en 1972 ambas horas ya iban descoordinadas en 10 segundos, por lo que la hora atómica y la solar realmente llevan 10 segundos de desfase, yendo la solar por delante.

Nota friki 2: Tu teléfono móvil tiene dos relojes al menos: el interno del móvil encargado de dar la hora, y el del sistema de posicionamiento GPS. Como la hora del GPS no se actualiza con los segundos bisiestos, en realidad solo ha coincidido con la hora oficial en enero de 1980 cuando se lanzó. Eso significa que la hora que marca el GPS de tu móvil va 16 segundos por detrás de la hora oficial, 17 segundos a partir del 1 de Julio. Esto es algo a tener muy en cuenta por los desarrolladores que usan el móvil a bajo nivel.

Problemas de software con los segundos bisiestos

Lo malo del efecto 2000 fue lo grande del impacto que tenía pues afectaba a millones de sistemas en todo el mundo. Lo bueno era que se daba una única vez en la historia (bueno, o casi, de esto ya hablaremos otro día). El problema del segundo bisiesto es que se da con cierta frecuencia y además de manera no predecible, solo cuando lo dice el IERS.

Hace 3 años, durante el último añadido de segundo bisiesto, el 1 de Julio de 2012, varios importantes sitios de Internet tuvieron problemas. LinkedIn, StumbleUpon, Reddit o Foursquare rompieron por no saber cómo gestionar ese segundo extra. En gran parte se debió a que un subsistema de Linux tuvo problemas para lidiar con ese segundo adicional.  Hasta Linux Torvalds (en el artículo del enlace anterior) habla de los muchos dolores de cabeza que tienen cada vez que hay un nuevo segundo extra.

Muchos otros problemas tienen que ver con la manera de gestionar el asunto. Por ejemplo, la estrategia de muchos consiste simplemente en dar para atrás a los relojes un segundo cuando llegan las 00:00:00 del 1 de Julio. Pero ¿qué pasa con la marca de tiempo los registros de base de datos que se almacenan justo en ese segundo? ¿Y los correos electrónicos o mensajes recibidos justo en ese instante?

Algunas empresas, como Google, han desarrollado un complejo sistema que consiste básicamente en atacar el problema "a los pocos", como invadiendo Portugal ;-) Lo que hacen es insertar un retardo artificial de unos pocos milisegundos en sus relojes a lo largo del 30 de Junio. De este modo "engañan" a todos sus sistemas de forma imperceptible y dividen ese segundo extra a lo largo de todo el día. Así, cuando llega el momento del segundo adicional, ellos ya lo han tenido en cuenta y nunca experimentan el retraso.

En el caso de servidores Windows, no parece que tenga un gran efecto.

Lo cierto es que, a pesar de las notas apocalípticas que se están viendo por ahí, para la mayor parte de los desarrolladores el segundo bisiesto no tiene efecto alguno. Solo tendrá influencia si es muy importante para nosotros anotar o gestionar algo con una precisión muy alta, inferior al segundo. De hecho la mayor parte de las aplicaciones no consultan directamente la hora atómica sino que es el sistema operativo el que les devuelve esa información, y jamás van a ver las 23:59:60. De hecho en las aplicaciones más comunes tenemos un efecto similar dos veces al año, con el cambio de hora de verano a invierno y viceversa, que no afecta normalmente más allá de ver una hora vacía o especialmente llena en los registros de las aplicaciones.

Aún así es un efecto muy a tener en cuenta en sistemas que manejan información en tiempo real, que trabajan con precisión inferior al segundo y en general en todo tipo de software de bajo nivel para el cual el tiempo sea importante.

¡No lo pierdas de vista!

campusMVP campusMVP es la mejor forma de aprender a programar online y en español. En nuestros cursos solamente encontrarás contenidos propios de alta calidad (teoría+vídeos+prácticas) creados y tutelados por los principales expertos del sector. Nosotros vamos mucho más allá de una simple colección de vídeos colgados en Internet porque nuestro principal objetivo es que tú aprendas. Ver todos los posts de campusMVP
Archivado en: DevFacts

Boletín campusMVP.es

Solo cosas útiles. Una vez al mes.

🚀 Únete a miles de desarrolladores

DATE DE ALTA

x No me interesa | x Ya soy suscriptor

La mejor formación online para desarrolladores como tú

Agregar comentario

Los datos anteriores se utilizarán exclusivamente para permitirte hacer el comentario y, si lo seleccionas, notificarte de nuevos comentarios en este artículo, pero no se procesarán ni se utilizarán para ningún otro propósito. Lee nuestra política de privacidad.