UUID Generation
От: AL-Udalec Россия  
Дата: 14.11.08 09:03
Оценка:
Коллеги,

возникла необходимость генерить UUIDs. Часто, много, и на разных машинах.
UUID.randomUUID(http://java.sun.com/j2se/1.5.0/docs/api/java/util/UU...) вроде бы подходит, вероятность генерации двух идентичных UIDs, приведенная на Wiki устраивает.(http://en.wikipedia.org/wiki/UUID) Но формирует он 128 битное значение, а очень хочется иметь в качестве ID лонг.
Теперь вопрос первый: Если взять long UUID.randomUUID.getMostSignificantBits()(64bit) — насколько это скажется на вероятности генерации двух "близнецов"? Возможно поможет XOR двух половинок?
Вопрос второй: собственно какие есть иные java-решения проблемы, выслушаю с удовольствием. Желательно не трогая стд последовательности БД и Open Source решения.

Заранее спасибо.
Re: UUID Generation
От: mkizub Литва http://symade.tigris.org
Дата: 14.11.08 10:36
Оценка: 2 (1)
Здравствуйте, AL-Udalec, Вы писали:

AU>возникла необходимость генерить UUIDs. Часто, много, и на разных машинах.

AU>Но формирует он 128 битное значение, а очень хочется иметь в качестве ID лонг.

Десять раз подумай.
Лучше сделай нормальный UUID, и если действительно упрёшся потерю производительности или памяти — тогда думай про long.

AU>Вопрос второй: собственно какие есть иные java-решения проблемы, выслушаю с удовольствием. Желательно не трогая стд последовательности БД и Open Source решения.


Этот генератор, по моему, лучше — по крайней мере поддерживает больше вариантов генерации UUID и он open-source
http://jug.safehaus.org/
Вот ещё сравнение разных генераторов
http://johannburkard.de/blog/programming/java/Java-UUID-generators-compared.html
SOP & SymADE: http://symade.tigris.org , блог http://mkizub.livejournal.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.