I've started prototyping some enhancements to support "subsetting" — syncing a 
subset of the server database to the device, but being able to pull more 
documents to the device as needed. These are on a branch of the iOS repo called 
feature/subset 
<https://github.com/couchbase/couchbase-lite-ios/commits/feature/subset>. 
Please feel free to check it out and follow along :)

So far there are two new features:

1. A new replication property called "add_docs". It's a boolean that defaults 
to true, but setting it to false tells a pull replication to not create any 
docs locally — that is, it won't pull a doc from the server if there isn't 
already a doc with that ID in the local database. This feature will keep a 
subsetted database up to date, by pulling new revisions of the docs in the 
local subset without bringing in all of the available remote docs.
You enable it like this:
        repl.customProperties = @{@"add_docs": @NO};

2. A new CBLReplication method -pullDocumentIDs:. It takes an array of strings 
and pulls the documents with those IDs from the server. (For obvious reasons 
this only works on a pull replication.) This method ignores filters and the 
add_docs property. There's not yet any progress information or error 
notification other than what's already available on the CBLReplication.

You can combine these features by creating an add_docs=NO pull replication at 
launch, and then calling -pullDocumentIDs: on it to load documents as you need 
them.

What's still missing:
Making purge prevent the document from coming back when it's updated on the 
server. (An add_docs=NO replication won't re-add it, but a regular pull 
replication will.)
Progress info for individual document pulls
Being able to query the remote database to find documents to pull
More…?

—Jens

-- 
You received this message because you are subscribed to the Google Groups 
"Couchbase Mobile" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/mobile-couchbase/C3F2D0E8-ECAC-4208-B9F6-53A450050C3F%40couchbase.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to