1.3.13. /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 the bodies of any non-leaf revisions of documents from the database.
Removes old revision history beyond the 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. See GET /{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
-
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
}
1.3.14. /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
-
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.
1.3.15. /db/_ensure_full_commit
POST
/{db}/_ensure_full_commit
Changed in version 3.0.0: Deprecated; endpoint is a no-op.
Before 3.0 this was used to commit recent changes to the database in case the delayed_commits=true
option was set. That option is always false
now, so commits are never delayed. However, this endpoint is kept for compatibility with older replicators.
Parameters
- db – Database name
Request Headers
Accept –
application/json
text/plain
Content-Type – application/json
Response Headers
-
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
}
1.3.16. /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
-
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
}