On Tue, 2010-01-26 at 17:27 -0500, Alan Conway wrote: > A work-in-progress fix to the management timer updates problem in a cluster. > Would appreciate any comments in particular on ways to get around the > ordering > problem which not obvious to me: > > https://issues.apache.org/jira/browse/QPID-2364
I haven't had a thorough look yet but some things come to mind: 1. If you've made Timer an interface with a small number of implementations then I think this is the correct way to go. It's not clear to me this is actually what you did. 2. PeriodicTimer is a crummy name. Call the Base interface Timer as it is already or TimerBase. Then call the implementations StandaloneTimer and ClusterSafeTimer or some names like that. 3. The ClusterSafeTimer implementation should be with the cluster code not in qpid/sys. 4. I'm unclear whether all Timer events would need to ClusterSafe or not or just some of them. 5. To get round the ordering issue perhaps hang on the multiphase plugin load. Ie change Management init until all plugins loaded. Management isn't a plugin itself is it. Perhaps I missed an important issue that stops you doing this. Maybe you need to register the ClusterSafeTimer with the Broker object very early in the plugin init. Hope these random thoughts help. Andrew --------------------------------------------------------------------- Apache Qpid - AMQP Messaging Implementation Project: http://qpid.apache.org Use/Interact: mailto:[email protected]
