2012-03-14 18 views
4

HRDとBigTableを使用すると、祖先クエリではないすべてのクエリで最終的な整合性が維持されます。あなたのコードは、結果が古くなる可能性があるという事実に対処するのに十分堅牢でなければなりません。クラウドSQLのGoogleの打ち上げでGAE Cloud SQLとHigh Replication Datastore

は、彼らが免責事項に入れる:(https://developers.google.com/cloud-sql/faq#hrapps

"We recommend that you use Google Cloud SQL with 
High Replication App Engine applications. While you can use use 
Google Cloud SQL with applications that 
do not use high replication, doing so might impact performance." 

これは何を意味するのでしょうか?これは、HRDでSQLを使用して同じ最終的な一貫性の問題があることを意味しますか? SQLにはエンティティグループの概念はありませんが、特定の状況で特定のSQLクエリが古い結果をもたらす可能性がありますか?

これは、GoogleのSQLアトミックトランザクション契約の実装が壊れ、リレーショナルデータベースのユーザーが期待するようにSQLが機能しないことを意味します。 これが当てはまらない場合は、SQLでマスタ/スレーブまたはHRDモデルを使用することに対する懸念事項は何ですか?また、Googleはパフォーマンスが低下するモデルを選択するオプションをなぜ提供しますか?ドキュメントから

答えて

5

クラウドSQLとデータストアシステムが独立しています。あなたはあなたのアプリに合ったものを使います。

HRDアプリケーションを使用することをお勧めします。そのタイプのアプリケーションはCloud SQLと同じ場所に配置されるためです。マスタースレーブアプリは、クラウドSQLに存在しない別のデータセンターのセットから提供されます。それは動作しますが、遅くなります。

0

引用:

「GoogleクラウドSQLは、単純に、クラウドに住んでいるMySQLインスタンスを置くことは、すべての機能とMySQLの機能を持っている」

をあなたの質問に答えるために、リレーショナルDBのレプリケーション/マスター/スレーブオプションの高さは、一貫性とは関係ありませんが、負荷がピーク時の待ち時間や、計画されたメンテナンス時の書き込み可能性などの他の要因があります。高いレプリケーションデータストアの場合、負荷が急増してもレイテンシは低く、メンテナンスが計画されている間も書き込み可能です。比較を確認するにはhttp://code.google.com/appengine/docs/java/datastore/hr/

そして、なぜGoogleがフル・プルーフではないマスター・スレーブ・オプションを提供するのかという疑問の第2の部分。答えは完全な稼働時間を必要とせず、GAEを試してみたいという人が使えるようにすることです。 (フォーラムから)

+0

お返事ありがとうございます。とても有難い。個人的には、SQLのためのHRDの唯一の欠点は、同期書込み中の書込み時間がより緩やかであれば、メンテナンスのダウンタイムを気にしないカジュアルなユーザは、少し遅い書込みのどちらかを気にするつもりはないと思います。私は、決定でさえ混乱を招くので、Googleはマスター/スレーブオプションを削除することをお勧めします。 – jsg

+0

あなたが探しているのはあなたが探しているものだと思うなら、あなたは正しい答えとして投票/マークすることができます:) –

+0

私のコメントの私の直感が意味をなさないことを確認できれば、マスター/スレーブオプションを維持するための追加のケースを強調しますか? (申し訳ありませんが、回答を投票するのに十分な評判のポイントがありません:-)() – jsg

関連する問題