Я планирую использовать Riak в качестве бэкэнд для службы, которая хранит данные сеанса пользователя. Основной ключ, используемый для извлечения данных (двоичный blob), называется UUID и фактически является uuid, но иногда данные могут быть получены с использованием одного или двух других ключей (например, электронной почты пользователя).Выбор бэкэнда Riak: bitcask vs leveldb
Естественным вариантом было бы выбрать бэкэнд leveldb с возможностью использования вторичных индексов для такого сценария, но поскольку вторичный поиск индекса не очень распространен (около 10% - 20% запросов), мне было интересно, не будет ли это лучше иметь отдельный ведро индексов, где будет храниться такое сопоставление email-> uuid.
В таком случае при поиске с использованием «вторичного» индекса я сначала просматриваю uuid в «индексе», а затем обычно читаю данные с использованием первичного ключа.
Зная, что биткаска гораздо более предсказуема, когда дело доходит до латентности и, возможно, быстрее, вы бы рекомендовали такую конструкцию, или я должен придерживаться leveldb и вторичных индексов?