4

私は現在、GoogleAppEngineでホストされているアプリケーションを開発しています。ただし、gaeには多くの欠点があります。実際のインスタンスにアタッチできないため、コストが高く、デバッグが非常に困難です。

gaeをオープンソースの代替手段に変更することを検討しています。残念ながら、私を満足させる既存のNOSQLソリューションはどれも、gaeのトランザクション(エンティティグループ内のgaeサポートトランザクション)と同様のトランザクションをサポートしていません。

この問題を解決することについてどう思いますか?私は現在、Apache Cassandra +トランザクション用のロックサービス(hazelcast)のようなストアを検討しています。この分野での経験はありますか?あなたは何をお勧めできますか

4

2 に答える 2

2

将来、cassandraのエンティティグループをサポートする計画があります。CASSANDRA-1684を参照してください。

トランザクションなしでデータを簡単にモデル化できない場合は、非トランザクションデータベースを使用する価値がありますか?スケーラビリティが必要ですか?

スライド24から始まる、このプレゼンテーションでは、cassandraでのようなトランザクションを実行する標準的な方法について説明します。基本的に、1行にWALログエントリに似たものを書き込み、複数の行に実際の書き込みを実行してから、WALログ行を削除します。 。失敗した場合は、WALログのアクションを読み取って実行するだけです。すべてのcassandra書き込みにはユーザー指定のタイムスタンプがあるため、すべての書き込みをべき等にすることができます。書き込みのタイムスタンプをWALログエントリに保存するだけです。

この戦略により、ACIDでアトミックで耐久性が得られますが、一貫性と分離は得られません。cassandraのようなものを必要とする大規模な作業をしている場合は、とにかく完全なACIDトランザクションを放棄する必要があります。

于 2012-02-26T05:09:18.623 に答える
1

独自のハードウェアでAppEngine用に構築されたアプリケーションをホストするには、AppScaleまたはTyphoonAEを試してみることをお勧めします。

Pythonで開発している場合は、Werkzeugデバッガーを使用した非常に興味深いデバッグオプションがあります。

于 2012-02-17T11:38:39.283 に答える