[BP 7.1.5] - XDCR - global OSO mode off switch

Description

XDCR can turn OSO mode off at a per-replication level, or at a default replication level. But, in certain cases where OSO could cause performance issues, we want a fail-safe switch to be able to turn off OSO mode globally.

This fail safe needs to be developed so that it can be applied globally to any currently deployed replications.

 

Issue

Resolution

Data streamed from the Data Service over XDCR should always be streamed in order by mutation id. However, in some scenarios, for efficiency, the Data Service streamed records that were not ordered by mutation id. In certain situations, this out-of-sequence-order [OSO] caused performance issues.

OSO mode is now available as a global override to be switched off for any currently deployed replications to avoid performance issues.

Components

Fix versions

Labels

Environment

None

Release Notes Description

None

is a backport of

Activity

Show:

Ayush Nayyar June 22, 2023 at 12:54 PM

Verified on 7.1.5-3832.

Logs with OSO mode on: 

goxdcr.log:2023-06-22T05:49:46.428-07:00 INFO GOXDCR.ThrSeqTrackSvc: 56d924e315457c999f955741e62a5c16/beer-sample/test1_ThroughSeqnoTracker time_spent=1.229137ms num_vb=1024 max_sent=0 avg_sent=0 max_filtered=0 avg_filtered=0 max_failed_cr=0 avg_failed_cr=0 max_gap=0 avg_gap=0 oso_received=1831

Logs with OSO mode off: 

goxdcr.log:2023-06-22T05:52:07.672-07:00 INFO GOXDCR.ThrSeqTrackSvc: 56d924e315457c999f955741e62a5c16/beer-sample/test_ThroughSeqnoTracker time_spent=852.415µs num_vb=1024 max_sent=0 avg_sent=0 max_filtered=0 avg_filtered=0 max_failed_cr=0 avg_failed_cr=0 max_gap=0 avg_gap=0 oso_received=0

Neil Huang June 21, 2023 at 4:42 PM

To reproduce, try creating a migration mode replication from one source default collection to multiple target collections.
You should see the oso_received counter to be > 0.

Then, repeat the test with global oso mode switch and the counter should be 0.

CB robot June 1, 2023 at 7:20 AM

Build couchbase-server-7.1.5-3823 contains goxdcr commit 9ea03a4 with commit message:
: Provide a global OSO override

Fixed
Pinned fields
Click on the next to a field label to start pinning.

Details

Assignee

Reporter

Story Points

Priority

Instabug

Open Instabug

PagerDuty

Sentry

Zendesk Support

Created May 8, 2023 at 10:00 PM
Updated September 19, 2023 at 10:23 AM
Resolved June 6, 2023 at 5:39 PM
Instabug