Skip to content

How to Disable Automatic Compaction in CouchDB to Preserve Old Revisions #5960

Closed

Description

@karthikreddy157

Version

3.3.0

Title

How to Disable Automatic Compaction in CouchDB to Preserve Old Revisions

Description

Hi Team,

I’m working with CouchDB and need to retain older document revisions (_rev) for auditing and historical tracking purposes. However, I’ve observed that automatic compaction is removing old revisions, which is impacting my use case.

Requirement

I want to:

  • Prevent CouchDB from deleting old revisions during compaction
  • Access older _rev data when needed

Current Behavior

  • Automatic compaction is running in the background
  • Old document revisions are being cleaned up after compaction
  • Unable to retrieve previous revisions once compaction occurs

Expected Behavior

  • Old revisions should be retained (or at least compaction should not run automatically)
  • Compaction should only run manually when explicitly triggered

Questions

  1. How can I disable automatic compaction (Smoosh) in CouchDB?
  2. Is there a way to retain old revisions even after compaction?
  3. What configuration controls revision retention (revs_limit or others)?
  4. Are there recommended approaches for audit/history use cases in CouchDB?

What I’ve Explored

  • Looked into CouchDB config files (local.ini, default.ini)
  • Suspecting the Smoosh daemon is triggering auto compaction
  • Aware of _revs_limit but unsure how it interacts with compaction

Environment

  • CouchDB Version: (please specify)
  • Deployment: (Docker / VM / Kubernetes / etc.)

Additional Context

This is part of a requirement where I need to track historical changes of documents, so losing old revisions is not acceptable.

Any guidance on best practices or configuration changes would be greatly appreciated.

Expected Behaviour

Old revisions should be retained (or at least compaction should not run automatically)
Compaction should only run manually when explicitly triggered

Steps to Reproduce

No response

Your Environment

No response

Additional Context

No response

Activity

  1. big-r81 commented on Apr 6, 2026

    @big-r81
    Contributor

    Hey, please read this post – it’s a good starting point for deciding whether this is a good idea for your use case or not.

  2. rnewson commented on Apr 7, 2026

    @rnewson
    Member

    Hi, This is a misconception and you need to change tactic. Compaction is not optional, it is essential for performance and the only way to recover disk space. If you need "old" versions of your data you need to preserve them in the latest revision of some document.

  3. added
    by-designBehaviour in question is by design.
    and removed on Apr 7, 2026
  4. rnewson commented on Apr 7, 2026

    @rnewson
    Member

    To expand a little, you absolutely can build an application that retains a history of your documents but you need to build it yourself, couchdb is not providing one automatically for you with our MVCC feature.

  5. locked and limited conversation to collaborators on Apr 9, 2026
  6. converted this issue into a discussion #5963 on Apr 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    by-designBehaviour in question is by design.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions