Какая СУБД, ориентированная на документы, сочетается с приложениями erlang? - PullRequest
2 голосов
/ 30 декабря 2010

Мы создаем веб-приложение, включающее

Yaws,  Nitrogen and Mnesia

Теперь часть системы требует хранения значения ключа и обнаружила, что если мы отделим ее от других частей системы, эффективность и доступность будут улучшены. Другое требование заключается в том, что информация, которую мы помещаем в СУБД хранилища документов, должна быть доступна из других технологий, таких как PHP, Java, Python и даже Ruby.

Option1: CouchDB

Насколько хорошо работает couchDB во время колебаний нагрузки? Какие методы аварийного восстановления предлагает CouchDb ?, Как насчет архивирования, резервного копирования, управления файлами e.t.c Я должен был получить доступ к данным из couchDB из приложения erlang на удаленной машине, какой из следующих механизмов лучше

Using: curl -X [HTTP METHOD] [URI] [REQUEST]
или
Using Erlang CouchDB drivers [e.g benoitc-couchbeam from github e.t.c]. {do<br>these drivers require couchDb to be on the same host as the driver?, <br>Which mechanisms do they use to access CouchDb, i.e.<br>[do they use its HTTP access APIs?, or built-in Erlang RPC mechanisms?,<br>TCP/IP sockets?]}<br> Is there a CouchDb erlang driver that can give me Erlang terms direct?<br> i.e. if i create a document, can i use any erlang terms in both the Key and<br> Value?, The JSON data format forces us to use<br> strings,integers,floats and binaries only

Если оставить в стороне доступ, как влияет на производительность метод доступа, выбранный при работе с CouchDb?

, Сколько записей или, скажем, пар ключ-значение может сохранить couchDB? Есть ли какое-то ограничение на размер файла в CouchDb, как в Mnesia?

Option2: MongoDB

We have MongoDB running and sofar we are accessing it using an Erlang driver<br> (unofficial) called "erlmongo" from github.But there is a second one called<br> "emongo". Looking at the implementation of these two shows that both offer<br> record or property lists (data structures in erlang). We have sofar<br> tested erlmongo and it is quite fast compared to couchDb<br> (Perhaps due to Mongo's being implemented in C++). <br>
How much data can mongo handle? is there a limit on file size?<br> Which erlang driver can be trusted before we go into production with MongoDB?
Now the problem is choosing between these two. MongoDB appears to be stable, <br>fast, and multi-platform.CouchDB being implemented in Erlang makes one<br>think that it provides direct semantics to Erlang programmers to store or even<br>retrieve Erlang Terms from CouchDB. The biggest problem is which Data store<br> can give me the highest percentage of assurance that my data is stable, <br>permanent, and safe.......Help me guys

/joshmuza@gmail.com

Ответы [ 4 ]

5 голосов
/ 30 декабря 2010

Мы используем Couch для приложения Erlang с 150k одновременно подключенных пользователей, делающих запросы.Дело в том, что мы запускаем его в отдельном узле erlang и используем для доступа CouchBeam, который выполняет HTTP-запросы, поэтому нет практического преимущества в том, что он написан на Erlang.

Мы довольны Couch и Erlang, и мы даже внесли свои изменения в CouchBeam обратно в проект.Что касается поддержки Couch, им легко управлять благодаря Futon, а справляться с репликацией - легко.

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

4 голосов
/ 31 декабря 2010

... мои данные стабильны, постоянны и безопасны.

Вы, возможно, захотите очень внимательно проверить гарантии сохранности MongoDB перед тем, как продолжить.Есть причина, по которой MongoDB воспринимается как «быстрый».Отказ от ответственности: MongoDB является активным проектом, который я синхронизирую только раз в несколько кварталов ...

2 голосов
/ 30 декабря 2010

Взгляните на Riak . Он написан на Erlang и используется в производстве некоторыми компаниями.

1 голос
/ 02 января 2011

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

https://github.com/jchris/hovercraft

Я не пробовал судно на воздушной подушке. Я использую ecouch (https://github.com/JackDanger/ecouch) для своего азотного веб-приложения, и мой опыт работы с ecouch пока хороший.

Как предлагает Инака выше, Futon пригодится для управления базами данных, создания проектных документов, представлений, репликации баз данных и т. Д.

Существует полнотекстовый индексатор и серачер для Couchdb на основе Lucene. (https://github.com/rnewson/couchdb-lucene)

Ограничение размера документа на Couchdb в настоящее время составляет 4 ГБ.

В следующей ветке есть ценные входные данные

Кто-нибудь использует CouchDB?

...