2010-12-30 5 views
2

Nous construisons une application Web impliquant Quel SGBD orienté document se confond avec les applications erlang?

Yaws, Nitrogen and Mnesia

Maintenant une partie du système nécessite le stockage de valeurs-clés et nous avons constaté que si nous le séparons des autres parties du système, l'efficacité et la disponibilité seraient améliorées. Une autre exigence est que l'information que nous mettons dans le SGBD de la banque de documents, devrait pouvoir être accessible à partir d'autres technologies comme PHP, Java, Python, même Ruby.

Option1: CouchDB

Dans quelle mesure CouchDB effectuer dans le temps des charges fluctuantes ?, Quelles sont les techniques de reprise après incident ne fait CouchDB offre ?, Qu'en est-archivage, sauvegarde, gestion de fichiers, etc je je devais accéder aux données de CouchDB d'un application erlang sur une machine distante, lequel des mécanismes suivants est le meilleur

Using: curl -X [HTTP METHOD] [URI] [REQUEST]
ou
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

Mise à part l'accès, comment la performance est-elle affectée par la méthode d'accès choisie lorsque vous travaillez avec CouchDb?

, Combien d'enregistrements ou de paires de valeur-clé peuvent-elles enregistrer, je veux dire y at-il une limite? Existe-t-il une limite de taille de fichier dans CouchDb comme c'est le cas à 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

/[email protected]

Répondre

1

Vous pouvez jeter un oeil à la bibliothèque de l'aéroglisseur de Chris Andersen pour un pilote erlang natif pour Couchdb.

https://github.com/jchris/hovercraft

Je ne l'ai pas essayé aéroglisseur.J'utilise ecouch (https://github.com/JackDanger/ecouch) pour mon application web à base d'azote et mon expérience avec ecouch est bonne jusqu'à présent.

Comme suggéré plus haut par inaka, futon est très pratique pour la gestion, bases de données, la création de documents de conception, vues, réplication de base de données, etc.

Il est indexeur en texte intégral et seracher pour CouchDB basé sur Lucene. (https://github.com/rnewson/couchdb-lucene)

La limite de taille de document sur Couchdb est actuellement de 4 Go.

Le fil suivant a quelques entrées précieuses

Anyone using CouchDB?

4

Nous utilisons Couch pour une application Erlang avec 150k utilisateurs connectés simultanément faire des demandes. Le fait est que nous l'exécutons dans un nœud erlang séparé et que nous utilisons CouchBeam pour l'accès, ce qui fait des requêtes HTTP, donc il n'y a aucun avantage pratique à ce qu'il soit écrit en Erlang.

Nous sommes heureux avec Couch et Erlang, et nous avons même apporté nos modifications à CouchBeam de retour au projet. En ce qui concerne le support de Couch, il est facile à gérer grâce à Futon et il est facile de gérer la réplication.

Edité pour ajouter: nous avons utilisé à l'origine mnesia au lieu de Couch mais le temps de démarrage si un noeud descendait mal rendu mnesia prohibitif. En outre, nous n'avons pas considéré Mongo en raison des dangers de la perte de données en raison du fait qu'il ne garantit pas les écritures pendant une minute et recommande la réplication comme un moyen d'assurer la fiabilité (nous don ' Je ne veux pas avoir besoin de deux nœuds sur un matériel séparé avec une alimentation séparée).

2

Jetez un coup d'œil à Riak. Il a été écrit à Erlang et utilisé en production par certaines entreprises.

4

... mes données sont stables, permanentes et sans danger.

Vous voudrez probablement revérifier les garanties de persistance de MongoDB avant de continuer. Il y a une raison pour laquelle MongoDB est perçu comme "rapide". Clause de non-responsabilité: MongoDB est un projet actif, que je ne synchronise qu'avec une fois très peu de trimestres ....

Questions connexes