Committed by
Gerrit Code Review
Using AsyncLeaderElector primitive for Leadership
Change-Id: I0ff91ddaa3b5dec79e073496044c2f860ae94616
Showing
3 changed files
with
2 additions
and
16 deletions
... | @@ -18,9 +18,6 @@ package org.onosproject.cluster.impl; | ... | @@ -18,9 +18,6 @@ package org.onosproject.cluster.impl; |
18 | import static org.slf4j.LoggerFactory.getLogger; | 18 | import static org.slf4j.LoggerFactory.getLogger; |
19 | 19 | ||
20 | import java.util.Map; | 20 | import java.util.Map; |
21 | -import java.util.concurrent.Executors; | ||
22 | -import java.util.concurrent.ScheduledExecutorService; | ||
23 | -import java.util.concurrent.TimeUnit; | ||
24 | 21 | ||
25 | import org.apache.felix.scr.annotations.Activate; | 22 | import org.apache.felix.scr.annotations.Activate; |
26 | import org.apache.felix.scr.annotations.Component; | 23 | import org.apache.felix.scr.annotations.Component; |
... | @@ -28,9 +25,7 @@ import org.apache.felix.scr.annotations.Deactivate; | ... | @@ -28,9 +25,7 @@ import org.apache.felix.scr.annotations.Deactivate; |
28 | import org.apache.felix.scr.annotations.Reference; | 25 | import org.apache.felix.scr.annotations.Reference; |
29 | import org.apache.felix.scr.annotations.ReferenceCardinality; | 26 | import org.apache.felix.scr.annotations.ReferenceCardinality; |
30 | import org.apache.felix.scr.annotations.Service; | 27 | import org.apache.felix.scr.annotations.Service; |
31 | -import org.onlab.util.Tools; | ||
32 | import org.onosproject.cluster.ClusterService; | 28 | import org.onosproject.cluster.ClusterService; |
33 | -import org.onosproject.cluster.ControllerNode; | ||
34 | import org.onosproject.cluster.Leadership; | 29 | import org.onosproject.cluster.Leadership; |
35 | import org.onosproject.cluster.LeadershipAdminService; | 30 | import org.onosproject.cluster.LeadershipAdminService; |
36 | import org.onosproject.cluster.LeadershipEvent; | 31 | import org.onosproject.cluster.LeadershipEvent; |
... | @@ -65,25 +60,16 @@ public class LeadershipManager | ... | @@ -65,25 +60,16 @@ public class LeadershipManager |
65 | 60 | ||
66 | private NodeId localNodeId; | 61 | private NodeId localNodeId; |
67 | 62 | ||
68 | - private final ScheduledExecutorService deadlockDetector = | ||
69 | - Executors.newSingleThreadScheduledExecutor(Tools.groupedThreads("onos/leadership", "")); | ||
70 | - | ||
71 | @Activate | 63 | @Activate |
72 | public void activate() { | 64 | public void activate() { |
73 | localNodeId = clusterService.getLocalNode().id(); | 65 | localNodeId = clusterService.getLocalNode().id(); |
74 | store.setDelegate(delegate); | 66 | store.setDelegate(delegate); |
75 | eventDispatcher.addSink(LeadershipEvent.class, listenerRegistry); | 67 | eventDispatcher.addSink(LeadershipEvent.class, listenerRegistry); |
76 | - deadlockDetector.scheduleWithFixedDelay(() -> clusterService.getNodes() | ||
77 | - .stream() | ||
78 | - .map(ControllerNode::id) | ||
79 | - .filter(id -> !clusterService.getState(id).isActive()) | ||
80 | - .forEach(this::unregister), 0, 2, TimeUnit.SECONDS); | ||
81 | log.info("Started"); | 68 | log.info("Started"); |
82 | } | 69 | } |
83 | 70 | ||
84 | @Deactivate | 71 | @Deactivate |
85 | public void deactivate() { | 72 | public void deactivate() { |
86 | - deadlockDetector.shutdown(); | ||
87 | Maps.filterValues(store.getLeaderships(), v -> v.candidates().contains(localNodeId)) | 73 | Maps.filterValues(store.getLeaderships(), v -> v.candidates().contains(localNodeId)) |
88 | .keySet() | 74 | .keySet() |
89 | .forEach(this::withdraw); | 75 | .forEach(this::withdraw); | ... | ... |
... | @@ -56,7 +56,7 @@ import com.google.common.collect.Sets; | ... | @@ -56,7 +56,7 @@ import com.google.common.collect.Sets; |
56 | * Implementation of {@code LeadershipStore} backed by {@link ConsistentMap}. | 56 | * Implementation of {@code LeadershipStore} backed by {@link ConsistentMap}. |
57 | */ | 57 | */ |
58 | @Service | 58 | @Service |
59 | -@Component(immediate = true, enabled = true) | 59 | +@Component(immediate = true, enabled = false) |
60 | public class DistributedLeadershipStore | 60 | public class DistributedLeadershipStore |
61 | extends AbstractStore<LeadershipEvent, LeadershipStoreDelegate> | 61 | extends AbstractStore<LeadershipEvent, LeadershipStoreDelegate> |
62 | implements LeadershipStore { | 62 | implements LeadershipStore { | ... | ... |
... | @@ -47,7 +47,7 @@ import com.google.common.collect.Maps; | ... | @@ -47,7 +47,7 @@ import com.google.common.collect.Maps; |
47 | * primitive. | 47 | * primitive. |
48 | */ | 48 | */ |
49 | @Service | 49 | @Service |
50 | -@Component(immediate = true, enabled = false) | 50 | +@Component(immediate = true, enabled = true) |
51 | public class NewDistributedLeadershipStore | 51 | public class NewDistributedLeadershipStore |
52 | extends AbstractStore<LeadershipEvent, LeadershipStoreDelegate> | 52 | extends AbstractStore<LeadershipEvent, LeadershipStoreDelegate> |
53 | implements LeadershipStore { | 53 | implements LeadershipStore { | ... | ... |
-
Please register or login to post a comment