Oohh. I love when explanations like this contains bits of history about the 
project. As well as the sense of humour in some of our logging messages :) 
https://github.com/apache/jena/blob/7b011c30b6bf54db44b5b14408f103009adbdd67/jena-core/src/main/java/org/apache/jena/shared/uuid/JenaUUID.java#L193



Thanks Andy!

Bruno


On Sun, 12 Aug 2018 at 8:50, Andy Seaborne
><a...@apache.org> wrote:
>JenaUUID predates UUID.
>
>Yep - it is really old.
>
>V1 UUIDs used to be the more encouraged form ... nowadays they aren't - 
>they don't even work really.
>
>Why? devices don't have a guaranteed 48 bit address or anything else to 
>seed the device unique part.
>
>Fine, when everything was a computer with network hadware.
>Then came the desire to have them on small devices, not, connected 
>devices, and then on VMs. No reliable unique 48bit number.
>
>I don't think the guessablity of the next id was much of an issue.
>
>Generating V1 ids requires synchronization or batch allocation; V4 can 
>be generated in parallel.
>
>JenaUUID, originally called JUUID, came about to have URNs-style ids but 
>also to write down the details of UUIDs.
>
>Today, maybe it would be a library of static functions to add 
>functionality around UUIDs, especially producing URI strings.
>
>They are both objects which are a pair of longs.
>
>V1 UUIDs are easier to debug if there are several around - the numbers 
>move up incrementally.
>
>     Andy
>
>
>
>
>On 11/08/18 10:47, Bruno P. Kinoshita wrote:
>> Hi!
>> 
>> 
>> Regarding changes in Jena code, not talking about SPARQL uuid or struuid 
>> functions... Does anyone here know when one would use Java's UUID in Jena 
>> over JenaUUID implementations, or vice versa?
>> 
>> 
>> I wrote one of those brain-dump posts, with several notes to myself, about 
>> what happens when you upload a dataset in Fuseki. Ended up with a post-it to 
>> check out JenaUUID.
>> 
>> Today I had some spare time, and tried learning how it works [1], from what 
>> I understood,  we have a Version 1 (UUID_V1) and a Version 4 UUID (UUID_V4) 
>> implementations in Jena, where version 4 is compatible with Java's UUID (but 
>> with a stronger seed for multiple JVM's?).
>> 
>> But in certain parts of the code we use Java's UUID. The transaction ID's 
>> are either sequential or JenaUUID. But blank node ID's are either sequential 
>> or Java's UUID.
>> 
>> Just so I learn (and satisfy my curiosity), in case I ever have to touch 
>> code that involves UUID's in Jena... is there a rule for when to choose one 
>> over the other?
>> 
>> Thank you!
>> Bruno
>> 
>> [1] https://kinoshita.eti.br/2018/08/11/uuids-in-apache-jena/
>> 
>

Reply via email to