Percona Nosql против других Nosql - PullRequest
       7

Percona Nosql против других Nosql

3 голосов
/ 20 сентября 2011

Я оцениваю хранилища nosql для хранения пар ключ / значение (для части приложения), и наткнулся на percona, которая предлагает собственный ключ / значение в мире mysql.Это кажется хорошим решением, поскольку позволяет хранилищу оставаться в одном месте (поскольку остальные функции существуют в mysql и будут работать как есть).Есть ли другие преимущества по сравнению с другими хранилищами ключей / ценностей, такими как кассандра?Каковы недостатки?

1 Ответ

8 голосов
/ 20 сентября 2011

Вы имеете в виду интерфейс HandlerSocket, который обходит уровень SQL-запроса и позволяет извлекать и хранить строки в одной таблице InnoDB по первичному ключу.Идея состоит в том, что избежание накладных расходов на SQL позволяет приложениям запускать гораздо более высокую скорость QPS.

HandlerSocket демонстрирует многообещающие результаты, но пока мы обнаружили (я работаю для Percona), что узким местом являетсянаскоро написанные клиентские интерфейсы.То есть клиентский API для PHP, Ruby и т. Д. В своем текущем состоянии реализации имеет такие накладные расходы, что HandlerSocket не быстрее, чем написание простых операторов SQL для INSERT и SELECT.InnoDB уже оптимизирован для доступа к первичному ключу, поскольку таблицы действительно хранятся в виде кластеризованных индексов по первичному ключу.

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

Еще один недостаток HandlerSocket заключается в том, что AFAIK не поддерживает приращения значений на месте, чтоэто оптимизация, которую предлагают некоторые другие магазины ключей / значений.С HandlerSocket вам нужно будет извлечь значение, прочитать его, увеличить его, а затем отправить обратно в базу данных.Это приводит к состоянию гонки, поэтому вам придется как-то заблокировать ряд.

...