diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryStore.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryStore.java
index 3d0db8a..c26faef 100644
--- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryStore.java
+++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryStore.java
@@ -20,9 +20,18 @@
import org.apache.hadoop.classification.InterfaceAudience;
import org.apache.hadoop.classification.InterfaceStability;
+import org.apache.hadoop.service.Service;
+/**
+ * This class is the abstract of the storage of the application history data. It
+ * is a {@link Service}, such that the implementation of this class can make use
+ * of the service life cycle to initialize and cleanup the storage. Users can
+ * access the storage via {@link ApplicationHistoryReader} and
+ * {@link ApplicationHistoryWriter} interfaces.
+ *
+ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
-public interface ApplicationHistoryStore extends ApplicationHistoryReader,
- ApplicationHistoryWriter {
+public interface ApplicationHistoryStore extends Service,
+ ApplicationHistoryReader, ApplicationHistoryWriter {
}
diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryWriter.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryWriter.java
index c721c63..46e83a1 100644
--- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryWriter.java
+++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/applicationhistoryservice/ApplicationHistoryWriter.java
@@ -18,11 +18,16 @@
package org.apache.hadoop.yarn.server.applicationhistoryservice;
+import java.io.IOException;
+
import org.apache.hadoop.classification.InterfaceAudience.Private;
import org.apache.hadoop.classification.InterfaceStability.Unstable;
-import org.apache.hadoop.yarn.server.applicationhistoryservice.records.ApplicationAttemptHistoryData;
-import org.apache.hadoop.yarn.server.applicationhistoryservice.records.ApplicationHistoryData;
-import org.apache.hadoop.yarn.server.applicationhistoryservice.records.ContainerHistoryData;
+import org.apache.hadoop.yarn.server.applicationhistoryservice.records.ApplicationAttemptFinishData;
+import org.apache.hadoop.yarn.server.applicationhistoryservice.records.ApplicationAttemptStartData;
+import org.apache.hadoop.yarn.server.applicationhistoryservice.records.ApplicationFinishData;
+import org.apache.hadoop.yarn.server.applicationhistoryservice.records.ApplicationStartData;
+import org.apache.hadoop.yarn.server.applicationhistoryservice.records.ContainerFinishData;
+import org.apache.hadoop.yarn.server.applicationhistoryservice.records.ContainerStartData;
/**
* It is the interface of writing the application history, exposing the methods
@@ -34,25 +39,72 @@
public interface ApplicationHistoryWriter {
/**
- * This method persists an {@link ApplicationHistoryData} object.
- * @param app the {@link ApplicationHistoryData} object
- * @throws Throwable
+ * This method writes the information of RMApp that is available
+ * when it starts.
+ *
+ * @param appStart
+ * the record of the information of RMApp that is
+ * available when it starts
+ * @throws IOException
+ */
+ void applicationStarted(ApplicationStartData appStart) throws IOException;
+
+ /**
+ * This method writes the information of RMApp that is available
+ * when it finishes.
+ *
+ * @param appFinish
+ * the record of the information of RMApp that is
+ * available when it finishes
+ * @throws IOException
+ */
+ void applicationFinished(ApplicationFinishData appFinish) throws IOException;
+
+ /**
+ * This method writes the information of RMAppAttempt that is
+ * available when it starts.
+ *
+ * @param appAttemptStart
+ * the record of the information of RMAppAttempt that is
+ * available when it starts
+ * @throws IOException
+ */
+ void applicationAttemptStarted(
+ ApplicationAttemptStartData appAttemptStart) throws IOException;
+
+ /**
+ * This method writes the information of RMAppAttempt that is
+ * available when it finishes.
+ *
+ * @param appAttemptFinish
+ * the record of the information of RMAppAttempt that is
+ * available when it finishes
+ * @throws IOException
*/
- void writeApplication(ApplicationHistoryData app) throws Throwable;
+ void applicationAttemptFinished(
+ ApplicationAttemptFinishData appAttemptFinish) throws IOException;
/**
- * This method persists an {@link ApplicationAttemptHistoryData} object.
- * @param appAttempt the {@link ApplicationAttemptHistoryData} object
- * @throws Throwable
+ * This method writes the information of RMContainer that is
+ * available when it starts.
+ *
+ * @param containerStart
+ * the record of the information of RMContainer that is
+ * available when it starts
+ * @throws IOException
*/
- void writeApplicationAttempt(
- ApplicationAttemptHistoryData appAttempt) throws Throwable;
+ void containerStarted(ContainerStartData containerStart) throws IOException;
/**
- * This method persists a {@link ContainerHistoryData} object.
- * @param container the {@link ContainerHistoryData} object
- * @throws Throwable
+ * This method writes the information of RMContainer that is
+ * available when it finishes.
+ *
+ * @param containerFinish
+ * the record of the information of RMContainer that is
+ * available when it finishes
+ * @throws IOException
*/
- void writeContainer(ContainerHistoryData container) throws Throwable;
+ void containerFinished(ContainerFinishData containerFinish)
+ throws IOException;
}