flume-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Piotr Wiecek (JIRA)" <j...@apache.org>
Subject [jira] [Created] (FLUME-2894) Flume components should stop in the correct order (graceful shutdown)
Date Mon, 21 Mar 2016 10:00:33 GMT
Piotr Wiecek created FLUME-2894:
-----------------------------------

             Summary: Flume components should stop in the correct order (graceful shutdown)
                 Key: FLUME-2894
                 URL: https://issues.apache.org/jira/browse/FLUME-2894
             Project: Flume
          Issue Type: Improvement
          Components: Channel, Node, Sinks+Sources
    Affects Versions: v1.6.0
            Reporter: Piotr Wiecek


Flume components should be stopped in the right way:
* stop the sources (in order to not receiving further notifications),
* wait until all events within the channels are consumed by the sinks,
* stop the channels and the sinks.

Currently, the shutdown hook stops the components in a random manner.
E.g.: SINK, CHANNEL, SOURCE.

Components are stored in the HashMap:

{code:borderStyle=solid}
Map<LifecycleAware, Supervisoree> supervisedProcesses;
...
supervisedProcesses = new HashMap<LifecycleAware, Supervisoree>();
...
@Override
  public synchronized void stop() {
  ...
  for (final Entry<LifecycleAware, Supervisoree> entry : supervisedProcesses
        .entrySet()) {

      if (entry.getKey().getLifecycleState().equals(LifecycleState.START)) {
        entry.getValue().status.desiredState = LifecycleState.STOP;
        entry.getKey().stop();
      }
    }
....
{code}

The problems which we can have:
* not all Events will be consumed (Sink will be stopped first)
* Source will continue to accept messages even though other components are stopped



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message