2012-03-26 4 views
1

を更新しているときのSimpleDBは、NextTokenを使用して、私たちは似たドメイン上で選択を行っている場合があります。このクエリの結果を反復処理するときクエリ内のレコードが

select * from mydomain where some_val = 'foo' and some_date < '2012-03-01T00:00+01:00' 

を - 私たちはいくつかの仕事をして、その後、更新されています現在の日付/時刻にフィールドsome_dateを設定します。それが処理されたことを示す。

次のレコードセットを取得するためにsimpledbに戻ると、nexttokenリクエストが中断されますか?次のバッチを取得するために戻ったとき、最初のバッチのすべてのものは元のクエリの範囲内にない値を持つsome_dateになります。

次のトークンが実装されていて、次の項目へのポインタか、どういうわけかレコード全体を「スキップ」するオフセットかどうかはわかりません。

だから我々は一度に3つのレコードを検索し、私は自分のドメインでこれを持っていた場合:

record 1, '2012-01-12T19:20+01:00' 
record 2, '2012-02-14T19:20+01:00' 
record 3, '2012-01-22T19:20+01:00' 
record 4, '2012-01-21T19:20+01:00' 
record 5, '2012-02-22T19:20+01:00' 
record 6, '2012-01-20T19:20+01:00' 
record 7, '2012-01-18T19:20+01:00' 
record 8, '2012-01-17T19:20+01:00' 
record 9, '2012-02-12T19:20+01:00' 

私はなるだろう私の最初の実行:のために返す前に'2012-03-12T19:20+01:00':記録1, 2, 3 を私は自分のsome_dateフィールドを設定した場合次のトークンバッチ - 次のトークン要求は4,5,6を返しますか?または、7,8,9を返します(トークンが4番目のレコードから開始され、今度は1,2,3が結果セットに含まれていないため)。

私たちはbotoライブラリ(python)を使用しています。

答えて

0

次のトークン要求は4,5,6を返しますか?それとも返すだろう 7,8,9 [...]?

いい質問は、これは確かに少し混乱することができます - まだかつて何でも(すなわち4,5,6)実用的な使用量とそれに応じなどのAmazon SimpleDB作品のために意味がありません、参照Select

5秒を超えて実行される操作は、タイムアウトエラー 応答または部分的または空の結果セットを返します。部分と空の結果 セットは、あなたがそれを中断したところから 動作を継続することができますは、NextToken値、を含ん[重点鉱山]

はセクション要求パラメータに追加のノートをメモしてください

:最終的には少し意外かもしれませんが

ConsistentReadがSelect操作の応答が に設定されていると、一貫した読み取りが返されます。しかし、任意の次の選択 NextToken値を含む操作要求、Amazon SimpleDB はConsistentReadフィールドを無視し、その後の結果は最終的に一貫して になります。[emphasis mine]

+0

ありがとうございました。私たちはその前提に基づいて作業します。私たちのシステムに反する証拠がある場合は、ここで報告してください。 – jonathanq

関連する問題