Google App Engineの新しい価格設定モデルが発表されたことで、Google Datastoreの対話が非常に高価なため、自分のアプリケーションを維持できなくなることがわかりました。これは、一貫性のある迅速なユーザー入力に依存するソーシャルゲームであるため、このアプリケーションでは、一般的なクエリーや操作を仲介するmemcacheを使用しても、ユーザーごとに非常に多くのデータストアの対話が実行可能になります。Cassandra Client APIはApp Engine Datastore APIに最も類似していますか?
私が行った研究から、私のチームがカッサンドラベースのデータベースソリューションに移行するのに最適なソリューションのようだと思われます。私はHectorやPelopsのような一般的なAPIを見てきましたが、私の最初の検査では、これは私が探しているもののレベルがやや低すぎるようです。 App Engineの低レベルのDatstore APIをエミュレートし、同じ「エンティティグループ」/プロパティモデルを使用するCassandraクライアントAPIがJavaにありますか?少なくとも私はAPIに同じ "Ancestor"エンティティの概念を持ち、同じ方法でグループ間のトランザクションを維持することを望みます。
EDIT:明らかに、私が本当に探しているのは、トランザクションをサポートするCassandra APIです。私が理解できる限り、NoSQL環境でのトランザクションは、「オブジェクト」の階層的なグループ化なしで実装することは不可能ではないにしても難しくありません(あなたのもの、エンティティ、テーブルなどと呼んでください)。これは、Hectorがそれらを実装していない理由です。
私の疑問は、いくつかの形式のトランザクションシステムを実装する最も人気のあるCassandra APIは何ですか、好ましくはGAEのようなエンティティ構造を使用するものですか?
これはあなた自身の質問に対する回答ではありませんが、アプリケーションのデータストアニーズの抽象化。 GAEとCassandraの違いを隠すために設計された内部APIと考えてください(AWSのようなものかもしれません)。 Cassandraのバージョンを実装することはそれほど悪くないことや、将来的にデータストアを柔軟に変更できることがわかります。 – RichW
@RichWええ、それはまさに私たちが今取っているアプローチです。 Googleでは、GAEの特定のDatastore呼び出しとは独立した一連のインターフェイスを作成しており、Datastoreとのすべてのやりとりをそのインターフェイスの実装に移行しています。しかし、私たちが本当にこの段階でやりたいとは思っていなかった巨大な作業です。そのため、どのCassandra APIが最も似ているかを知りたいので、私はそれを研究して、今再設計しているアーキテクチャがあまり必要ないでしょうか我々は不可避の切り替えを行うと変更。 – depthfirstdesigner
私はそのタイプのアプリケーションを持っていれば私はGAE Channel APIを研究していたでしょう。私のアプリケーションは小規模から中規模ですが、新しい価格で20倍以上の料金を支払うことができますが、標準的なHTTPの取得や投稿のみを使用するため、専用サーバーや物理的なホスティングコストの一部に過ぎません。私はChannel APIについて聞いたことがあります。私はそれがこれらのタイプのやりとりをすることができると思います。私が間違っていると申し訳ありませんが、私が読んだ内容に基づいて推測しています。 –