از سال 2008، به جای اعمال ثانیه های کبیسه بر روی سرورهای خود با استفاده از مراحل ساعت، ثانیه اضافی را در ساعات قبل و بعد از هر جهش "لکه دار" کرده ایم. لکه جهشی برای همه سرویسهای Google، از جمله همه APIهای ما اعمال میشود.
اسمیر استاندارد پیشنهادی ما
بسیاری از سازمانها از ساعتهای لکهدار استفاده میکنند، و اگر اسمیرها یکسان باشند، مفید خواهد بود. به هر حال، هدف ساعت ها خواندن یک زمان در مکان های مختلف است.
ما هر کسی را که چند ثانیه کبیسه لکه دار می کند تشویق می کنیم که از ظهر تا ظهر UTC از یک اسمیر خطی 24 ساعته استفاده کند.
این اسمیر ویژگی هایی را که تجربه نشان داده است برای بسیاری از برنامه های محاسباتی توزیع شده به خوبی کار می کند ترکیب می کند:
- مدت زمان طولانی تغییر فرکانس را کوچک نگه می دارد. تغییر اسمیر حدود 11.6 پی پی ام است. این در محدوده تولید و خطاهای حرارتی اسیلاتورهای کوارتز اکثر ماشینها است و به خوبی کمتر از حداکثر سرعت حرکت NTP 500 ppm است.
- وسط قرار دادن اسمیر روی ثانیه کبیسه، به جای شروع یا پایان آن در ثانیه کبیسه، حداکثر آفست را به حداقل می رساند.
- در مقایسه با اسمیر کسینوس، اسمیر خطی ساده تر، محاسبه آسان تر است و حداکثر تغییر فرکانس را به حداقل می رساند.
- مدت 24 ساعت به طور گسترده توسط دیگرانی که اسمیر را اجرا می کنند پذیرفته شده است. ما قبلاً از مدت زمان اسمیر 20 ساعته استفاده می کردیم، اما برای هماهنگی با این فاصله بین ظهر تا ظهر محبوب تر تغییر کردیم.
ما قصد داریم از این اسمیر برای تمام ثانیه های کبیسه آینده استفاده کنیم. آمازون از این اسمیر در AWS استفاده می کند. یکی از راههای استفاده از آن در سیستمهای خود این است که آنها را برای استفاده از Google Public NTP پیکربندی کنید.
نمونه ای از اسمیر استاندارد
در این مثال، فرض میکنیم که در پایان دسامبر 2022 یک ثانیه کبیسه وجود دارد، اگرچه برنامه واقعی هنوز اعلام نشده است.
دوره اسمیر از 31-12-2022 ساعت 12:00:00 UTC شروع می شود و تا 01-01-2023 ساعت 12:00:00 UTC ادامه می یابد. قبل و بعد از این دوره، ساعت های لکه دار و سرویس زمان با ساعت هایی که ثانیه های کبیسه اعمال می شوند، موافق هستند.
در طول اسمیر، ساعت ها کمی کندتر از حد معمول کار می کنند. هر ثانیه از زمان در مقیاس زمانی لکه دار حدود 11.6 میکروثانیه بیشتر از یک ثانیه SI است که در زمان زمینی مشخص شده است.
در ابتدای ثانیه کبیسه، زمان آغشته شدن کمی کمتر از 0.5 ثانیه از UTC فاصله دارد. UTC یک ثانیه اضافی را وارد می کند، در حالی که زمان لکه دار بدون وقفه ادامه می یابد. این باعث می شود که زمانی که ثانیه کبیسه به پایان می رسد، زمان لکه گیری کمتر از 0.5 ثانیه جلوتر از UTC شود.
با ادامه کارکردن ساعت ها با همان سرعت آهسته، لکه گیری مداوم این تغییر را در دوازده ساعت آینده کاهش می دهد. تا ساعت 12:00، ساعت های لکه دار و جهشی دوباره با هم موافقت می کنند.
TAI | UTC بدون آغشته | زمان لکه دار |
---|---|---|
2022-12-31 12:00:36.000000 | 2022-12-31 11:59:59.000000 | 2022-12-31 11:59:59.000000 |
2022-12-31 12:00:37.000000 | 2022-12-31 12:00:00.000000 | 2022-12-31 12:00:00.000000 |
2022-12-31 12:00:38.000011 | 2022-12-31 12:00:01.000011 | 2022-12-31 12:00:01.000000 |
2023-01-01 00:00:35.499976 | 2022-12-31 23:59:58.499976 | 2022-12-31 23:59:58.000000 |
2023-01-01 00:00:36.499988 | 2022-12-31 23:59:59.499988 | 2022-12-31 23:59:59.000000 |
2023-01-01 00:00:37.000000 | 2022-12-31 23:59:60.000000 | 2022-12-31 23:59:59.500005 |
2023-01-01 00:00:37.500000 | 2022-12-31 23:59:60.500000 | 01-01-2023 00:00:00.000000 |
2023-01-01 00:00:38.000000 | 01-01-2023 00:00:00.000000 | 2023-01-01 00:00:00.499994 |
2023-01-01 00:00:38.500011 | 2023-01-01 00:00:00.500011 | 2023-01-01 00:00:01.000000 |
2023-01-01 00:00:39.500023 | 2023-01-01 00:00:01.500023 | 2023-01-01 00:00:02.000000 |
2023-01-01 12:00:36.999988 | 2023-01-01 11:59:58.999988 | 2023-01-01 11:59:59.000000 |
2023-01-01 12:00:38.000000 | 01-01-2023 12:00:00.000000 | 01-01-2023 12:00:00.000000 |
2023-01-01 12:00:39.000000 | 2023-01-01 12:00:01.000000 | 2023-01-01 12:00:01.000000 |
در طول 86401 SI ثانیه اسمیر، کشش در 86400 ثانیه مشخص شده به یک ثانیه SI اضافی مورد نیاز برای جهش اضافه می شود.
یک ثانیه کبیسه منفی، اگر قرار باشد اتفاق بیفتد، با افزایش سرعت ساعت ها در 86399 SI ثانیه از ظهر تا ظهر، لکه دار می شود.
اسمیرهای دیگر
چندین اسمیر دیگر پیشنهاد یا اجرا شده است.
- UTC-SLS یک لام خطی بیش از 1000 ثانیه قبل از جهش است (23:43:20 تا 00:00:00).
- اسمیر سال 2008 گوگل یک اسمیر کسینوس 20 ساعته قبل از جهش بود (04:00:00 تا 00:00:00). این تنها باری بود که از اسمیر کسینوس استفاده کردیم.
- دومین لامپ جهشی گوگل یک لام خطی 20 ساعته با محوریت جهش بود. ما از این در سال های 2012، 2015 و 2016 استفاده کردیم.
- لام بلومبرگ یک لکه خطی بیش از 2000 ثانیه پس از جهش (00:00:00 تا 00:33:20) است.
- ماینبرگ یک اسمیر کسینوس با مدت زمان قابل تنظیم اجرا کرده است.
پشتیبانی نرم افزاری برای اسمیر
کتابخانه unsmear unsmear ما در هر جهت بین زمان لکه دار شدن و TAI یا GPST بدون لکه تبدیل می شود.