Couchdb

停止正在執行的壓縮過程

  • January 26, 2018

我需要在生產 CouchDB 實例上執行壓縮,該實例之前可能沒有執行過壓縮。

如果壓縮給 CouchDB 實例帶來​​過多的額外負載,是否可以安全地終止壓縮過程?如果是這樣,怎麼做?

在壓縮過程中,會寫入一個新的 .couch 文件。因此,當您中斷壓縮時,您會做什麼使文件無用。停止壓縮 (iirc) 的唯一方法是停止 CouchDB。不是一個好主意。

通常,compaction 是一個後台程序。數據庫讀取不受它的影響 - 也適用於大量讀取!如果您有繁重的寫入過程,則壓縮可能永遠不會結束,因為編寫和更新文件比壓縮更快。

您可以考慮將壓縮安排到一個時隙,在該時隙中您知道數據庫的容量不是 100%。你這樣做是local.ini這樣的:

; configuration for automatic compaction.
; see: http://docs.couchdb.org/en/latest/config/compaction.html
[compactions]
_default = [{db_fragmentation, "70%"}, {view_fragmentation, "60%"}, {from, "02:00"}, {to, "05:00"}]

這意味著,僅在夜間 2 和 5 期間執行自動壓縮,並且僅在數據庫碎片大於等於 70% 且視圖碎片大於等於 60% 時執行

更多資訊可以在這裡找到:http: //docs.couchdb.org/en/latest/maintenance/compaction.html

如果您有任何問題,非常歡迎您加入dev@couchdb.apache.org郵件列表或加入 IRC #couchdb-dev 或 #couchdb 在 irc.freenode.net

引用自:https://dba.stackexchange.com/questions/114981