add a Pingable interface with a Ping() method for checking the health of things -------------------------------------------------------------------------------
Key: HADOOP-5622 URL: https://issues.apache.org/jira/browse/HADOOP-5622 Project: Hadoop Core Issue Type: Improvement Components: util Affects Versions: 0.21.0 Reporter: Steve Loughran Assignee: Steve Loughran Priority: Minor I'm filing this as part of the plan for getting HADOOP-3628 checked in: separate Ping() from everything else so that it can go in later/separately, and apply to more bits of the code than just the node root threads . The various helper classes that they use underneath could be marked as Pingable so that the health check operations could move the workload down. Use cases # Pingable Filesystem and MapReduce services: namenode, datanode, job-tracker, task-tracker, etc # Eventually : Pingable pig/cascading,HBase services # Implementation of the ping operation in the services by calling their in-JVM classes and aggregating the results # in JVM-health checks (JMX operations etc) # Over RMI/REST Smartfrog health checks (my use case) # Thrift and other wire format health checks # Public HTTP checks that return an error code with XML or JSON output. # Command line tools (that could check the HTTP pages) # Make it easy to test The current HADOOP-3628 ping() operation includes the service state from the proposed service lifecycle, and a list of nested exceptions; it only works in -VM. To work in more use cases # It needs to move to a serialized exception format - the ThrowableWritable of HADOOP-5348. # We need to consider how best to return the far-end's state. I'm going offline for two weeks; here is somewhere for people to add their thoughts and work for me when I get back. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.