public class ReconciliationManager extends Object implements AutoCloseable
This class provides the implementation of ovsdb southbound plugins configuration reconciliation engine. This engine provide interfaces to enqueue (one time retry)/ enqueueForRetry(periodic retry)/ dequeue (remove from retry queue) reconciliation task. Reconciliation task can be a connection reconciliation or configuration reconciliation of any ovsdb managed resource like bridge, termination point etc. This engine execute all the reconciliation task through a fixed size thread pool. If submitted task need to be retry after a periodic interval they are submitted to a single thread executor to periodically wake up and check if task is ready for execution. Ideally, addition of any type of reconciliation task should not require any change in this reconciliation manager execution engine.
3-Node Cluster: Reconciliation manager is agnostic of whether it's running in single node cluster or 3-node cluster. It's a responsibility of the task submitter to make sure that it submit the task for reconciliation only if it's an owner of that device EXCEPT controller initiated Connection. Reconciliation of controller initiated connection should be done by all the 3-nodes in the cluster, because connection to individual controller can be interrupted for various reason.
Created by Anil Vishnoi (avishnoi@Brocade.com) on 3/9/16.
Constructor and Description |
---|
ReconciliationManager(org.opendaylight.controller.md.sal.binding.api.DataBroker db) |
Modifier and Type | Method and Description |
---|---|
void |
close() |
void |
dequeue(ReconciliationTask task) |
void |
enqueue(ReconciliationTask task) |
void |
enqueueForRetry(ReconciliationTask task) |
org.opendaylight.controller.md.sal.binding.api.DataBroker |
getDb() |
boolean |
isEnqueued(ReconciliationTask task) |
public ReconciliationManager(org.opendaylight.controller.md.sal.binding.api.DataBroker db)
public boolean isEnqueued(ReconciliationTask task)
public void enqueue(ReconciliationTask task)
public void enqueueForRetry(ReconciliationTask task)
public void dequeue(ReconciliationTask task)
public org.opendaylight.controller.md.sal.binding.api.DataBroker getDb()
public void close() throws Exception
close
in interface AutoCloseable
Exception
Copyright © 2019 OpenDaylight. All rights reserved.