Couchbase Serverは追加、更新、削除したすべてのデータをディスク上のファイルに書き込みます。 特に削除のとき、この処理は結果的にデータファイルのギャップの原因になります。 サーバはインデックスファイルもシーケンシャルな形式でインデックスの新しい結果の追加することで書き込みます。 コンパクションという処理を実行することにより、すべてのデータファイルの空のギャップを回収することができます。 データファイルとインデックスファイルの両方で、ディスクスペースの回収とディスクフラグメントの削減のために、ディスク上のファイルのコンパクションをたびたび実行するべきです。 この管理タスクのより一般的な詳細情報については、「データベースとビューのコンパクション」を参照してください。
データバケットとインデックスのコンパクション
バケットに関連するインデックスだけでなく、指定されたバケットのデータファイルをコンパクションするには、次のリクエストを実行します:
shell> curl -i -v -X POST -u Administrator:password http://[ip]:[port]/pools/default/buckets/[bucket-name]/controller/compactBucket
バケット名だけでなく、バケットにアクセスするノードのIPアドレスとポート番号を指定します。 クラスタ内のノードの管理者認証情報も提供する必要があります。 バケットのコンパクションを一時停止するには、このリクエストを発行します:
shell> curl -i -v -X POST -u Administrator:password http://[ip]:[port]/pools/default/buckets/[bucket-name]/controller/cancelBucketCompaction
データセット内で構成された空間インデックスがある場合、これらは自動的にコンパクションされません。 代わりに、REST APIを使用して手動で各空間ビューをコンパクションする必要があります。
これを実行するために、次のURLフォーマットで空間インデックスのコンパクション処理を呼び出す必要があります:
http://127.0.0.1:9500/BUCKETNAME
/_design/DDOCNAME
/_spatial/_compact
このURLは次の情報を含みます:
127.0.0.1:9500
ポート番号、9500は空間インデックスシステムで一意です。
BUCKETNAME
BUCKETNAME
は構成済みのデザインドキュメントがあるバケットの名前です。
DDOCNAME
コンパクションしたい空間インデックスかインデックスを含むデザインドキュメントの名前です。
たとえば、curlを使用して、リクエストを送信できます:
shell> curl -X POST \ 'http://127.0.0.1:9500/default/_design/dev_test_spatial_compaction/_spatial/_compact' -H 'Content-type: application/json'