Bosh sahifa Wiki Leap second

Leap second

Leap second — atom vaqtini Yer aylanishiga asoslangan fuqarolik vaqtiga yaqin tutish uchun UTC vaqt shkalasiga qo‘shiladigan yoki nazariy jihatdan olib tashlanadigan bir soniya. IERS Yer aylanishini kuzatib, zarurat bo‘lsa e’lon qiladi. Qo‘shilgan leap second’da UTC ketma-ketligi 23:59:59, 23:59:60, 00:00:00 ko‘rinishida bo‘ladi.

Vaqt shkalalari

TAI atom soatlari asosidagi uzluksiz xalqaro vaqt shkalasidir. UT1 Yerning real aylanish burchagiga bog‘liq va aylanish notekisligi sabab bir tekis yurmaydi. UTC atom soniyalaridan foydalanadi, leap second orqali UT1dan belgilangan chegarada uzoqlashmaslikka intiladi.

Unix time odatda kunni 86 400 soniya deb model qiladi va leap secondni bir xil talqin qilmaydi. POSIX timestamp’da 23:59:60 uchun alohida noyob qiymat bo‘lmasligi mumkin. Shu sabab “UTC sana” va “o‘tgan fizik soniyalar soni” bir xil model emas.

Tarqatish

Leap second sanasi oldindan bulletin orqali e’lon qilinadi. NTP server leap indicator bitlari bilan yaqinlashayotgan hodisani mijozga bildiradi. Timezone database fuqarolik zonasi va tarixiy offsetlarni beradi, ammo leap second bilan ishlash alohida time-scale masalasidir.

GPS kabi tizimlar o‘z uzluksiz vaqt shkalasidan foydalanadi va UTC bilan farqni alohida parametr orqali tarqatadi. Qabul qiluvchi bu farqni noto‘g‘ri qo‘llasa bir necha soniyalik xato paydo bo‘lishi mumkin.

Dasturiy muammolar

Ko‘p datetime kutubxonasi soniya maydonida 60 qiymatini qabul qilmaydi. Scheduler bir sekundni ikki marta ko‘rishi, timestamp monoton bo‘lmasligi yoki duration hisobida xato qilishi mumkin. CLOCK_REALTIME tuzatilishi mumkin, CLOCK_MONOTONIC esa interval o‘lchash uchun orqaga sakramaydigan manba sifatida qo‘llanadi.

Vazifa Mos vaqt tushunchasi
Fuqarolik sanasini ko‘rsatish UTC va timezone qoidalari
Timeout o‘lchash Monotonic clock
Astronomik hisob UT1 yoki tegishli shkala
Fizik interval Uzluksiz atomic shkala

Database va log pipeline turli leap siyosatiga ega bo‘lsa, bir hodisa timestampi ikki marta yoki noto‘g‘ri tartibda ko‘rinishi mumkin. Tizimlar time source va smear siyosatini bir xil tushunishi kerak.

Step va leap smear

Standart step usulida qo‘shimcha soniya chegarada ifodalanadi. Leap smear esa bir soniyalik farqni bir necha soatlik interval davomida soat tezligini ozgina o‘zgartirib yoyadi; shunda :60 ko‘rinmaydi. Bu ko‘p serverlar uchun operatsion soddalik beradi.

Smear universal standart emas: provayderlar interval va funksiya bo‘yicha farq qilishi mumkin. Smeared serverni unsmeared reference bilan aralashtirish smear davrida vaqt offsetini keltiradi. Yuqori aniqlikdagi o‘lchov yoki regulyator talabi uchun smear qabul qilinmasligi mumkin.

Sinov va tayyorgarlik

Leap second kam sodir bo‘lgani uchun odatiy test uni qamramaydi. Test time provider orqali soatni hodisa atrofida simulyatsiya qiladi; production tizim soatini tasodifiy o‘zgartirish xavfli. Parser :60, scheduler boundary, token expiry va log ordering tekshiriladi.

Monitoring leap indicator, NTP source mosligi, offset va daemon holatini kuzatadi. Bir xil fleet ichida turli time daemon yoki turli smear endpoint bo‘lmasligi kerak. Tashqi API timestampi qaysi shkala va formatda ekanini contract belgilaydi.

Kelajakdagi o‘zgarish

Xalqaro metrologiya qarorlarida leap second qo‘shishni kelajakda to‘xtatish yo‘nalishi belgilangan bo‘lsa ham, amaldagi tizimlar tarixiy leap secondlar va o‘tish davri bilan ishlashi kerak. Dastur aniq sanaga oid siyosatni hard-code qilish o‘rniga vakolatli time data va yangilanadigan kutubxonaga tayanadi.

Bog‘liq tushunchalar

Coordinated Universal Time, International Atomic Time, UT1, Network Time Protocol, Leap smear, Monotonic clock, Time zone