Replication provider and cluster address changes
wsrep replication initialization is controlled by two parameters:
* wsrep_provider -
path to wsrep replication provider library
Value is filesystem path or NULL | "none", if no provider is specified
* wsrep_cluster_
Address for the node to connect with cluster.
Value can be provider specific address or special address: "dummy://".
The "dummy://" address tells, that provider must not replicate anything.
These parameters can be modified dynamically and this blueprint defines the semantics of dynamic changes.
Two other variables define if replication will be used or not:
* wsrep_on -
is thread specific variable telling, if connection will use replication
* wsrep_ready -
is status variable, which replication provider sets to value "yes", when node has fully connected with cluster
Replication will happen only when connection has wsrep_on=="on" and wsrep_ready=="yes".
wsrep_provider:
=============
If value is initially NULL or "none", no provider library will be loaded. This will force status variable wsrep_ready to value "no", and replication calls will be tried. The value of replication variable wsrep_on, is not meaningful in this case.
If wsrep_provider has initially a value, the corresponding replication provider will be loaded and wsrep_ready will be set to "yes", when provider determines that node has fully connected with the cluster.
If wsrep_provider is changed changed (any combination, "none" to real value or vice versa), then following happens:
1. if provider was specified, then old provider is disconnected
2. if provider was specified, then old provider is unloaded
3. provider applier threads are terminated
4. client connections are closed
5. new provider is loaded
6. new provider is initialized
7. provider is connected
(note that rollbacker thread remains intact in this procedure)
wsrep_cluster_
=============
If wsrep_provider == NULL or "none", then nothing of the following is applicable.
If value is initially "dummy://", provider will not perform replication. I this case, wsrep_ready is set to "yes", but provider does not process any replication calls, but returns WSREP_OK for all calls.
If wsrep_cluster_
If wsrep_cluster_
1. provider is disconnected
2. provider applier threads are terminated
3. client connections are closed
4. provider is connected
(note that rollbacker thread remains intact in this procedure)
Both wsrep_provider and wsrep_cluster_
Blueprint information
- Status:
- Complete
- Approver:
- Codership
- Priority:
- Medium
- Drafter:
- Seppo Jaakola
- Direction:
- Approved
- Assignee:
- Codership
- Definition:
- New
- Series goal:
- Accepted for 0.7
- Implementation:
- Implemented
- Milestone target:
- 0.7.3
- Started by
- Seppo Jaakola
- Completed by
- Seppo Jaakola
Related branches
Related bugs
Sprints
Whiteboard
prototype under development