哪个面向文档的DBMS与erlang应用程序混合?

Muz*_*hua 2 erlang couchdb mnesia mongodb nosql

我们正在构建涉及的Web应用程序

Yaws,  Nitrogen and Mnesia

现在系统的一部分需要键值存储,并发现如果我们将它与系统的其他部分分开,效率和可用性将得到改善.另一个要求是我们在文档存储DBMS中放置的信息应该能够从其他技术访问,如PHP,Java,Python甚至Ruby.

Option1: CouchDB

couchDB在负载波动时的表现如何?CouchDb提供什么样的灾难恢复技术?,归档,备份,文件管理等等我从远程计算机上的erlang应用程序访问couchDB中的数据,其中一个是以下机制更好

Using: curl -X [HTTP METHOD] [URI] [REQUEST]
要么
Using Erlang CouchDB drivers [e.g benoitc-couchbeam from github e.t.c]. {do
these drivers require couchDb to be on the same host as the driver?,
Which mechanisms do they use to access CouchDb, i.e.
[do they use its HTTP access APIs?, or built-in Erlang RPC mechanisms?,
TCP/IP sockets?]}
Is there a CouchDb erlang driver that can give me Erlang terms direct?
i.e. if i create a document, can i use any erlang terms in both the Key and
Value?, The JSON data format forces us to use
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
(unofficial) called "erlmongo" from github.But there is a second one called
"emongo". Looking at the implementation of these two shows that both offer
record or property lists (data structures in erlang). We have sofar
tested erlmongo and it is quite fast compared to couchDb
(Perhaps due to Mongo's being implemented in C++).
How much data can mongo handle? is there a limit on file size?
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, 
fast, and multi-platform.CouchDB being implemented in Erlang makes one
think that it provides direct semantics to Erlang programmers to store or even
retrieve Erlang Terms from CouchDB. The biggest problem is which Data store
can give me the highest percentage of assurance that my data is stable,
permanent, and safe.......Help me guys

/joshmuza@gmail.com

ina*_*aka 5

我们将Couch用于一个Erlang应用程序,其中有150,000个同时连接的用户发出请求.事实是我们在一个单独的erlang节点中运行它,并且我们使用CouchBeam进行访问,这是在发出HTTP请求,因此用Erlang编写的事实没有实际的优势.

我们对Couch和Erlang感到满意,我们甚至将我们对CouchBeam的更改贡献给了项目.至于支持Couch,由于Futon很容易管理,处理复制很容易.

编辑添加:我们最初使用的是mnesia而不是Couch,但是如果一个节点不合时宜地使用mnesia禁止启动时间.

顺便说一句,我们没有考虑到Mongo由于数据丢失的危险,因为它不能保证写入最多一分钟,并建议复制作为确保可靠性的手段(我们不想要求我们自己在具有单独电源的独立硬件上运行两个节点.