<div dir="ltr">Dear folks<div><br></div><div>My opinion is:</div><div><br></div><div>The version number is a non-negative integer.</div><div>Applications SHOULD guarantee version numbers of the same collection is monotonically increasing.<br>

</div><div>To satisfy this recommendation, applications MAY choose to generate version numbers based on timestamps; when a version number is based on timestamp, it SHOULD be the number of milliseconds since UNIX epoch.<br>

</div><div>Alternatively, applications MAY choose to generate version numbers from a monotonically increasing sequence.</div><div>When multiple producers exist for the same collection, a producer SHOULD NOT generate a version number that is less than or equal to the latest version number to best of its knowledge.</div>

<div><br></div><div><div class="gmail_extra">
Yours, Junxiao<br><br><div class="gmail_quote">
On Thu, Jul 24, 2014 at 3:38 PM, Alex Afanasyev <span dir="ltr"><<a href="mailto:alexander.afanasyev@ucla.edu" target="_blank">alexander.afanasyev@ucla.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<div><br>
On Jul 24, 2014, at 10:06 AM, Davide Pesavento <<a href="mailto:davide.pesavento@lip6.fr" target="_blank">davide.pesavento@lip6.fr</a>> wrote:<br>
<br>
> Hi Alex and all,<br>
><br>
> Some comments from me and Giulio.<br>
><br>
> Segmentation: looks good to us.<br>
><br>
> Versioning: must the version really correspond to the number of<br>
> millisecs since epoch? I can see a couple of problems with this:<br>
>    1/ millisecs granularity may not be enough for the application<br>
>    2/ if accurate clock synchronization is indeed a problem, using<br>
> timestamps is pointless, but on the other hand there's no defined<br>
> marker for non-time-based versioning, so what do we do?<br>
><br>
> Maybe the value for the version marker should be defined more broadly<br>
> as a monotonically increasing nonnegative integer (but not necessarily<br>
> sequential), leaving the door open to more use cases. On the other<br>
> hand, one could argue that this new definition isn't much different<br>
> from a sequence number (it only lacks the sequentiality property),<br>
> therefore maybe we could merge versioning into sequencing. If needed,<br>
> applications can still use timestamps in name components, but those<br>
> components simply won't be marked in any special way.<br>
<br>
</div>Hi Davide and Giulio. Thanks for the comments!<br>
<br>
The reason I'm tempted to keep the current definition of versioning is a little bit to do with application inter-operability in mind.  If version is defined as increasing number, then there is no clear definition of how distributed production of data can be implemented.  If producers perform some way of version synchronization, then only these producers will be able to produce the "correct" version, while third-parties will be excluded and not able to produce never version of the data (this is kind of a vague argument, but I think there could be use cases for that).  Giving a flawed, but simple mechanism to generate "correct" time-based version is in this sense better.<br>




<br>
As for dealing with applications that needs better granularity...  In some cases it is possible to cheat, ensuring that "version" is increased at least by one for the next generated data.  For other cases we definitely need to define some marker or some other way to give reasonable understanding for others about the component.<br>




<div><br>
> Conversely, if the majority prefers keeping the proposed timestamp<br>
> semantics, can we at least call it "timestamping" instead of<br>
> versioning?<br>
<br>
</div>This what Lan was proposing before.  Completely replacing versioning with timestamping doesn't make sense for me.  Probably, we can have such a convention, though it should be used just for "timestamping" purposes, which not necessarily the same as versioning.  Also, if convention for timestamping is defined, we need to specify/exemplify how this could be used (e.g., by third-parties).<br>




<br>
---<br>
Alex<br>
<div><div><br>
<br>
> Thanks,<br>
> Davide<br></div></div></blockquote></div></div></div></div>