Delete-Only and Read-Only Forests
Delete-only (DO) and read-only (RO) forests affect how documents are assigned. The following table summarizes the interaction between this feature and DO/RO forests:
Policy |
New Insert |
RW -> DO/RO |
DO/RO -> RW |
---|---|---|---|
Legacy |
DOs/ROs are excluded from assignment. |
Recalculate routing for every URI; lots of movement. |
Recalculate routing for every URI; lots of movement. |
Segment |
DOs/ROs are excluded from assignment. |
Recalculate routing for every URI; lots of movement. |
Recalculate routing for every URI; lots of movement. |
Bucket |
DOs/ROs are still included in the routing table calculation, but a URI that belongs to a DO/RO is re-assigned in a deterministic way. |
No movement. |
Only move documents that are reassigned (to non DO/RO) during insert. |
Statistical |
DOs/ROs are excluded from assignment; RWs get balanced load. |
No movement since all RWs are already balanced. |
Some movement until all RWs are balanced. |
Range and Query |
DOs/ROs are excluded from assignment. Within each partition, RWs get balanced load. |
No movement within a partition because RWs are already balanced. |
Some movement within a partition until all RWs are balanced. |
Note that the second and the third columns cover what the rebalancers on RWs do when a forest is changed from RW to DO/RO or DO/RO to RW.
The rebalancer on a RO forest is always off. The rebalancer on a DO forest is off unless it is "retired".
A flash-backup forest is generally handled as a RO forest except that on new inserts, if the assignment logic cannot find a forest to insert the documents but there is at least one flash-backup forest, a Retry (instead of Exception) is thrown.