2012-02-16 17 views
4

現在、私はGoogleアプリケーションエンジンでホストされているアプリケーションを開発しています。しかし、gaeには多くの欠点があります。実際のインスタンスには取り付けることができないため、高価でデバッグが非常に難しくなります。トランザクションを含む分散ストア

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

この問題を解決するにはどう思いますか?私は現在、Apache Cassandra +トランザクション用のいくつかのロッキングサービス(ヘルスキャスト)のような店を検討中です。誰もこの分野の経験はありますか?何をお勧めしますか

答えて

2

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

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

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

この戦略では、ACIDでAtomicとDurableが得られますが、一貫性と分離性は得られません。あなたがcassandraのようなものを必要とする規模で働いているなら、おそらく、とにかく完全なACIDトランザクションをあきらめる必要があります。

+0

ありがとうございました。それは私が必要としていたものです。 –

1

App Engineのために構築されたアプリケーションをご自身のハードウェアでホストする場合は、AppScaleまたはTyphoonAEをお試しください。

Pythonで開発している場合は、Werkzeug debuggerという非常に興味深いデバッグオプションがあります。

+0

私は、GAEの代わりにオープンソースではなく、「トランザクションをサポートするNoSQLソリューション」に関連していると思います。そして、私が知っていることから、あなたが提案している両方の選択肢は、ベータ版でまだ生産準備ができておらず、いくつかのApp Engine APIが欠けています。 –

関連する問題