Editing TAP Precision Time APIs

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 3: Line 3:
[https://www.opencompute.org/wiki/Time_Appliance_Project Back to Time Appliances Project's wiki]
[https://www.opencompute.org/wiki/Time_Appliance_Project Back to Time Appliances Project's wiki]


The ''clock_gettime'' API was designed a couple of decades ago. The time is encoded as number of units between now and a half of a century ago. In theory, this encoding should be sufficient for any use of the phenomenon. For the majority of the systems, representing the time as an offset from the epoch works well. The changes in the last few decades were improvements related to the size of the unit; the unit shrank from seconds to nanoseconds.  
Unix clock_gettime API was designed a couple of decades ago. The time is encoded as number of units between now and a date half a century ago. In theory this is sufficient in the field of physics, and it should be sufficient any use of time as a phenomenon. For the majority of the systems, it was sufficient in practice as well. Representing the time is an offset from the epoch worked well for most of us, and for half of a century, the only change was a few improvements related the size of the unit.  
   
   
Representing the time as just a number works well for many software systems. However, in the last two decades, to increase the efficiency of the system, we started building system where we replace communication with simple local calculation. For such systems, we need more information about the clock synchronization process. It became important when was the last time when the clock was synchronized, what type of physical local clock we have, what was the last measured offset between the local clock and the referent clock.
Representing the time as just a number works well for many software systems. However, in the last two decades, to increase the efficiency of the system, we started building system where we replace communication with simple local calculation. For such systems, we need more information about the clock synchronization process. It became important when was the clock synchronized, what type of physical local clock we have, what was the last measured offset between local clock and the referent clock.


In the Time API stream, we will start with discussing software system and services that benefit from better time APIs. Initially I would like to focus our discussions on defining the problem that we want to solve, what are the requirements and what solution exist today. We will focus on defining the API and perhaps, at some point, we could discuss building a reference implementation. The goal is to publish an official proposal for time and clock API that allow designing system where time is reliable fundamental building block.
In the Time API stream, we will start with discussing software system and services that would benefit from better clock and time API. Initially I would like to focus our discussions on defining the problem that we want to solve, any requirements and existing solutions. At some point, we could discuss building a reference implementation, but that is not the primary goal. The goal is to publish an official proposal for time and clock API that allow designing system where time is reliable fundamental building block.


==Objective==
==Objective==
Please note that all contributions to OpenCompute may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see OpenCompute:Copyrights for details). Do not submit copyrighted work without permission!
Cancel Editing help (opens in new window)