apache / apache/couchdb

Selective sync

Open
#1,509 0 comments 4 reactions 0 assignees View on GitHub
api enhancement performance replication roadmap
Dominant language
Erlang
Stars
7k
Forks
1.1k
Avg merge
1d 16h
Merged PRs (30d)
9

Description

@janl:
>* last 90 days
>* custom criteria

@davisp:
> I wonder if replication via view vs _changes might something to consider here. I know we have some view based replication stuff on 1.6 but AFAIK that was basically just to only replicate things in a view. I'm thinking more along the lines of that we just follow the key order in a view and then clients can specify a view and any complex logic they want. Last 90 days for instance could be something like emit(doc.date, null) and then replicate using a start_seq of now() - 90 days

@daleharvey:
> Anything that requires create view is fairly prohibitive imo, both in terms of performance of view generation and for the amount of work developers need to go through to get it working, there are quite a lot of replication improvements we can do via clever filtering already and they arent done because setting up a filter (and understanding the replication protocol enough to know what to do) is hard enough.
> We are moving away from views / map reduce in pouchdb in general so I would like to avoid them being further depended on in core functionality

@davisp:
> @daleharvey That's fair. And in hindsight a view doesn't really give us a whole lot over a filter anyway. I'd agree with you that looking at improving filters would likely be the better approach.

Contributor guide

Open the contributing guide

Research direction

Start by reading the discussion around replication filters, the _changes feed, views, and the replication protocol. Compare the proposed last-90-days and custom-criteria cases, then determine the intended filtering behavior and its acceptance criteria; the issue does not name files, tests, or a settled implementation.

Written by the indexing model from the issue text.

Assessment

Tech stack
erlang
Domain
databases, distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.