15 poin oleh xguru 2022-07-26 | 5 komentar | Bagikan ke WhatsApp
  • 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 spent digunakan, 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

 
galadbran 2022-07-26

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.

 
budlebee 2022-07-26

Mungkin maksudnya hal-hal seperti ini

https://id.news.hada.io/topic?id=1752

 
dodok8 2022-07-26

Judul tulisannya terasa agak aneh

 
dodok8 2022-07-26

Judul pesan yang dikirim oleh bot Twitter atau Slack terlihat normal, tetapi saat dilihat di situs malah jadi aneh.

 
xguru 2022-07-26

Oh, sepertinya memang ada yang aneh. Sudah saya perbaiki.