Kini saatnya meninggalkan 'detik kabisat' di masa lalu
(engineering.fb.com)- Detik kabisat (Leap Second) diperkenalkan untuk mengoreksi perbedaan antara UT1 (waktu universal), yang timbul karena kecepatan rotasi Bumi, dan UTC
- Hal ini terutama membantu ilmuwan dan astronom karena memungkinkan UTC digunakan untuk berbagai tujuan seperti pengamatan astronomi
- Jika UTC tidak disesuaikan, maka peralatan dan perangkat lunak lama yang disinkronkan dengan UTC untuk pengamatan astronomi harus dikoreksi
- Sejak detik kabisat diusulkan hingga sekarang, UTC telah disesuaikan total 27 kali
- Pada 1972, detik kabisat merupakan solusi yang dapat diterima dan memuaskan baik komunitas ilmiah maupun industri telekomunikasi, tetapi kini UTC bukan pilihan yang baik baik untuk aplikasi digital maupun ilmuwan
→ Mereka sering memilih TAI (International Atomic Time, Waktu Atom Internasional) atau UT1 - Meta mendukung upaya industri untuk menghentikan penambahan detik kabisat di masa depan dan mempertahankan jumlah saat ini, yaitu 27
- Menambahkan detik kabisat baru adalah praktik berisiko yang lebih banyak mudarat daripada manfaat, dan sudah waktunya mengadopsi teknologi baru untuk menggantikannya
Leap of Faith
- Salah satu dari banyak faktor yang berkontribusi pada ketidakteraturan rotasi Bumi adalah salju abadi di pegunungan tertinggi dunia yang terus mencair lalu membeku kembali
- Ini mudah divisualisasikan jika membayangkan seorang atlet figure skating yang sedang berputar
- Sejauh ini hanya ada detik kabisat positif, jadi cukup menambahkan satu detik ekstra yaitu 23:59:60 di antara 23:59:59 dan 00:00:00, tetapi seiring pola rotasi Bumi berubah, besar kemungkinan pada suatu saat di masa depan akan muncul detik kabisat negatif
Maka setelah 23:59:58 harus langsung menjadi 00:00:00. - Dampak dari detik kabisat negatif ini belum pernah diuji dalam skala besar, dan dapat berdampak fatal pada perangkat lunak yang bergantung pada timer atau scheduler
Smearing
- Belakangan ini, praktik yang lebih umum adalah secara bertahap "mengoleskan" (smear) detik kabisat dengan hanya memperlambat atau mempercepat jam
- Tidak ada cara universal untuk melakukan ini, tetapi di Meta, detik kabisat di-smear selama 17 jam mulai dari 00:00:00
- Karena ratusan server NTP melakukannya bersama-sama di Stratum 2, jika smearing dilakukan terlalu besar maka klien NTP bisa menganggap ada kesalahan lalu mengeluarkannya dari quorum, dan ini dapat berujung pada outage
- Memulai dari 00:00:00 juga bukan sesuatu yang distandardisasi, jadi ada beberapa opsi
→ Misalnya, perusahaan tertentu bisa memulainya pada 12:00:00 UTC dan menjalankannya selama 24 jam - Selain itu, smearing sendiri juga memiliki beberapa algoritme berbeda: koreksi detik kabisat kernel, linear smearing, quadratic (yang digunakan Meta)
- Semua ini memerlukan logika konversi penting, termasuk Time Appliance milik Meta sendiri
- Jika server NTP di-restart selama periode smearing ini, waktu "lama" dan "baru" bisa sama-sama dikirim ke klien dan menyebabkan outage
The negative impact of Leap Seconds
- Detik kabisat dan offset-nya menimbulkan masalah di seluruh industri
- Cara termudah terjadinya outage adalah ketika orang menulis kode dengan asumsi bahwa waktu selalu bergerak maju
start := time.Now()
// do something
spent := time.Now().Sub(start)
- Bergantung pada bagaimana
spentdigunakan, nilainya bisa menjadi negatif selama periode detik kabisat - Reddit mengalami gangguan besar pada 2012 akibat detik kabisat, dan situsnya tidak dapat diakses selama 30–40 menit
- Cloudflare pada 2017 menerbitkan tulisan rinci tentang dampaknya terhadap DNS publik perusahaan
Moving beyond the leap second
- Peristiwa detik kabisat menimbulkan masalah di seluruh industri dan terus membawa banyak risiko
- Dalam operasi nyata, kami menghadapi masalah setiap kali detik kabisat diperkenalkan
- Dan karena ini adalah kejadian yang sangat jarang, setiap kali terjadi komunitas-komunitas menjadi kacau
- Dengan meningkatnya kebutuhan akan presisi jam di semua sektor industri, detik kabisat kini lebih banyak mudarat daripada manfaat, dan menyebabkan outage
- Sebagai engineer di Meta, kami sangat mendukung penghentian penambahan detik kabisat di masa depan dan mempertahankan jumlah saat ini, yaitu 27, yang kami yakini cukup untuk seribu tahun ke depan
5 komentar
Wah, topiknya sangat menarik! Tapi hmm… saya paham bahwa menambahkan detik kabisat itu pekerjaan besar, tetapi saya tidak mengerti upaya besar apa yang dilakukan untuk mempertahankan 27 detik itu.
Mungkin maksudnya hal-hal seperti ini
https://id.news.hada.io/topic?id=1752
Judul tulisannya terasa agak aneh
Judul pesan yang dikirim oleh bot Twitter atau Slack terlihat normal, tetapi saat dilihat di situs malah jadi aneh.
Oh, sepertinya memang ada yang aneh. Sudah saya perbaiki.