Вот эту
Там зафакали идею с UUID. На работе спрашивал, тоже зафакали, мол тормозить будет. Но она красиво вписывается в мой код. Почему долго обьяснять. Вдаваться в подробности не буду, но вкратце мне это удобнее из-за генерации id сущности не в централизированном месте чтобы обеспечить уникальность.
Но что эти все разговоры стоят без прототипирования и бенчмарка?
Сделал небольшой бенч http://fileshare.in.ua/4519189
Запустил
MAVEN_OPTS="-Xbatch -Xmx800m" mvn clean package exec:java
Хотя вообщем-то память там до лампочки. Оно создает и чистит папку ./db. Вообще ничего страшного, но имею твердое правило предупреждать что моя программа что-то чистит.
Итак результат такой.
Inserts count:500000
Read count:100000
Putting 'uuid': 79.893 sec
Putting 'int': 70.266 sec
Reading 'uuid': 4.085 sec
Reading 'int': 2.734 sec
Reading 'uuid': 3.06 sec
Reading 'int': 2.687 sec
Reading 'uuid': 2.859 sec
Reading 'int': 9.188 sec
Reading 'uuid': 7.87 sec
Reading 'int': 6.901 sec
Reading 'uuid': 7.094 sec
Reading 'int': 6.844 sec
Могу это истолковать как отклонения в пределах погрешности, при достаточно высокой скорости около 30000 read/s, что в программе, которая собирается еще прочитаное отправлять по сети не будет играть роли. В программе для которой производится бенч блобы будут реально читаться и будут достаточно большими (>100 kb) чтобы их чтение занимало больше времени чем поиск
Ваши коментарии. Бенч не идеален, но думаю в определенной мере репрезентативен.