テーブルのコンテンツを確実に取得し、ギャップやオーバーラップなしで変更するにはどうすればよいですか? 時間の経過とともにテーブルの一貫したビューに終わろうとしています。
最初にデータベースにクエリを実行してから、変更フィードをサブスクライブできますが、これらのクエリの間に変更が発生したギャップが生じる可能性があります。
または、最初に変更をサブスクライブしてからテーブルをクエリすることもできますが、クエリで既に処理されている変更フィードで変更が発生する可能性があります。
この場合の例:
A subscribe 'messages'
B add 'messages' 'message'
A <- changed 'messages' 'message'
A run get 'messages'
A <- messages
ここで、A はメッセージ クエリを送信する前に「変更された」メッセージを受信し、メッセージ クエリの結果には変更されたメッセージが含まれています。おそらく、A はクエリ結果を受け取る前に、変更されたメッセージを単に無視することができます。(同じ接続で) クエリの後に受け取った変更が、前のクエリにまだ適用されていない、つまり同じスレッドで処理されることが保証されていますか?
おすすめの方法は?このユースケースに関するドキュメントは見つかりませんでした。