0

次のシナリオでのデータストアの動作の詳細な説明を見つけるのに問題があります。

  1. 取引開始です
  2. 一部変更あり
  3. ndb.TransactionOptions.INDEPENDENT 伝播レベルを使用して、別の独立したトランザクションが開始されます。その目的は、シャードされたカウンターをインクリメントすることです。多くのカウンターがあり、1 つのトランザクションで 5 つのエンティティ グループしか使用できないため、ネストされたトランザクションとして必要です。
  4. ネストされたトランザクションは正常にコミットされています
  5. メイン トランザクションがコミットしようとしていますが、失敗します
  6. いくつかの再試行の後、メイン トランザクションがコミットされています

ネストされたトランザクションは 1 回だけ実行されると思いますが、この仮定を検証することはできません。誰もそれがどのように機能するか知っていますか?

4

1 に答える 1

2

いくつかのロギング ステートメントを挿入して、動作を確認します。手順 3 ~ 4 がメイン トランザクションのコードによって開始される場合、メイン トランザクションが再試行されるたびに、独立したトランザクションが開始されます。そのため、NESTED ではなく INDEPENDENT と呼ばれます。

于 2012-12-01T15:38:11.057 に答える