[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[ptp-dev] Changes to TRY_RMR branch
|
Randy and I have had some long discussions that have resulted in some
changes to the TRY_RMR branch. This branch is where the new resource
manager implementation is being done, and is intended to be merged
into HEAD in the near future.
1. We now have a very clean separation between different components:
a) IRuntime* between ResourceManager and RuntimeSystem
b) IProxyRuntime* between RuntimeSystem and ProxyRuntimeClient
c) IProxy* between ProxyRuntimeClient and ProxyClient
2. The IControlSystem and IMonitoringSystem interfaces have been
combined into IRuntimeSystem.
3. I've completed the separation of the ProxyEvent and
ProxyRuntimeEvent code. I've added explicit interfaces for each event
type at both levels, and updated the listener interfaces to provide
handle() methods for each event type. Note that there is no
overlapping of events any more (e.g. ProxyOKEvent and
ProxyRuntimeOKEvent). To receive the lower level events (e.g.
ProxyOKEvent) you have to implement the lower level interface.
4. I've significantly simplified the state machine code in
AbstractProxyRuntimeClient. This was mainly achieved by removing the
inner classes and internal events. Now all state transitions happen
in the main state machine loop. Craig, I've trampled on a lot of your
code, including the command event code which is now no longer used.
Let me know if you think it is ok.
5. I've updated the ORTE, MPICH2 and LSF systems to use the new
interfaces.
6. I've updated the JUnit tests to work with the new interfaces.
7. I've deprecated all the interfaces/classes that are no longer
needed (with the notable exception of some IProxyRuntime*Events).
They should be removed some time soon. I may also have missed some.
Things left to do:
1. Randy needs to fully define the IRuntimeEvent interface between
the resource manager and the runtime system.
2. Many of the IProxyRuntime*Event types are 1.1 specific. I have
added new ones for 2.0, but the list is incomplete. These need to be
fully specified, and the old 1.1 types deprecated.
3. The debug code needs to be updated from HEAD, then modified to
support the new event types.