Couchbase Serverは自動化されたコンパクションメカニズムを組み込んでおり、データファイルとビューインデックスファイルの両方をコンパクションすることができ、データベース、ビューインデックスデータファイルの現在のフラグメントレベルの計測により開始されます。
空間インデックスは自動的にコンパクションされません。空間インデックスは手動でコンパクションする必要があります。詳細については、「空間ビューのコンパクション」を参照して下さい。
自動コンパクションは、2つの方法で設定することができます:
デフォルトの自動コンパクションは、Couchbase ServerのCouchbaseバケットのすべてに影響します。デフォルトのCouchbase Serverの自動コンパクションを設定すると、自動コンパクションがすべてのCouchbaseバケットで自動的に有効になります。詳細については、「 設定 」を参照して下さい。
バケットの自動コンパクションはCouchbaseバケット別に設定できます。バケットレベルのコンパクションは、デフォルトを設定していない場合であっても、常にデフォルトの自動コンパクション設定を上書きします。Couchbaseバケットを編集したり、新しく作成したりするときに、Couchbaseバケットの専用の設定を明示的に上書きすることを選択することができます。「データバケットの作成と編集」を参照してください。
デフォルトの自動コンパクションおよびCouchbaseのバケット専用の設定の両方に使用可能な設定は同じです:
Database Fragmentation
もっとも重要な設定は、コンパクションが発生するデータベース内のパーセントレベルです。値は各項目の断片化の割合で表され、コンパクション処理が開始される断片化レベルを設定することができます。
たとえば、断片化の割合を10%に設定する場合、断片化レベルがその値に達した瞬間、自動コンパクションの制限時間でない限り、コンパクション処理が開始されます。Time Periodを参照してください。
View Fragmentation
この設定はコンパクションを開始するビューインデックスファイルすべてに対する断片化の割合を指定します。
データベースが頻繁に使用されているときに自動コンパクションを実行することを防ぐには、コンパクションが許可される時間を設定します。これは、コンパクションを実行する時間帯の時と分の組み合わせで表現されます。たとえば、01:00と06:00の間にコンパクションが実行されるように設定することができます。
これらの時間外でコンパクションが必要と判断された場合、コンパクションは指定したTime Periodになるまで遅延します。
Time PeriodはCouchbase Serverがアクティブであれば毎日適用されます。Time Periodは日ごとに設定することができません。
Compaction abortion
コンパクション処理がまだ完了していないのにコンパクション可能なTime Periodが終了した場合、コンパクション処理全体を終了するように設定できます。このオプションは、コンパクション処理に影響を与えます。
Enabled
このオプションが有効で、コンパクションが実行されている場合、処理を停止します。コンパクション処理中に作成されたファイルが保持され、次のTime Periodがきたらコンパクションが再開されます。
指定したTime Period以外ではコンパクションは実行されないため、特定の時間帯でCouchbase Serverの性能を保証したい場合に、この設定は便利です。
Disabled
Time Periodが終了したときにコンパクションが実行中であれば、処理が完了するまで継続されます。
コンパクション処理の完了を保証したい場合、このオプションを使用すると便利です。
Parallel Compaction
デフォルトでは、コンパクションはまずデータベース、次にビューと、両方が自動コンパクションで有効になっている場合、順番に実行されます。
この設定を有効にすることで、データベースとビューの両方を同時にコンパクションすることができます。これは、両方同時に処理するためにより多くのCPUとデータベースアクティブティを必要としますが、複数のCPUコアとディスクI/Oがある場合(たとえば、データベースとビューインデックス情報が別々の物理ディスクデバイスに保存されているような場合)、2つの処理をより短い時間で完了することができます。
自動コンパクションの設定は、Couchbase ServerのWeb管理コンソールから行います。デフォルトの設定の詳細については、「 設定 」を参照してください。バケットごとの設定に関する情報は、Couchbase Bucketの作成/編集画面で確認できます。「データバケットの作成と編集」を参照してください。