不允许直接增加或删除region locality,即F@zone—>F@zone,X{*}@region或者F@zone,X{*}@region—>F@zone都不被允许,其中X{*}表示任意类型任意数量的副本。
region不允许增加或删除paxos副本,但允许转换paxos副本,每次允许转换一个。即允许:F{2},L{1}@region—>F{1},L{2}@region而不允许F{2},L{1}@region—>F{2}@region。
对于zone locality,每次仅允许增加,删除或修改一个zone内的一个paxos副本。即允许:F@zone1—>F@zone1,L@zone2或F@zone1,L@zone2—>F@zone1或F@zone1,L@zone2—>F@zone1,F@zone2。
为了解决region locality的搬迁,允许如下的变更,允许region—>zones或者zones—>region的变更。即允许F{2},L@region—>F@zone1,F@zone2,L@zone3或F@zone1,F@zone2,L@zone3—>F{2},L@region,需要注意的是,这里paxos副本的副本数前后必须相等。
以上几种变更不能同时发生,每次同时仅能发生一个。
non_paxos副本可以随上述变化一并发生,并且不限制数量。