CouchDB использует последовательные идентификаторы, но в то же время может мгновенно определять идентификатор на основе содержимого - PullRequest
0 голосов
/ 09 января 2011

Couchdb демонстрирует чрезвычайно выгодное повышение производительности благодаря использованию последовательных идентификаторов.Тем не менее, есть кое-что, что можно сказать, чтобы иметь возможность мгновенно «знать» идентификатор объекта, просто просматривая содержимое (например, хешируя имя пользователя в идентификатор).Как я могу более или менее достичь удобства хэшированного идентификатора, но при этом повысить производительность последовательных идентификаторов.

1 Ответ

0 голосов
/ 09 января 2011

Я не думаю, что возможен обходной путь.

Поиск по ключевым словам только немного медленнее, чем поиск по идентификатору документа. (См. benchmarks .) Насколько я понимаю, тип документа _id не влияет на производительность в случае просмотра представления, поскольку он опирается на свою собственную независимую структуру B-дерева. Поэтому для фактического поиска информации о пользователях просмотр запросов по последовательно идентифицированным документам вполне подходит.

Но я понимаю, что вы хотели бы иметь возможность регистрировать пользователей и гарантировать отсутствие конфликтов имен пользователей. Таким образом, у вас ДОЛЖЕН есть имя пользователя в идентификаторе документа.

Это правильное решение, если вы решите восстать против возможного подхода CouchDB к согласованности.

Кроме того, я понимаю, что вы вряд ли столкнетесь с ухудшением производительности, если не будете выполнять массовую вставку случайных имен пользователей или обрабатывать большое количество новых пользователей в секунду.

Это тот же компромисс производительности, который делают другие базы данных. Вы можете вставлять данные быстрее без блокировок / транзакций, чем навязывая их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...