Hi all,
a recent e-mail on user@ [1] (about SCIM) made me reconsider one of the choices we've made in Syncope since the beginning, e.g. using table generators for long primary keys in several entities, and especially for users, groups and any objects (and maybe related as attributes, memberships and relationships).

It seems that UUID offers several advantages, compared to natural keys (as "long" we use for the aforementioned entities) [2][3][4].

There is some open source UUID generator around [5], which is reported to perform quite better than standard JDK's, and also features time-based generation, particularly useful in cluster scenarios.

Naturally, all this would mean changing some logic and data representation, hence a relevant impact on the codebase, but with considerable improvements in portability and performance.

It is my opinion, after a quick chat with Mark Struberg on #openjpa, that this change might worth the effort, and also that we can make it before finalizing 2.0.0.

I am going anyway to ask for details on users@openjpa.

WDYT?
Regards.

[1] http://syncope-user.1051894.n5.nabble.com/Get-list-of-Users-from-a-Syncope-Group-td5708406.html
[2] http://blog.codinghorror.com/primary-keys-ids-versus-guids/
[3] http://web.archive.org/web/20150511162734/http://databases.aspfaq.com/database/what-should-i-choose-for-my-primary-key.html [4] http://blog.xebia.com/jpa-implementation-patterns-using-uuids-as-primary-keys/
[5] https://github.com/cowtowncoder/java-uuid-generator

--
Francesco Chicchiriccò

Tirasa - Open Source Excellence
http://www.tirasa.net/

Involved at The Apache Software Foundation:
member, Syncope PMC chair, Cocoon PMC, Olingo PMC, CXF committer
http://home.apache.org/~ilgrosso/


Reply via email to