Рассмотрение сообщения, которое я сделал о последовательной производительности гуида на платформе Microsoft.NET (см. то, Что повышение производительности Последовательного Гуида по стандартному Гуиду?) у кого-то есть надлежащая, верная, быстрая и хорошо рабочая реализация Java того же алгоритма реализованной в Windows DLLs?
Отношения Massimo
См. эту статью: http://www.informit.com/articles/article.aspx?p=25862&seqNum=7 (ссылка на страницу 7).
Она содержит алгоритм для того, что автор называет "COMB" Guids; я воспроизвожу его код (SQL) ниже:
SET @aGuid = CAST(CAST(NEWID() AS BINARY(10))
+ CAST(GETDATE() AS BINARY(6)) AS UNIQUEIDENTIFIER)
Тривиально преобразовать это в Java или в желаемый язык. Очевидный базовый принцип заключается в том, чтобы сделать дату компонентом Guid. Всю статью стоит прочитать, так как он проводит хороший анализ производительности различных подходов.
Я использую это для генерации UUID (универсально уникальных идентификаторов) для моих DTO, которые действуют как суррогатные ключи для временных коллекций. Не знаю, одно и то же, но это может указать вам правильное направление.
import java.util.UUID;
...
private String uuid=null;
...
protected String getUuid() {
synchronized (this) {
if (null ==uuid) {
uuid = UUID.randomUUID().toString();
}
return uuid;
}
}