Leap Smear
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
از سال 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 بدون لکه تبدیل می شود.
جز در مواردی که غیر از این ذکر شده باشد،محتوای این صفحه تحت مجوز Creative Commons Attribution 4.0 License است. نمونه کدها نیز دارای مجوز Apache 2.0 License است. برای اطلاع از جزئیات، به خطمشیهای سایت Google Developers مراجعه کنید. جاوا علامت تجاری ثبتشده Oracle و/یا شرکتهای وابسته به آن است.
تاریخ آخرین بهروزرسانی 2022-02-15 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2022-02-15 بهوقت ساعت هماهنگ جهانی."],[[["\u003cp\u003eGoogle uses a "leap smear" to handle leap seconds, gradually adjusting time over 24 hours instead of abrupt clock steps.\u003c/p\u003e\n"],["\u003cp\u003eGoogle's recommended leap smear standard is a 24-hour linear smear from noon to noon UTC for distributed computing applications.\u003c/p\u003e\n"],["\u003cp\u003eThe smear keeps frequency changes small, minimizes offset, and simplifies calculation, aligning with practices in AWS and Google Public NTP.\u003c/p\u003e\n"],["\u003cp\u003eSmeared time briefly deviates from UTC during the smear period but realigns after 24 hours.\u003c/p\u003e\n"],["\u003cp\u003eGoogle's open source "unsmear" library allows conversion between smeared and unsmeared time (TAI or GPST).\u003c/p\u003e\n"]]],["Google implements a \"leap smear\" for leap seconds, spreading the extra second over 24 hours, from noon to noon UTC. This linear smear, adopted by Amazon AWS, adjusts clocks to run slightly slower (about 11.6 ppm), ensuring minimal frequency change and offset. During the smear period, smeared time lags slightly behind UTC initially but aligns again at the end. Google advocates for this 24-hour linear smear as a standard and offers the \"unsmear library\" for time conversion.\n"],null,["# Leap Smear\n\nSince 2008, instead of applying leap seconds to our servers using clock steps,\nwe have \"smeared\" the extra second across the hours before and after each leap.\nThe leap smear applies to all Google services, including all our APIs.\n\nOur proposed standard smear\n---------------------------\n\nMany organizations use smeared clocks, and it would be helpful if the smears\nwere the same. After all, the purpose of clocks is to read the same time in\ndifferent places.\n\nWe encourage anyone smearing leap seconds to use a **24-hour linear smear from\nnoon to noon UTC**.\n\nThis smear combines the features that experience has shown to work well for many\ndistributed computing applications:\n\n- The long duration keeps the frequency change small. The change for the smear is about 11.6 ppm. This is within the manufacturing and thermal errors of most machines' quartz oscillators, and well under NTP's 500 ppm maximum slew rate.\n- Centering the smear on the leap second, instead of having it begin or end at the leap second, minimizes the maximum offset.\n- Compared to a cosine smear, the linear smear is simpler, easier to calculate, and minimizes the maximum frequency change.\n- The 24-hour duration has been widely adopted by others implementing smears. We previously used a 20-hour smear duration, but changed to align with this more popular noon-to-noon interval.\n\nWe plan to use this smear for all future leap seconds. Amazon\n[uses this smear](https://aws.amazon.com/blogs/aws/look-before-you-leap-the-coming-leap-second-and-aws/)\nin AWS. One way to use it in your systems is to configure them to use\n[Google Public NTP](/time/guides).\n\nExample of the standard smear\n-----------------------------\n\nIn this example, we will suppose there is a leap second at the end of December\n2022, although the actual schedule has not yet been announced.\n\nThe smear period starts at [2022-12-31 12:00:00\nUTC](https://www.timeanddate.com/worldclock/converter.html?iso=20211231T120000&p1=1440&p2=1241)\nand continues through [2023-01-01 12:00:00\nUTC](https://www.timeanddate.com/worldclock/converter.html?iso=20220101T120000&p1=1440&p2=1241).\nBefore and after this period, smeared clocks and time service agree with clocks\nthat apply leap seconds.\n\nDuring the smear, clocks run slightly slower than usual. Each second of time in\nthe smeared timescale is about 11.6 μs longer than an [SI\nsecond](http://www.bipm.org/en/publications/si-brochure/second.html) as realized\nin [Terrestrial Time](https://en.wikipedia.org/wiki/Terrestrial_Time).\n\nAt the beginning of the leap second, smeared time is just under 0.5 s\nbehind UTC. UTC inserts an additional second, while smeared time continues\nuninterrupted. This causes smeared time to become just under 0.5 s ahead\nof UTC when the leap second ends.\n\nBy continuing to run the clocks at the same slowed rate, the ongoing smear\nreduces this offset over the next twelve hours. By 12:00:00, smeared and leaping\nclocks agree again.\n\n| TAI | Unsmeared UTC | Smeared time |\n|----------------------------|----------------------------|----------------------------|\n| 2022-12-31 12:00:36.000000 | 2022-12-31 11:59:59.000000 | 2022-12-31 11:59:59.000000 |\n| 2022-12-31 12:00:37.000000 | 2022-12-31 12:00:00.000000 | 2022-12-31 12:00:00.000000 |\n| 2022-12-31 12:00:38.000011 | 2022-12-31 12:00:01.000011 | 2022-12-31 12:00:01.000000 |\n| 2023-01-01 00:00:35.499976 | 2022-12-31 23:59:58.499976 | 2022-12-31 23:59:58.000000 |\n| 2023-01-01 00:00:36.499988 | 2022-12-31 23:59:59.499988 | 2022-12-31 23:59:59.000000 |\n| 2023-01-01 00:00:37.000000 | 2022-12-31 23:59:60.000000 | 2022-12-31 23:59:59.500005 |\n| 2023-01-01 00:00:37.500000 | 2022-12-31 23:59:60.500000 | 2023-01-01 00:00:00.000000 |\n| 2023-01-01 00:00:38.000000 | 2023-01-01 00:00:00.000000 | 2023-01-01 00:00:00.499994 |\n| 2023-01-01 00:00:38.500011 | 2023-01-01 00:00:00.500011 | 2023-01-01 00:00:01.000000 |\n| 2023-01-01 00:00:39.500023 | 2023-01-01 00:00:01.500023 | 2023-01-01 00:00:02.000000 |\n| 2023-01-01 12:00:36.999988 | 2023-01-01 11:59:58.999988 | 2023-01-01 11:59:59.000000 |\n| 2023-01-01 12:00:38.000000 | 2023-01-01 12:00:00.000000 | 2023-01-01 12:00:00.000000 |\n| 2023-01-01 12:00:39.000000 | 2023-01-01 12:00:01.000000 | 2023-01-01 12:00:01.000000 |\n\nOver the 86,401 SI seconds of the smear, the stretch in the 86,400 indicated\nseconds adds up to the one additional SI second required by the leap.\n\nA negative leap second, if one were ever to occur, would be smeared by speeding\nup clocks over the 86,399 SI seconds from noon to noon.\n\nOther smears\n------------\n\nSeveral other smears have been proposed or implemented.\n\n- [UTC-SLS](https://www.cl.cam.ac.uk/%7Emgk25/time/utc-sls/) is a linear smear over 1,000 s before the leap (23:43:20 to 00:00:00).\n- [Google's 2008\n smear](https://googleblog.blogspot.com/2011/09/time-technology-and-leaping-seconds.html) was a 20-hour cosine smear before the leap (04:00:00 to 00:00:00). This was the only time we used a cosine smear.\n- [Google's second leap\n smear](https://cloudplatform.googleblog.com/2015/05/Got-a-second-A-leap-second-that-is-Be-ready-for-June-30th.html) was a 20-hour linear smear centered on the leap. We used this in 2012, 2015, and 2016.\n- [Bloomberg's\n smear](https://data.bloomberglp.com/professional/sites/4/Bloomberg-Leap-Second_December-2016.pdf) is a linear smear over 2,000 s after the leap (00:00:00 to 00:33:20).\n- [Meinberg](https://www.meinbergglobal.com/download/burnicki/Leap%20Second%20Smearing%20With%20NTP.pdf) has implemented a cosine smear of configurable duration.\n\nSoftware support for the smear\n------------------------------\n\nOur open source [unsmear library](https://github.com/google/unsmear) will\nconvert in either direction between smeared time and unsmeared TAI or GPST."]]