0

非常に急速に成長する可能性のあるスタートアップに対して、どのデータベースを提案しますか?

具体的には:

  • JSONを使用してモバイルクライアントとデータを交換しているため、データは理想的にはこの形式で保存する必要があります
  • データモデルは、ユーザー、カテゴリ、アクションの履歴など、比較的単純です。
  • ユーザーは「リアルタイム」で対話します(5秒の伝播遅延は引き続きOKです)
  • クエリは事前にわかっています(結果をキャッシュしたり、mapreduceを使用したりできます)
  • システムには最大10000人の同時ユーザーがいます(推測だけです...)
  • トランザクションはプラスですが、トランザクションなしで生きることができると思います
  • 空間的に有効になっていることはプラスです
  • ノード間のデータレプリケーションは管理が容易である必要があります
  • オープンソース
  • 利用可能なホスティングサービス(sysadmin部分を外部委託したい)

これで、標準のリレーショナルPostgreSQL/PostGISを使用した機能的なプライベートプロトタイプができました。しかし、スケーラビリティとは別に、リレーショナルデータをJSONに、またはその逆に変換する必要があります。これは、高負荷のオーバーヘッドのようです。

少し調べましたが、すべての新しいNoSQLに関する経験が不足しています。
これまでのところ、私はこれらの解決策について考えています:

  • Couchbase:マスターマスターレプリケーション、ネイティブJSONドキュメントストア、空間拡張、couchapps。iriscouchホスティングについてはわかりませんが、優れた技術のようです。
    これまでに見た欠点は、JavaScriptのデバッグ、ディスクの占有です。
  • MongoDb:マスターは1つだけですが、安全なフェイルオーバーがあります。バイナリJSONを使用します。
  • クラスターMySQL:ウェブの常緑樹(私が思うに1人のマスター)
  • PostgresSQL&Slony:Postgresが大好きだから:-)

しかし、他にもたくさんあります、Cassandra、Membase ...皆さんは実際の経験がありますか?悪いものも重要です!
前もって感謝します、

カレル

4

1 に答える 1

1

スケーリングにすでに問題がない限り、将来に実際に何が必要かを実際に把握することはできません。顧客を最もよく見積もるときではなく、必要なものに基づいて設計を決定する必要があります。10,000番目の顧客に印象を与えることを心配する前に、最初の数人の顧客に、製品が問題をどれだけうまく解決しているかを印象付ける必要があることを忘れないでください。

そうは言っても、基本的にすべてを持っていることがほとんどの場合必要であることがわかりました。

  • 現在のアプリケーションの一部である重要なデータとクエリのためのスマートで強力なデータベース。このため、私はPostgreSQL/PostGISに先んじて選択の余地はありません。
  • システムを通過したものを永久に記録するためのドキュメントデータベース(NoSQLと呼ばれることもあります)。1年前は無効または役に立たなかったリクエストでしたが、今ではそのようなデータを使用できるアプリケーションがあり、ベンダーは最終的に解析に必要なAPI仕様を提供しました。あなたがそれで働くことができる形。私の現在の組織では、これにCouchDBを使用しており、これまでのところ、これは優れた選択肢であることが証明されています。

リレーショナルデータをJSONに、またはその逆に変換する必要があります。これは、高負荷のオーバーヘッドのようです。

あまり; 高価なものはIOと不十分に書かれたクエリです。マーシャリング/アンマーシャリングは純粋なCPUであり、これは世界で最も安価に成長するものです。ご心配なく。

于 2012-03-15T18:20:53.773 に答える