Существует ли проверенное бизнесом облачное хранилище / База данных Ключ => Значение?(Открытый исходный код) [закрытый]

StackOverflow https://stackoverflow.com/questions/639545

Вопрос

Я долгое время искал решения для облачных вычислений и хранения данных (вдохновленный Google Bigtable).Но я не могу найти простое в использовании, готовое для бизнеса решение.

Я ищу простую, отказоустойчивую, распределенную базу данных Key => Value, такую как SimpleDB от Amazon.

Я видел такие вещи, как:

  1. Проект CouchDB :Простая и распределенная, отказоустойчивая база данных.Но он понимает только JSON.Никаких XML-соединителей и т.д.
  2. Эвкалипт :Хорошие интерфейсы Amazon EC2.Открытые стандарты и XML.Но менее распределенный и менее отказоустойчивый?Есть также много открытых заявок с проблемами XEN / VMware.
  3. Облачный магазин / Kosmosfs :Хорошая распределенная, отказоустойчивая fs.Но это сложно настроить.Существуют ли какие-либо java-коннекторы?
  4. Apache Hadoop :Хорошая система, у которой гораздо больше возможностей для хранения данных.Использует собственную распределенную файловую систему Hadoop и была протестирована на кластерах с 2000 узлами.
  5. *Amazon SimpleDB :Не могу найти альтернативу с открытым исходным кодом!Это хорошая, но дорогостоящая система для обработки огромных объемов данных.И вы зависимы от Amazon.

Есть ли другие, лучшие решения?Какой из них лучше всего выбрать?Какой из них обеспечивает наименьшее количество SOF (Точка опаления при отказе)?

Это было полезно?

Решение

MongoDB - еще один вариант, очень похожий на CouchDB, но использующий язык запросов, очень похожий на SQL, а не на карту / уменьшить в JavaScript. Он также поддерживает индексы, профилирование запросов, репликацию и хранение двоичных данных.

В нем огромное количество документации, которая может быть слишком громоздкой, поэтому я бы предложил начать с Тур разработчика

Другие советы

Как насчет сохраненный в памяти?

Тот Самый Высокая Масштабируемость блог освещает этот вопрос;если есть решение с открытым исходным кодом для того, что вам нужно, оно наверняка найдется.

Другие проекты включают в себя:

Еще один хороший список: Защита от РСУБД:Список распределенных хранилищ значений ключей

Википедия сообщает, что Yahoo вносит свой вклад в Hadoop и использует его в своей работе ( ссылка на статью из Википедии ). Так что я бы сказал, что это считается проверенным бизнесом, хотя я не уверен, считается ли это базой данных K / V.

В вашем списке нет системы Friendfeed, которая использует MySQL в качестве простой схемы хранилище ключей / значений .

Мне трудно понять ваши приоритеты. CouchDB прост, отказоустойчив и распространен, но каким-то образом вы исключаете его, потому что у него нет XML. Являются ли коннекторы XML и Java необъявленным требованием?

(Во всяком случае, CouchDB на самом деле должен быть исключен, потому что он молодой, его API не стабилен и не является хранилищем значений ключей.)

Я использую Google Base API Google, это XML, бесплатный, документированный, облачный и имеет разъемы для многих языков. Я думаю, что он оплатит ваш счет, если вы тоже захотите бесплатный хостинг.

Теперь, если вы хотите разместить свои собственные серверы, Токийский кабинет - ваш ответ, его key = > value основывается на использовании плоских файлов и является самой быстрой базой данных на данный момент (очень скромно по сравнению с Oracle, но невероятно хорош для хранения и доступа к данным, около 1 миллиона записей в секунду, с накладными расходами около 10 байтов) (в зависимости от движка хранилища)). Что касается бизнеса, то TokyoCabinet - это сердце сервиса под названием Mixi, который эквивалентен японскому Facebook + MyPage, с несколькими миллионами активных пользователей, так что на самом деле это очень хорошо зарекомендовало себя.

Если вы хотите что-то вроде Bigtable, вы не можете пройти мимо HBase или Hypertable - оба они являются клонами Bigtable с открытым исходным кодом. Однако нужно учитывать, что ваши требования действительно достаточно велики для Bigtable. Он масштабируется до тысяч планшетных серверов, и, как таковой, имеет довольно небольшую инфраструктуру для этого (например, обработку ожидаемых отказов обычных узлов).

Если вы не ожидаете роста, по крайней мере, до десятков планшетных серверов, вы можете рассмотреть одну из предложенных альтернатив: вы не можете превзойти BerkelyDb за простоту или MySQL за повсеместность. Если все, что вам нужно, это хранилище данных ключ / значение, вы можете поместить простую оболочку 'dict' в интерфейс вашей базы данных и отключить бэкэнд, если вы его перерастете.

Возможно, вы захотите взглянуть на гипертаблицу , которая смоделирована после большой таблицы Google.

Используйте CouchDB

  • Что не так с JSON?
  • Преобразование JSON в XML является тривиальным

Возможно, вы захотите взглянуть на это (используя MySQL в качестве хранилища значений ключей):

http://bret.appspot.com/entry/how-friendfeed -uses-MySQL

Cloudera - это компания, которая коммерциализирует Apache Hadoop, и, конечно, с некоторой добавленной стоимостью, такой как продуктизация, конфигурация, обучение и службы поддержки.

Вместо того, чтобы искать что-то, вдохновленное Google Bigtable, почему бы просто не использовать Bigtable напрямую? Вы можете написать интерфейс на Google App-Engine.

Хорошая подборка инструментов хранения для вашего вопроса:

http: // www.metabrew.com/article/anti-rdbms-a-list-of-distributed-key-value-stores/

Tokyo Cabinet также получил определенное внимание, поскольку он поддерживает схемы таблиц, пары значений ключей и хеш-таблицы. Он использует Lua как встроенную платформу сценариев и использует HTTP в качестве протокола связи. Вот отличная демонстрация .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top