10.3.8. /db/_compact
¶
-
POST
/{db}/_compact
¶ Request compaction of the specified database. Compaction compresses the disk database file by performing the following operations:
- Writes a new, optimised, version of the database file, removing any unused sections from the new version during write. Because a new file is temporarily created for this purpose, you may require up to twice the current storage space of the specified database in order for the compaction routine to complete.
- Removes old revisions of documents from the database, up to the
per-database limit specified by the
_revs_limit
database parameter.
Compaction can only be requested on an individual database; you cannot compact all the databases for a CouchDB instance. The compaction process runs as a background process.
You can determine if the compaction process is operating on a database by obtaining the database meta information, the
compact_running
value of the returned database structure will be set to true. SeeGET /{db}
.You can also obtain a list of running processes to determine whether compaction is currently running. See /_active_tasks.
Parameters: - db – Database name
Request Headers: - Accept –
- application/json
- text/plain
- Content-Type – application/json
Response Headers: - Content-Type –
- application/json
- text/plain; charset=utf-8
Response JSON Object: - ok (boolean) – Operation status
Status Codes: - 202 Accepted – Compaction request has been accepted
- 400 Bad Request – Invalid database name
- 401 Unauthorized – CouchDB Server Administrator privileges required
- 415 Unsupported Media Type – Bad Content-Type value
Request:
POST /db/_compact HTTP/1.1 Accept: application/json Content-Type: application/json Host: localhost:5984
Response:
HTTP/1.1 202 Accepted Cache-Control: must-revalidate Content-Length: 12 Content-Type: application/json Date: Mon, 12 Aug 2013 09:27:43 GMT Server: CouchDB (Erlang/OTP) { "ok": true }
10.3.9. /db/_compact/design-doc
¶
-
POST
/{db}/_compact/{ddoc}
¶ Compacts the view indexes associated with the specified design document. It may be that compacting a large view can return more storage than compacting the actual db. Thus, you can use this in place of the full database compaction if you know a specific set of view indexes have been affected by a recent database change.
Parameters: - db – Database name
- ddoc – Design document name
Request Headers: - Accept –
- application/json
- text/plain
- Content-Type – application/json
Response Headers: - Content-Type –
- application/json
- text/plain; charset=utf-8
Response JSON Object: - ok (boolean) – Operation status
Status Codes: - 202 Accepted – Compaction request has been accepted
- 400 Bad Request – Invalid database name
- 401 Unauthorized – CouchDB Server Administrator privileges required
- 404 Not Found – Design document not found
- 415 Unsupported Media Type – Bad Content-Type value
Request:
POST /db/_compact/posts HTTP/1.1 Accept: application/json Content-Type: application/json Host: localhost:5984
Response:
HTTP/1.1 202 Accepted Cache-Control: must-revalidate Content-Length: 12 Content-Type: application/json Date: Mon, 12 Aug 2013 09:36:44 GMT Server: CouchDB (Erlang/OTP) { "ok": true }
Note
View indexes are stored in a separate
.couch
file based on a hash of the design document’s relevant functions, in a sub directory of where the main.couch
database files are located.
10.3.10. /db/_ensure_full_commit
¶
-
POST
/{db}/_ensure_full_commit
¶ Commits any recent changes to the specified database to disk. You should call this if you want to ensure that recent changes have been flushed. This function is likely not required, assuming you have the recommended configuration setting of
delayed_commits=false
, which requires CouchDB to ensure changes are written to disk before a 200 or similar result is returned.Parameters: - db – Database name
Request Headers: - Accept –
- application/json
- text/plain
- Content-Type – application/json
Response Headers: - Content-Type –
- application/json
- text/plain; charset=utf-8
Response JSON Object: - instance_start_time (string) – Always
"0"
. (Returned for legacy reasons.) - ok (boolean) – Operation status
Status Codes: - 201 Created – Commit completed successfully
- 400 Bad Request – Invalid database name
- 415 Unsupported Media Type – Bad Content-Type value
Request:
POST /db/_ensure_full_commit HTTP/1.1 Accept: application/json Content-Type: application/json Host: localhost:5984
Response:
HTTP/1.1 201 Created Cache-Control: must-revalidate Content-Length: 53 Content-Type: application/json Date: Mon, 12 Aug 2013 10:22:19 GMT Server: CouchDB (Erlang/OTP) { "instance_start_time": "0", "ok": true }
10.3.11. /db/_view_cleanup
¶
-
POST
/{db}/_view_cleanup
¶ Removes view index files that are no longer required by CouchDB as a result of changed views within design documents. As the view filename is based on a hash of the view functions, over time old views will remain, consuming storage. This call cleans up the cached view output on disk for a given view.
Parameters: - db – Database name
Request Headers: - Accept –
- application/json
- text/plain
- Content-Type – application/json
Response Headers: - Content-Type –
- application/json
- text/plain; charset=utf-8
Response JSON Object: - ok (boolean) – Operation status
Status Codes: - 202 Accepted – Compaction request has been accepted
- 400 Bad Request – Invalid database name
- 401 Unauthorized – CouchDB Server Administrator privileges required
- 415 Unsupported Media Type – Bad Content-Type value
Request:
POST /db/_view_cleanup HTTP/1.1 Accept: application/json Content-Type: application/json Host: localhost:5984
Response:
HTTP/1.1 202 Accepted Cache-Control: must-revalidate Content-Length: 12 Content-Type: application/json Date: Mon, 12 Aug 2013 09:27:43 GMT Server: CouchDB (Erlang/OTP) { "ok": true }