Какие key-value хранилища вы используете в бою?
Позаимствовал список с сайта db-engines.com (кстати очень любопытный сайт, рекомендую), включил все базы с ненулевой «популярностью» оттуда. Не отмечайте базы которые просто пробовали/интересно, а только те, что крутятся и приносят деньги вашей компании прямо сейчас.
Обратите внимание: MongoDB это НЕ key-value хранилище, однако за нее можно проголосовать, см. 4 снизу пункт.
Пишите, если забыл какую-то популярную базу (т. е. забыли авторы сайта db-engines.com), добавлю в опрос.
Какие свойства key-value хранилища вам важны?
Разношерстная куча требований. Просьба вдумчиво пройтись по ним. Обратите внимание, что многие свойства противоречат друг другу, потому что половина направлена на функциональность, а другая — на производительность, которые в целом противоречат друг другу. Некоторые свойства возможны только при наличии других свойств или комбинаций, некоторые являются усиленными/ослабленными версиями друг друга, и т. д.
Пункты 2-6 описывают какие-то разумные свойства транзакций (кстати, вам могут быть вообще не нужны транзакции: (напр. простые get и put по ключу — это еще не транзакции), тогда не отмечайте ни один из этих пунктов), пункты 7-9 — уровень согласованности свойств, указанных выше.
«Нативный клиент для Java/С/С++/С#» — значит клиент для этих языков не просто формирует запрос на языке, на котором написана база, и идет в какой-нибудь IPC/JNI, а прямо работает с базой. По сути, это означает, что база написана (в том числе) на этом языке. Благодаря наличию таких штук, как Protocol Buffers, Thrift и подробных, база, вообще говоря, может быть написана на нескольких языках.
Я 100% забыл какие-то важные свойства, пишите в личку, добавлю в опрос.
Автор: leventov