7

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のようなエンティティ構造を使用するものですか?

+0

これはあなた自身の質問に対する回答ではありませんが、アプリケーションのデータストアニーズの抽象化。 GAEとCassandraの違いを隠すために設計された内部APIと考えてください(AWSのようなものかもしれません)。 Cassandraのバージョンを実装することはそれほど悪くないことや、将来的にデータストアを柔軟に変更できることがわかります。 – RichW

+0

@RichWええ、それはまさに私たちが今取っているアプローチです。 Googleでは、GAEの特定のDatastore呼び出しとは独立した一連のインターフェイスを作成しており、Datastoreとのすべてのやりとりをそのインターフェイスの実装に移行しています。しかし、私たちが本当にこの段階でやりたいとは思っていなかった巨大な作業です。そのため、どのCassandra APIが最も似ているかを知りたいので、私はそれを研究して、今再設計しているアーキテクチャがあまり必要ないでしょうか我々は不可避の切り替えを行うと変更。 – depthfirstdesigner

+0

私はそのタイプのアプリケーションを持っていれば私はGAE Channel APIを研究していたでしょう。私のアプリケーションは小規模から中規模ですが、新しい価格で20倍以上の料金を支払うことができますが、標準的なHTTPの取得や投稿のみを使用するため、専用サーバーや物理的なホスティングコストの一部に過ぎません。私はChannel APIについて聞いたことがあります。私はそれがこれらのタイプのやりとりをすることができると思います。私が間違っていると申し訳ありませんが、私が読んだ内容に基づいて推測しています。 –

答えて

1

あなたはhector-object-mapperを見ましたか? https://github.com/rantav/hector/tree/master/object-mapper

Hector経由でApache Cassandraの軽量で注釈駆動の永続性。ヘクターの使用方法の詳細ドキュメントについては、以下を参照してくださいhttp://hector-client.org

+0

Hectorは確かに最も人気のあるCassandra API for Javaだと思われますが、私が読んだところでは、オブジェクトマッピングを「エンティティグループ」にグループ化するためのサポート/計画はありません。私が理解する限り、オブジェクトをグループ化せずにNoSQLデータベースにトランザクションシステムを実装することは(不可能ではないにしても)困難です。おそらく、私が本当に探しているのはトランザクションをサポートするCassandra APIだと説明するために少し質問を明確にするべきでしょう。 – depthfirstdesigner

+3

https://issues.apache.org/jira/browse/CASSANDRA-1684 - 利用可能になるとすぐに対応します:-) – zznate

+1

また、「エンティティグループ」に関する元の調査やhttp://research.google.com/pubs/archive/36971.pdf(「megastore」の論文とPat Hellandの分散トランザクションを超えたライフ:www.ics.uci.edu/~cs223/papers/cidr07p15を参照してください) .pdf – zznate

0

を私は見つけることができる最高のは、それがアップを設定し、他のGAEのサービスなしでスタンドアローンのサービスとしてデータストアを実行する方法を私には不明だけれどもカサンドラを使用するAppScaleです。私はissueを作成しました。技術的には、わずかな調整で同じクライアントライブラリを使用することができます(つまり、データストアのURL /エンドポイントを独自のURL /エンドポイントに置き換えることができます)

関連する問題