У вас есть выбор, когда дело доходит до uuids.
Первый вариант - если вы хотите, чтобы сгенерированная _id клиентская сторона (узел, браузер и т. Д.) Или на диване. Похоже, вы хотите создать свой собственный uuid на стороне клиента. Это хорошо. Просто вставьте результат своей функции в поле _id документа, который вы сохраняете в couchdb. Диван будет просто использовать это.
Вы можете создать диван, чтобы создать идентификатор Couchdb генерирует _id, только если вы не выбрали его для себя. Couchdb по умолчанию использует «последовательный» алгоритм генерации uuid. Вы можете изменить алгоритм на другие через футон и конфиг. Есть раздел под названием «uuids» с ключом «алгоритма». Вы можете увидеть источник этих алгоритмов здесь:
https://github.com/apache/couchdb/blob/master/src/couchdb/couch_uuids.erl
С описаниями о них здесь:
http://wiki.apache.org/couchdb/HttpGetUuids?highlight=%28utc%5C_random%29
Как видите, функция utc_random очень похожа на ваше предложение. Но если вы хотите свой собственный, если вы склонны, вы можете добавить свой алгоритм на стороне сервера и перекомпилировать диван.
Вторая часть вашего вопроса касается эффективности выбора различных алгоритмов. Я собираюсь процитировать Дэйва Коттлхубера из сообщения в списке пользователей:
CouchDB будет лучше всего вставлять время, когда ваши документы
постоянно увеличивается, так как это сводит к минимуму переписывает в дерево. это
также поможет
по той же причине вы создаете время просмотра, а также минимизируете потерянное пространство документа,
хотя это также будет восстановлено во время уплотнения.
Таким образом, и ваш алгоритм, и utc_random должны быть в порядке, поскольку их количество документов постоянно увеличивается, что, по-видимому, полезно в одном направлении времени.