Hi, I've created a new Carbon component called "Coordination" to be used for distributed coordination requirements. This is based on Apache ZooKeeper, and both client and the server components are available. The core constructs include the following: Barriers/Double Barriers, Queues / Priority Queues, Locks (can be used to create critical sections), Groups (for leader election, message broadcasting). I've also written some tests as well to test the above, the test are run by running the server component and making calls to it from the tests.
I haven't included the component to any product or existing component, the first task is to add the coordination functionalities for the scheduled tasks. This is required when scheduled tasks are run in a cluster environment, where some leader election functionality should be there to select the server which will execute the tasks, and fallback to another option, when that server goes down. Another similar situation would be to register Carbon data sources in JNDI/In-Memory data repository when a data source is added from different server in a cluster (at the moment, this only goes into the registry, and other nodes aren't aware of this). So for requirements such as those, we can use this component. Cheers, Anjana. -- *Anjana Fernando* Senior Software Engineer WSO2 Inc. | http://wso2.com lean . enterprise . middleware
_______________________________________________ Carbon-dev mailing list [email protected] http://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
