Дисковое хранилище документов - PullRequest
0 голосов
/ 25 февраля 2012

Существует ли в Интернете бесплатно масштабируемая дисковая система хранения NoSQL?Хорошая особенность SQL Server заключается в том, что он масштабируется, но перенос моего проекта в таблицы SQL - это кошмар, так как это все объекты?

Варианты: 1. Запуск из памяти 2. Сериализация документа3. Преобразовать в SQL 4. Использовать большое хранилище данных NoSQL

Ответы [ 3 ]

3 голосов
/ 25 февраля 2012

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

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

1 голос
/ 09 июля 2012

В последние недели я имел дело с тем же вопросом;Вот мои наблюдения:

  1. SQL Server работает, но плохо масштабируется.Мы протестировали базу данных SQL Server, содержащую примерно 600 ГБ документов, и, скажем так, дела идут очень медленно.
  2. Более или менее то же самое верно для MySQL ... оба на самом деле не созданы для документов ...
  3. Hadoop / HDFS не выглядит зрелым в Windows.Хотя у Microsoft есть доступная реализация HDFS, она все еще находится в фазе RC.Положительным моментом является то, что если вы разрабатываете на будущее (скажем, 1 год до производства), это, кажется, хороший выбор.
  4. Apache Cassandra кажется зрелым.На положительном, реализация очень проста;то есть: это в основном просто распределенное хранилище значений ключа с одним разделителем, где и ключ, и значение являются байтом [].Тем не менее, простота реализации также означает, что вам нужно обойти все виды проблем.Если вы работали с ним, вы знаете, что это замечательно, если вам нужно реализовать Twitter, но слишком просто для всего остального.Он хорошо масштабируется, но, честно говоря, я не слишком впечатлен производительностью.Кроме того, я столкнулся с парой несоответствий / искажений данных, которые не очень греют мое сердце ... Если вы используете Cassandra, я бы лично использовал Aquiles в качестве клиента (потому что вы легко столкнетесь с вещами низкого уровня)- но FluentCassandra тоже хороший клиент.
  5. MongoDB также вполне зрелый.С другой стороны, он активен и имеет очень хорошую и простую в использовании (в отличие от Cassandra) клиентскую библиотеку C #.Кроме того, хотя на моем кластере несколько раз произошел сбой сервера shard, восстановление всегда выполнялось (и я не слишком вежлив с перезапусками :-), и все проблемы, с которыми я столкнулся, похоже, уже решены в ветви разработки -так что я не чувствую себя неловко по этому поводу.Самое важное, что есть в MongoDB и в Cassandra, - это поддержка вторичных индексов.

Все эти решения основаны на диске (например, постоянство на диске).

Я посмотрел код3-5 и реализовал свое собственное NoSQL-решение в прошлом (около 6 лет назад), которое мы использовали для хранения данных в последние годы.Если честно, MongoDB - это то, как я бы сам это реализовал.

Для полноты: единственное, что я еще не попробовал, это CouchDB ... но, честно говоря, я так счастлив с MongoDB, что даже не буду беспокоиться.

-Stefan.

0 голосов
/ 25 февраля 2012

Существует множество параметров NoSQL, предлагаемых для лицензии с открытым исходным кодом (GPL или Apache).При поиске я наткнулся на этот список , который дает справедливое сравнение возможностей некоторых параметров.

Если вам необходимо иметь поддерживаемый клиент C #, вы будетенемного более ограниченным, но я бы посмотрел на MongoDB и Redis, потому что я использовал их в прошлом с хорошими результатами.

...