Couchbase Serverへ情報が格納される手順は、どのように、どのタイミングで情報のインデックスが作成されるのかに影響をあたえ、インデックスとデータがクラスタに保存されるタイミングは関連しています。加えて、データのインデクシングはビューシステムとそのビューへアクセスする際の設定が影響します。
基本的なデータ保存とインデクシングの順序は以下のようになります:
ドキュメントがクラスタに保存されます。はじめは、RAM上にのみドキュメントが保存されます。
ドキュメントは標準のディスク書き込みキューメカニズムを介して、ディスクに永続化されます。
ドキュメントがディスクに永続化されると、そのドキュメントはビューメカニズムによってインデクシング可能になります。
このシーケンスは、ドキュメントがディスクに永続化されているかどうかを基準にしており、ビューの結果がメモリに保存されている状態に対して結果整合性であることを意味します。ドキュメントをクラスタに書き込み、新しく書き込まれたドキュメントが生成されたインデックスに反映されていない状態でインデックスにアクセスすることは可能です。
逆に、期限切れチェック処理によってデータベースから削除されるまで、有効期限付きのドキュメントがビューインデックス内に存在し続ける場合もあります。
Couchbase ServerはObserveコマンドをサポートしており、対象のドキュメントがディスクに永続化されたか、またインデックスに含まれているかどうか、ドキュメントの現在の状態を確認することができます。
ビューにアクセスする際、ビューの内容は保存されているドキュメントとは非同期です。それに加えて、ビューの作成や変更はstale
パラメータに依存します。これにより、ビューの内容をクエリする際に、いつ、どのように、ビューを更新するのかを制御します。詳細については、「インデックス更新とstale
パラメータ」を参照してください。また、保存されたドキュメントと同期をとるために、スケジュールを設定して自動的にビューを更新することもできます。詳細については、「インデックスの自動更新」を参照してください。