Волдеморт против couchdb

Я пытаюсь решить, использовать ли Voldemort или couchdb для предстоящего медицинского проекта. Мне нужна система хранения, обладающая высокой доступностью, отказоустойчивостью и способная масштабироваться для больших объемов данных, которые в нее перебрасываются.

Каковы плюсы / минусы каждого из них?

Спасибо

Ответов (3)

Проект «Волан-де-Морт» выглядит неплохо, но я пока еще не вдавался в подробности.

В этом случае CouchDB может не подходить для «огромных объемов данных». Распределение данных между узлами и маршрутизация запросов соответственно входит в план, но пока не реализовано. Самые большие известные производственные установки CouchDB используют «таблицы» («базы данных», говоря кушеткой) около 200 Гбайт.

HA изначально не поддерживается CouchDB, но может быть легко построена: все узлы CouchDB реплицируют узлы базы данных между собой в настройке с несколькими мастерами. Мы помещаем два прокси Varnish перед машинами CouchDB, и ящики Varnish становятся избыточными с помощью CARP . Дизайн CouchDB, построенный на основе Интернета, делает такие вещи очень простыми.

Самая серьезная проблема в нашей настройке - это то, что все еще существуют проблемы с репликацией больших (несколько МБ) вложений в документы CouchDB.

Я предлагаю вам также проверить традиционный маршрут СУБД. Существуют огромные проблемы с доступными талантами вне подхода РСУБД, и есть очень эффективные предложения, доступные от Oracle & Co.

Можно ли использовать memcacheDB ? Я слышал, как Digg решает проблемы с высокой доступностью.

Не зная достаточно вашего вопроса, я бы тем не менее сказал, что Project Voldemort или распределенные хэш-таблицы ( DHT ), такие как CouchDB, в целом являются решением вашей проблемы высокой доступности.

Эти DHT очень хороши для обеспечения высокой доступности, но их сложнее написать код, чем для традиционных реляционных баз данных (РСУБД) в отношении согласованности.

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

  • Самым большим ограничением большинства хранилищ является то, что они не являются безопасными с точки зрения транзакций (см. Scalaris для хранилища с транзакционной безопасностью), и вам необходимо самостоятельно обеспечить согласованность данных - в большинстве случаев согласованность времени чтения используется путем объединения конфликтующих данных). РСУБД намного проще использовать для обеспечения согласованности данных (ACID)
  • Объединение данных тоже намного сложнее. В RDBM вы можете легко запрашивать данные по нескольким таблицам, вам нужно написать код в CouchDB для агрегирования данных. Для других магазинов Hadoop может быть хорошим выбором для агрегирования информации.

Прочтите о BASE и теореме CAP о согласованности и доступности.

Видеть