Clone
Murtadha Makki Al Hubail
committed
on 13 Dec 17
[ASTERIXDB-2198][REPL] Introduce Dynamic Replica Placement
- user model changes: no
- storage format changes: no
- interface changes: yes
Show more
[ASTERIXDB-2198][REPL] Introduce Dynamic Replica Placement

- user model changes: no

- storage format changes: no

- interface changes: yes

 - Add IReplicationMessage and IReplicaTask.

 - Add notifyMetadataNodeChange to IFaultToleranceStrategy.

 - Add register to IReplicationManager to allow registering

   replicas at runtime.

Details:

- Add cluster APIs for:

 - changing partition master node.

 - changing metadata node.

- Add NC storage management API for promoting a partition replica

 to master replica.

- Implement changing metadata node at runtime in

 MetadataNodeFaultToleranceStrategy.

- Allow MetadataNodeFaultToleranceStrategy to have zero replica

 at initialization.

- Add a flag to LangExecutionUtil to skip storage distribution

 check at the end of each test.

- Add test case for metadata node failover as follows:

 1- start with nc1 as metadata node.

 2- add replica for metadata partition on nc2 at runtime.

 3- performs metadata transactions on nc1.

 4- promote metadata partition on nc2.

 5- failover metadata node to nc2.

 6- ensure the effects of the metadata transactions on (2) exists.

 7- performs more metadata transactions on nc2.

 8- ensure the effects of the metadata transactions on (7) exists.

Change-Id: I11f82efcad29d2c37324fe9d3c11d872b0348f49

Reviewed-on: https://asterix-gerrit.ics.uci.edu/2215

Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Till Westmann <tillw@apache.org>

Show less

master + 3 more