Compaction API
Compaction is used to reclaim disk space and reduce disk fragmentation.
Description
Couchbase Server writes all data that you append, update and delete as files on disk. This can eventually lead to gaps in the data file, particularly when you delete data. Be aware the server also writes index files in a sequential format based on appending new results in the index. You can reclaim the empty gaps in all data files by performing a process called compaction. For both data files and index files, perform frequent compaction of the files on disk to help reclaim disk space and reduce disk fragmentation.
HTTP method | URI path | Description | Admin Role |
---|---|---|---|
POST |
/pools/default/buckets/[bucket_name]/ \ controller/compactBucket |
Compacts bucket data and indexes. |
Full, Cluster, |
POST |
/pools/default/buckets/[bucket_name]/ \ controller/cancelBucketCompaction |
Cancels compaction for the specified bucket. |
Full, Cluster |
POST |
/[bucket_name]/_design/[ddoc_name]/ \ _spatial/_compact |
Compacts a spatial view. |
Full, Cluster |
Auto-compaction description
Auto-compaction parameters are configured to trigger data and view compaction. These parameters can be specified for an entire cluster (cluster-wide) or for a specific bucket in a cluster.
Administrative credentials are required to change these settings. |
HTTP method | URI path | Description | Admin Role |
---|---|---|---|
POST |
/controller/setAutoCompaction |
Sets cluster-wide auto-compaction intervals and thresholds |
Full, Cluster |
GET |
/settings/autoCompaction |
Retrieves cluster-wide settings for auto-compaction |
Full, Cluster |
GET |
/pools/default/buckets/[bucket_name] |
Retrieves auto-compaction settings for named bucket |
Full, Cluster, Bucket*, BucketA |
POST |
/pools/default/buckets/[bucket_name] |
Sets auto-compaction interval or thresholds for named bucket |
Full, Cluster, Bucket*, BucketA |
"Bucket A" represents a bucket administrator for a single bucket, and Bucket* a bucket administrator with privileges for all buckets in the cluster. |
Parameter | Value | Notes |
---|---|---|
databaseFragmentationThreshold: percentage |
Integer between 2 and 100 |
Percentage disk fragmentation for data |
databaseFragmentationThreshold: size |
Integer greater than 1 |
Bytes of disk fragmentation for data |
viewFragmentationThreshold: percentage |
Integer between 2 and 100 |
Percentage disk fragmentation for index |
viewFragmentationThreshold: size |
Integer greater than 1 |
Bytes of disk fragmentation for index |
parallelDBAndViewCompaction |
True or false. |
Run index and data compaction in parallel. Global setting only. |
allowedTimePeriod: abortOutside |
True or false |
Terminate compaction if the process takes longer than the allowed time |
allowedTimePeriod: fromHour |
Integer between 0 and 23 |
Compaction can occur from this hour onward |
allowedTimePeriod: fromMinute |
Integer between 0 and 59 |
Compaction can occur from this minute onward |
allowedTimePeriod: toHour |
Integer between 0 and 23 |
Compaction can occur up to this hour |
allowedTimePeriod: toMinute |
Integer between 0 and 59 |
Compaction can occur up to this minute |
purgeInterval |
Integer between 1 and 60 |
Number of days a item is deleted or expired. The key and metadata for that item is purged by auto-compaction |
The purge interval parameter removes the key and metadata for items that have been deleted or are expired. This is known as tombstone purging. |
Related Information
-
To learn about the storage architecture and compaction, see Storage Architecture.
-
To update the auto-compaction settings from the Web Console, see Configuring Auto-Compaction.
-
To update the bucket compaction settings using the CLI, see bucket-compact.