2012-03-15 4 views
0

Quelle base de données suggérez-vous pour une startup qui pourrait éventuellement se développer très rapidement?persistance évolutive pour le démarrage

Pour être plus précis:

  • Nous utilisons JSON pour échanger des données avec les clients mobiles, de sorte que les données doivent être stockées idéalement dans ce format
  • Le modèle de données est relativement simple, comme les utilisateurs, catégories, histoire de actions ...
  • Les utilisateurs interagissent en « temps réel » (5 secondes de retard de propagation est encore OK)
  • Les requêtes sont connues à l'avance (peut mettre en cache les résultats ou utiliser MapReduce)
  • Le système aurait jusqu'à 10000 utilisateurs simultanés (qu'émettre des conjectures ...)
  • Les transactions sont un plus, mais peuvent vivre sans eux, je pense que
  • géomatisé est un plus
  • La réplication de données entre les nœuds doivent être facile à administrer
  • Open Source
  • services d'hébergement disponibles (nous aimerions externaliser la partie sysadmin)

nous avons maintenant un Prototy privé fonctionnel pe avec un PostgreSQL/PostGIS relationnel standard. Mais l'évolutivité mise à part les questions, je dois convertir des données relationnelles en JSON et vice versa ce qui me semble être un surcoût en forte charge.

J'ai fait un peu de recherche mais je manque d'expérience avec tous les nouveaux trucs NoSQL.
Jusqu'à présent, je pense à ces solutions:

  • Couchbase: réplication maître-maître, magasin de documents JSON natif, l'extension spatiale, couchapps et bien que je ne sais pas iriscouch hébergement ils semblent bons techniciens. L'inconvénient que je vois à ce jour est le débogage javascript, l'occupation du disque.
  • MongoDb: possède un seul maître mais un basculement sûr. Utilise JSON binaire.
  • MySQL Cluster: les feuilles persistantes de web (un maître, je pense)
  • PostgresSQL & Slony: parce que j'adore Postgres :-)

Mais il y a beaucoup d'autres, Cassandra, Membase ... Les gars avez-vous une expérience de la vie réelle? Le mauvais compte aussi!
Merci à l'avance,

Karel

+0

PostgreSQL 9.2 (la prochaine version) aura un type de données JSON natif. –

+0

Bonne nouvelle! Merci – elkarel

Répondre

1

Sauf si vous êtes déjà des problèmes avec mise à l'échelle, vous ne pouvez pas vraiment avoir une bonne idée de ce que vous avez réellement besoin pour l'avenir. Vous devriez fonder vos décisions de conception sur ce dont vous avez besoin maintenant, et non lorsque vous avez votre meilleure estimation des clients.Rappelez-vous, vous devez impressionner vos premiers clients comment votre produit résout leurs problèmes avant de pouvoir vous soucier de impressionner votre 10 000 e

Cela dit, je l'ai trouvé que son presque toujours neccesary d'avoir pratiquement tout:

  • Une base de données intelligente/puissante pour les données importantes et les requêtes qui font partie de l'application actuelle. Pour cela, je n'ai pas le choix en avance sur PostgreSQL/PostGIS.
  • Une base de données de documents (parfois appelée NoSQL) pour enregistrer pour toujours tout ce qui a traversé votre système. C'était une demande invalide ou inutile il y a un an, mais maintenant vous avez une application qui peut utiliser ce genre de données, et le vendeur vous a finalement donné la spécification d'API dont vous avez besoin pour l'analyser, j'espère que vous l'avez dans un formez vous pouvez travailler avec. À mon organisation actuelle, nous utilisons CouchDB pour cela et il s'est avéré être un excellent choix jusqu'à présent.

je dois convertir des données relationnelles en JSON et vice versa, qui apparaît comme une surcharge en charge élevée.

Pas vraiment; le truc cher est IO et les requêtes mal écrites. Le marshalling/unmarshalling est un processeur pur, ce qui est à peu près la chose la moins chère au monde à se développer. Ne t'en fais pas pour ça.

+0

Merci pour vos conseils perspicaces. Je sais que cela peut sembler une optimisation prématurée, mais de toute façon je pense que je devrais vérifier les alternatives. Donc vous utilisez CouchBase pour des sortes de statistiques? Recommanderiez-vous le stockage principal? – elkarel

+0

Je ne pense pas que je recommanderais quelque chose pour "stockage primaire", peu importe ce que cela signifie. CouchDB et PostgreSQL résolvent des problèmes fondamentalement différents, et les deux sont des problèmes communs présents dans de nombreuses applications; vous avez probablement besoin des deux, mais pour des tâches différentes. Sans en savoir plus sur le problème spécifique que vous essayez de résoudre, je ne peux pas vous donner plus de conseils spécifiques que "utiliser le bon outil pour le travail" – SingleNegationElimination

Questions connexes