2013-09-05 1 views
1

Я ищу распределенную базу данных kv для кэширования небольших двоичных объектов, например изображений с TTL. Ограничение по размеру не является проблемой, так как я планирую разделить каждый объект в любом случае, чтобы свести к минимуму задержку. Мне нужны драйверы C# и Java, и в ближайшем будущем мне также понадобится драйвер C++. Такие базы данных, как CouchDb и Redis, по-видимому, основаны на документах. Mongo поддерживает двоичные данные и хорошо документирован, но он является постоянным, и я не уверен, что он масштабируется с точки зрения пропускной способности, Cassandra также настойчив, и я не уверен в качестве драйверов C++/C# и необходимости постоянного ремонта из-за удаления.Key/Value распределенная база данных для кэширования двоичных данных

Aerospike - коммерческий, а также основанный на документе. Может быть, Riak с памятью или файловым сервером leveldb (кто-нибудь работал со своим клиентом C++?)

+1

Redis на самом деле не основан на документах, но имеет поддержку для богатых типов данных. – jayadev

+1

Aerospike не является основанной на документе. Он поддерживает тип данных blob для хранения двоичных данных. В нем есть драйверы Java/C#/C. – sunil

ответ

2

Couchbase (не CouchDB) - отличный вариант для вас. Высокая масштабируемость, простота в понимании, использовании и масштабировании. Это база данных документов KV, сформированная из memcached, которая также предлагает вторичные индексы через Map/Reduce и многие новые вещи в ближайшее время. Вы все еще можете использовать memcached протокол/библиотеки или ускорить его с помощью Couchbase SDK.

+0

Но разве это не значительные накладные расходы для хранения двоичных данных в виде документов с точки зрения емкости и сети? – pavelk

+0

Couchbase позволяет хранить любые значения, вы можете хранить двоичный контент, строку, ... или документ JSON. Единственным ограничением является размер 20 Мб. Couchbase - это ключевое значение и база данных документов. –

0

Вы просматриваете Pivotal GemFire Pivotal GemFire ​​- это распределенная платформа управления данными, обеспечивающая динамическую масштабируемость, высокую производительность и постоянство базы данных.

Pivotal GemFire ​​также драйверы клиента в C++, C# и Java

4

Aerospike будет идеальным решением для вас из-за следующих причин:

Обслуживает все случаи использования

  1. Основанное на ключевом значении.
  2. Открытый источник из версии 3.0. Раньше до 2 узлов Aerospike кластер был открыт, и было заплачено 3 или более узлов кластера.
  3. Может использоваться в режиме кеширования без настойчивости.
  4. Поддерживает LRU и TTL.
  5. Может сохранять двоичные данные.

Причины выбора Aerospike

  1. Throughput: Лучше, чем Монго/Couchbase или любое другое решение NoSQL. См. Это http://www.aerospike.com/benchmark/. Лично видели, что он работает нормально с более чем 300k, читает TPS и 100k пишет TPS одновременно.
  2. Автоматический и эффективный сбор данных, перебалансировка данных и распределение данных с использованием RIPEMD160.
  3. Высокодоступная система в случае отказоустойчивости и/или сетевых разделов.