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.

Reply via email to