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. 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:
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/{ddoc}
¶
- 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. See Manual View Compaction for details.
- 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/ddoc 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 alwaysfalse
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 }