1

ビューに関するCouchDBのドキュメントには、ビューをクエリするときに使用include_docs=trueすると、含まれているドキュメントのリビジョンが、ビューの生成に使用されたものよりも新しい場合があると記載されています。MVCCは、ライターをブロックすることなくこれらの競合状態を正確に解決するように設計されていることを理解しているので、これは非常に奇妙に思えます。そこで提示された代替案は、ビューの値にドキュメントを含めることに言及しています。

を使用したリクエストは、ビューの生成に使用されたものよりも新しいドキュメントを返す可能性がありますか(ドキュメントが削除された場合は何も返さない)、またはビューを更新せずにビューをクエリするためにinclude_docs=true使用した場合にのみ発生しますか?stale=ok

4

1 に答える 1

1

いいえ、それは本当です。何が起こるかというと、各クエリはクエリ結果行の「id」属性で識別されるドキュメントを取得します。マップ関数で出力された結果のように、ドキュメントはクエリインデックスに保存されません。関連するすべてのドキュメントを検索して取得し、応答に含める必要があるため、これによりクエリが遅くなる可能性があることに注意してください。完全なドキュメントを出力することは懸念事項を排除しますが、もちろん、ディスク上のインデックスファイルをはるかに大きくします。

于 2013-03-29T13:47:16.337 に答える