34

Cassandraをデータベースとして使用することを検討しているプロジェクトに取り組んでいます。スケーラビリティを考慮して、最初にMySQLを使用したとしても、最終的にはCassandraに移行したいと考えています。Facebook、Digg、最近のTwitterなどの大企業がCassandraを使用していることは知っていますが、これらのサイトのいずれもRailsから実行されているとは思いません。私の質問は、RubyonRailsを使用してCassandraを使用できるかどうかです。考慮すべきポイント:

  1. 私たちはAuthlogicの宝石に大きく依存しています。カサンドラに切り替えると、動作に影響しますか?
  2. カサンドラの成熟したルビークライアントはいますか?Githubを見ると、動物相のクライアント(現在はtwitterのクライアント)が最も成熟しているようです。誰かがそれを使った制作経験がありますか?

ヒントに感謝します。

4

5 に答える 5

17

TwitterはほとんどのフロントエンドでRailsを実行しています。Faunaのクライアントは、実際にはTwitterによって構築およびリリースされているため、大規模なワークロードで最新かつ安定していることを確信できます。コミットの履歴を見ると、頻繁に改善が行われていることがわかります。これは素晴らしいことです。

ほとんどの場合、AuthlogicはCassandraで正しく機能するようにカスタマイズする必要があります。特に、named_scopeとリレーショナルデータに基づいた特定のメソッドを提供しているようです。

誰かがAuthlogicでDataMapperサポート用のプラグインを作成したようです:http ://twitter.com/collintmiller/statuses/2064046718 。それをCassandraと互換性を持たせるための出発点として使用できるかもしれません。

幸運を!

于 2010-03-04T21:51:56.347 に答える
10

MySQLから始めて、Cassandraに移行するのは良い考えではないと思います。

CassandraはNoSQLソリューションですが、MySQLは「クラシック」なSQL駆動型データベースです。

これは、モデルが異なることを意味します。

MySQLを使用する場合は、モデルの作成をActiveRecordに依存する必要があります。その後、Cassandraに変更する場合は、すべてのモデルをNoSQL互換のミドルウェア(BigRecordなど)に変更する必要があります。これは、モデルを変更するだけでなく、モデルを使用するコントローラーも変更することを意味します(インターフェイスが異なるため)。

とはいえ、カサンドラなどは、ツイッターなどの非常に要求の厳しいアプリケーションで使用されることになっています。

そこにある残りのWebアプリケーションは、桁違いに強度が低くなっています。それでもCassandraが必要になると思いますか?

PostgreSQLと適切に設計されたデータベースは、98%の確率で十分です。

于 2010-03-04T22:38:14.823 に答える
7

その後、Cassandraに変更する場合は、すべてのモデルをNoSQLに変更する必要があります

これはまったく真実ではありません。MySQLデータベースが大量の結合を実行するようにプログラムした場合は、はい、問題が発生している可能性があります。MySQLルートを開始したとき、最初から可能な限り結合を避けました。その後、Casandraへの移行を開始したときは、かなり簡単でした。最初は1つのモデルのみで移行しました。次に、一度に4つのモデルを言います。などうまくいきます。実際、Twitterのインタビューを読むと、MySQLとCasandraが同じモデルでしばらく並行して実行されていることに気付くでしょう:http://nosql.mypopescu.com/post/407159447/cassandra-twitter-an-interview -with-ryan-king

Authlogicに関しては、その部分をmySQLに好きなだけ保持でき、Cassandraデータと緩く結合しておくだけです。

于 2010-03-21T23:48:41.157 に答える
5

現在、Cassandra、MongoDB、およびCouchDBを調査しています。

開発者のサポートが最も多いのはどれかを判断する1つの方法は、それぞれの最も評価の高いgithubプロジェクトのウォッチャーの数を確認することです。少なくとも大まかな見積もりとして。

今は

852-MongoDB http://github.com/jnunemaker/mongomapper

544-CouchDB http://github.com/jchris/couchrest

178-カサンドラ http://github.com/fauna/cassandra

最近、多くの有名なサイト(Twitter、Digg、Redditなど)がCassandraに移行することを発表しましたが、これは彼らにとって大きな信頼の投票です。

Mongoには、これまでで最も多くの最高のドキュメントがあるようです。彼らの自動シャーディングはまだアルファ版ですが、それがどれだけうまくスケーリングするかはまだ分からないと思います。

私はこれらすべてについて学び始めたばかりなので、他の人が洞察を持っているなら共有してください。

于 2010-03-20T06:04:30.670 に答える
1

http://github.com/NZKoz/cassandra_objectもあります。これは、IIANMが動物相クライアントの上に構築したものです。「CassandraObjectは、Cassandraを操作するための優れたAPIを提供します。CassandraObjectsはほとんどがActiveRecordオブジェクトと互換性のあるダックタイプであるため、ほとんどのコントローラーコードは問題なく動作するはずです...開発を支援したい場合にのみ、これを本番環境で使用してください、現在、ラフなエッジがたくさんあります。」

于 2010-03-05T14:02:26.130 に答える