ID | IEP-14 |
Author | Anton Vinogradov |
Sponsor | |
Created | Feb 20 2018 |
Status | DRAFT |
Apache Ignite should have some general engine to handle critical failures.
List of failures should be covered by this engine:
List of system workers should be covered by this engine:
List of errors to be handled
IgniteConfiguration have to be extended with methods
IgniteConfiguration setIgniteFailureHandler(IgniteFailureHandler igniteFailureHnd)
IgniteFailureHandler getIgniteFailureHandler()
Where
interface IgniteFailureHandler {
IgniteFailureAction onFailure(IgniteFailureContext failureCtx);
}
class IgniteFailureContext {
IgniteFailureType type;
Throwable cause;
}
enum IgniteFailureAction {
RESTART_JVM,
STOP,
NOOP;
}
enum IgniteFailureType {
SEGMENTATION,
SYSTEM_WORKER_CRASHED,
CRITICAL_ERROR
}
So, provided by user subclass of IgniteFailureHandler able to decide what to do (see. IgniteFailureAction) on each registered failure (see. IgniteFailureContext).
// Describe project risks, such as API or binary compatibility issues, major protocol changes, etc.
// Links to various reference documents, if applicable.