динамически горизонтальное масштабируемое хранилище значений ключей - PullRequest
9 голосов
/ 19 января 2010

Есть ли хранилище значений ключей, которое даст мне следующее:

  • Позвольте мне просто добавлять и удалять узлы и автоматически распространять данные
  • Позвольте мне удалить узлы и при этом иметь 2 дополнительных узла данных для обеспечения избыточности
  • Разрешить хранить текст или изображения размером до 1 ГБ
  • Может хранить данные небольшого размера до 100 ТБ данных
  • Быстро (поэтому разрешит выполнение запросов поверх него)
  • Сделайте все это прозрачным для клиента
  • Работает на Ubuntu / FreeBSD или Mac
  • Бесплатный или открытый исходный код

Мне в основном нужно что-то, что я могу использовать как "одиночный", и мне не нужно беспокоиться о наличии memcached, db и нескольких компонентов хранилища, так что да, я хочу, чтобы вы сказали "серебряную пулю" базы данных.

Спасибо

Зубайр

Ответы пока: MogileFS поверх BackBlaze - насколько я вижу, это просто файловая система, и после некоторых исследований она кажется подходящей только для больших файлов изображений

Токийский тиран - нуждается в облаке. Это не автоматически масштабируется при добавлении новых узлов. Я посмотрел на это, и кажется, что это очень быстро для запросов, которые подходят к одному узлу, хотя

Riak - это тот, который я смотрю в себя, но у меня пока нет результатов

Amazon S3. Кто-нибудь использует это в качестве своего единственного постоянного слоя в производстве? Из того, что я видел, похоже, что оно используется для хранения изображений, поскольку сложные запросы слишком дороги

@ шаман предложил Кассандру - определенно, которую я изучаю

Пока что кажется, что нет базы данных или хранилища значений ключей, которые бы соответствовали упомянутым мною критериям, даже после предложения 100 баллов на вопрос был получен ответ!

Ответы [ 12 ]

1 голос
/ 07 июня 2011

Зубайр,

Я работаю с хранилищем значений ключей, которое до сих пор быстрее, чем что-либо еще .

Он (пока) не использует репликацию, пропуская ваши 2 первых требования, но этот вопрос вдохновил меня - спасибо за это!

нет: позвольте мне просто добавлять и удалять узлы и автоматически распространять данные
нет: позвольте мне удалить узлы и при этом иметь 2 дополнительных узла данных для обеспечения избыточности
хорошо: позвольте мне хранить текст или изображения размером до 1 ГБ (да: без ограничений)
хорошо: может хранить данные небольшого размера до 100 ТБ данных (да: неограниченно)
хорошо: быстро (поэтому разрешит выполнение запросов поверх него) (да: быстрее, чем массив TC-FIXED кабинета Токио)
хорошо: сделайте все это прозрачным для клиента (да: интегрировано в веб-сервер)
хорошо: работает на Ubuntu / FreeBSD или Mac (да: Linux)
ОК: бесплатный или открытый исходный код (да: бесплатное программное обеспечение)

Помимо однопотоковой производительности, превосходящей хэш-таблицы и B-деревья, этот KV-магазин является ЕДИНСТВЕННЫМ, ЧТОБЫ Я ЗНАЛ, ЧТОБЫ «ПОДОЖДАТЬ БЕЗ» (не блокируя и не задерживая какие-либо операции).

1 голос
/ 29 января 2010

Возможно, вы захотите взглянуть на MongoDB .

Из того, что я могу сказать, вы ищете сочетание базы данных / распределенной файловой системы, которое может быть трудно или даже невозможно найти.

Возможно, вы захотите взглянуть на распределенные файловые системы, такие как MooseFS или Gluster , и сохранить ваши данные в виде файлов. Обе системы являются отказоустойчивыми и распределенными (вы можете вставлять и извлекать узлы по своему усмотрению), и обе прозрачны для клиентов (построенных поверх FUSE) - вы используете простые операции с файловой системой. Это охватывает следующие функции: 1), 2), 3), 4), 6), 7), 8). Мы используем MooseFS для хранения цифровых фильмов с объемом хранилища около 1,5 ПБ, а загрузка / выгрузка выполняется настолько быстро, насколько позволяет настройка сети (поэтому производительность зависит от ввода-вывода, а не от протокола или реализации). У вас не будет запросов (функция 5) в вашем списке), но вы можете связать такую ​​файловую систему с чем-то вроде MongoDB или даже с какой-нибудь поисковой системой, такой как Lucene (с кластерными индексами), для запроса данных, хранящихся в файловой системе. .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...