Details
-
New Feature
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
-
None
Description
Owen alluded to it HADOOP-1183 and Devaraj talked about this in HADOOP-1337 ... I believe this will be a generally useful feature in other parts of hadoop too...
The proposal is to implement a generic state machine which can be configured as needed and could be used to track states/transitions of various entities. This will hopefully make code less complex (for e.g. in the shuffle) and more maintainable/understandable since the state transitions of entities will be visible in one place (for e.g. where it is configured) and not scattered across myriad sections.
The idea is quite simple:
class StateMachine {
// Register a legal 'transition' from pre to post state on a given event and
// a user-provided hook/callback
void registerTransition(State pre, State post, Event event, Hook hook)
throws IllegalStateTransitionException;
// Effect a transition from the state on the event, return the resulting state or
// throw an exception if the transition is illegal.
// cause/victim are user objects i.e. context/result of the transition.
State doTransition(State state, Event event, Object cause, Object victim)
throws IllegalStateTransitionException;
}
-
Thoughts?
Attachments
Attachments
Issue Links
- relates to
-
MAPREDUCE-278 Proposal for redesign/refactoring of the JobTracker and TaskTracker
- Resolved