Outcome
Adjust dbct such that the LBFactoryConf structure it writes to Etcd for wmf-config, registers only the local primary. E.g. instead of a list of three servers with [0] being the primary, let the list contain a single item only.
Context
In T312809#8192220, @Krinkle wrote:I'd like to try keeping complexity down by not adding a new concept to MW for "a cluster of servers where we pretend only 1 exists and disable the multi-server features".
The overhead of ChronologyProtector, the concept of lagged-replica mode, the periodic broadcast connect to all replicas to check lags and proactively enact read-only mode when lag is too hgih etc; these are all naturally turned off for single-server DB clusters.
I suggest we configure x2 as a single-server cluster, similar to what we do for local development and CI by default ("LBSimple"), and somewhat akin to what we've done with ParserCache for a long time (somewhat different since those do contain multiple servers, but we treat each as its own isolated master-only host).
From #wikimedia-sre:20:50 <Krinkle> weight:0 will not be enough I think. It will dampen the effect but still register them as generally having replicas.
20:50 <Krinkle> it's a boolean change in behaviour
20:51 <cdanis> Krinkle: okay, thanks, that's all good context. I need to check but I don't think it should be hard to add another dbctl section 'flavor' that simply doesn't include any replicas in the output
20:51 <cdanis> which sounds like it would be enough?
21:05 <Krinkle> This sounds like dbctl stores data in two places in etcd, one as source and one as output.
21:05 <Krinkle> If so, yeah, that sounds like it would suffice
21:06 <cdanis> yes
21:06 <cdanis> that is right :)
21:06 <cdanis> the output part very closely follows Mediawiki's data structures