Skip to content

_revs_limit not applied after calling _compact #1661

@tudordumitriu

Description

@tudordumitriu

After calling _revs_limit with 20 as value and after that calling _compact to a db _revs_diff seem to be still returning a 400+ list of revs.

Context

Everything started from checking the network traffic and we noticed _revs_diff are sending a ever-growing list revs.
That happens naturally because we are updating often some entities - eg a list of items being modified by different users (same entity is replicated in all user dbs).
Also because this document is shared by multiple user dbs conflicts happen and we are solving them and deleting loosing conflicts.
But this seems to be generating a growing list of revs sent back and forth by the replication protocol.

After looking at PouchDB quite a bit, we started looking at CouchDB and tried limiting the revs to 20 and after that calling _compact.
But nothing actually happens.

This is a very concerning issues for us because these lists will be heavily updated (accumulating lots of revs), but we care only about latest rev + conflicts so don't need the entire revs history, and mostrly we don't need it carried back and forth for every _revs_diff, _bulk_docs, and _changes call (especially since our app will be used on mobile devices).

We have posted and issues on PouchDB, but don't think is related to it. (apache/pouchdb#7491)

Your Environment

  • Version used: 2.2.0
  • Browser Name and version: Chrome, Mobile Hybrid App Crosswalk / WKWebview
  • Operating System and version (desktop or mobile): Windows 10
  • PouchDB 7.0.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions