Details
-
Improvement
-
Resolution: Fixed
-
Major
-
None
Description
As part of XDCR-mobile co-existence, mobile and XDCR will maintain HLV (Hybrid Logical Vector) across clusters. To do that, we need two settings at bucket level.
First setting is to enable the feature:
Key: enableCrossClusterVersioning
Input Behavior:
- It is a boolean value that can be specified via REST, and toggled via UI.
- When it is set to true, the system internally should record the max_cas for the VBs corresponding to when the action is set.
- When it is set to false, the system internally should discard the recorded max_cas.
Output Behavior
- the setting value as well as the corresponding max_cas for the VBs should be accessible through a REST command.
Streaming API Behavior:
- Any output changes to the setting should be available through stream API /pools/default/bucketsStreaming
So XDCR does not have to constantly poll ns_server to catch any changes.
It should also be exposed via /pools/default/buckets/bucketname so Sync Gateway can access it.
Second setting is for the HLV maintenance:
Key: versionPruningWindowHrs
- Minimum: 1 day
- Maximum: MAXINT
The setting change should be available through stream API
/pools/default/bucketsStreaming
So XDCR does not have to constantly poll ns_server for the value.
It should also be exposed via
/pools/default/buckets/bucketname
So Sync Gateway can access it.
See "Settings" section in this document for more information: https://docs.google.com/document/d/1S0WStgbqRGlmwbdNyHn_9qqEqvshPv9WyG8skauJDEc/edit?usp=sharing