<div dir="ltr">"<span style="font-size:12.8000001907349px">Lamport/vector clocks and other similar ones operate on *causality*, but this partial ordering is not the only one available or workable."</span><div><span style="font-size:12.8000001907349px"><br>Whether it's "workable" depends on what's desired. Sorting by {Node, Timestamp} is not accurate if causality matters and clocks have drifted out of synch. As they will. Hence Lamport's work, and the work of others. And if causality doesn't matter, well, I wonder: why bother? Unless you just want a rough idea of when certain things happened, in which case {Node, Timestamp} can give you a /total/ order that's, if anything, more accurate than what you need.</span><div><span style="font-size:12.8000001907349px"><br></span></div><div><span style="font-size:12.8000001907349px"><br></span></div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature">Regards,<br>Michael Turner<br>Executive Director<br>Project Persephone<br>K-1 bldg 3F<br>7-2-6 Nishishinjuku<br>Shinjuku-ku Tokyo 160-0023<br>Tel: +81 (3) 6890-1140<br>Fax: +81 (3) 6890-1158<br>Mobile: +81 (90) 5203-8682<br><a href="mailto:turner@projectpersephone.org" target="_blank">turner@projectpersephone.org</a><br><a href="http://www.projectpersephone.org/" target="_blank">http://www.projectpersephone.org/</a><br><br>"Love does not consist in gazing at each other, but in looking outward together in the same direction." -- Antoine de Saint-Exupéry</div></div>
<br><div class="gmail_quote">On Mon, Apr 20, 2015 at 11:51 PM, Fred Hebert <span dir="ltr"><<a href="mailto:mononcqc@ferd.ca" target="_blank">mononcqc@ferd.ca</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 04/20, Michael Turner wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
If you can make do with a partial order rather than a total order, somehow:<br>
<br>
  <a href="http://www.erlang.org/doc/man/seq_trace.html" target="_blank">http://www.erlang.org/doc/man/seq_trace.html</a><br>
<br>
Basically, Lamport clocks.<br>
<br>
</blockquote>
<br>
Lamport clocks are one form of it. Sorting by {Node, Timestamp} also gives you a partial order. So do vector clocks and version vectors, interval tree clocks, and so on.<br>
<br>
Lamport/vector clocks and other similar ones operate on *causality*, but this partial ordering is not the only one available or workable.<br>
<br>
You could have them operating on users, nodes, shards, clusters, geographical regions, customers, or any other partitioning mechanism desired, for example.<br>
<br>
It's important to look at the system and its desired properties to be able to figure out which constraints allows us to best fit it to find the most appropriate solution possible.<br>
<br>
Regards,<br>
Fred.<br>
</blockquote></div><br></div></div>