Previous Entry Share Next Entry

timestamps and contexts

Why should each timestamp have a context?

Timestamp represents a shorthand for the state of the world up to that instant in time. That's fine unless you factor in latency. Even assuming you know the time perfectly - you still know only so much about distant objects.

No, this is not about the speed of light. This is about mundane things like "balance sheets are updated each month".

So you can of course ignore the context most of the time (if the correctness criteria in your system are implied)

But if you want to be more precise, or when you need to reify those criteria and estimate the error margin - then you need context. This may be anything like node ID, GPS location, machine name, whatever - as long as you can impose a total order (partial order may be enough too) on events recorded with that context.

The intuition behind vector clocks is the same, I suspect.

This entry was originally posted at It has comment count unavailable comments. Please comment there using OpenID.

  • 1
ex_juan_gan March 23rd, 2014
Very interesting idea.
Probably need just 4 coordinates. Some time in the future maybe 7, and some reference to the coordinate system.
Or, since references are just references, a timestamp and a reference would be enough.

_winnie March 23rd, 2014
Полезная мелочь.

Позволит отлаживаться, исправлять что-то в будущем, и быть увереным в offsets и weak ordering на одном хосте - тоже полезно.

Недавно попытался сделать такую тривиальную операцию как "преобразовать время из apache-access-log в timestamp", удивился насколько это нетривиально и как легко накосячить.

wizzard0 March 23rd, 2014
> на одном хосте
я бы сказал, что если есть мультитрединг - хорошо еще тащить per-thread счетчик который крутится. просто инкрементируется. без локов понятное дело. а то таймер не факт что монотонен и не факт что точен.

109 March 23rd, 2014
ну тут надо без экстремизма. сколько там времени займёт Interlocked.Increment? зато один глобальный order across all threads.

  • 1

Log in

No account? Create an account