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はパフォーマンスが低下するモデルを選択するオプションをなぜ提供しますか?ドキュメントから
お返事ありがとうございます。とても有難い。個人的には、SQLのためのHRDの唯一の欠点は、同期書込み中の書込み時間がより緩やかであれば、メンテナンスのダウンタイムを気にしないカジュアルなユーザは、少し遅い書込みのどちらかを気にするつもりはないと思います。私は、決定でさえ混乱を招くので、Googleはマスター/スレーブオプションを削除することをお勧めします。 – jsg
あなたが探しているのはあなたが探しているものだと思うなら、あなたは正しい答えとして投票/マークすることができます:) –
私のコメントの私の直感が意味をなさないことを確認できれば、マスター/スレーブオプションを維持するための追加のケースを強調しますか? (申し訳ありませんが、回答を投票するのに十分な評判のポイントがありません:-)() – jsg