|
@@ -85,7 +85,10 @@ public class NMLeveldbStateStoreService extends NMStateStoreService {
|
|
|
private static final String DB_NAME = "yarn-nm-state";
|
|
|
private static final String DB_SCHEMA_VERSION_KEY = "nm-schema-version";
|
|
|
|
|
|
- private static final Version CURRENT_VERSION_INFO = Version.newInstance(3, 0);
|
|
|
+ // Set to 1.1 by YARN-5049
|
|
|
+ // Set to 1.2 by YARN-6127
|
|
|
+ private static final Version CURRENT_VERSION_INFO = Version
|
|
|
+ .newInstance(1, 2);
|
|
|
|
|
|
private static final String DELETION_TASK_KEY_PREFIX =
|
|
|
"DeletionService/deltask_";
|
|
@@ -112,6 +115,7 @@ public class NMLeveldbStateStoreService extends NMStateStoreService {
|
|
|
private static final String CONTAINER_VERSION_KEY_SUFFIX = "/version";
|
|
|
private static final String CONTAINER_DIAGS_KEY_SUFFIX = "/diagnostics";
|
|
|
private static final String CONTAINER_LAUNCHED_KEY_SUFFIX = "/launched";
|
|
|
+ private static final String CONTAINER_QUEUED_KEY_SUFFIX = "/queued";
|
|
|
private static final String CONTAINER_RESOURCE_CHANGED_KEY_SUFFIX =
|
|
|
"/resourceChanged";
|
|
|
private static final String CONTAINER_KILLED_KEY_SUFFIX = "/killed";
|
|
@@ -256,8 +260,13 @@ public class NMLeveldbStateStoreService extends NMStateStoreService {
|
|
|
rcs.version = Integer.parseInt(asString(entry.getValue()));
|
|
|
} else if (suffix.equals(CONTAINER_DIAGS_KEY_SUFFIX)) {
|
|
|
rcs.diagnostics = asString(entry.getValue());
|
|
|
- } else if (suffix.equals(CONTAINER_LAUNCHED_KEY_SUFFIX)) {
|
|
|
+ } else if (suffix.equals(CONTAINER_QUEUED_KEY_SUFFIX)) {
|
|
|
if (rcs.status == RecoveredContainerStatus.REQUESTED) {
|
|
|
+ rcs.status = RecoveredContainerStatus.QUEUED;
|
|
|
+ }
|
|
|
+ } else if (suffix.equals(CONTAINER_LAUNCHED_KEY_SUFFIX)) {
|
|
|
+ if ((rcs.status == RecoveredContainerStatus.REQUESTED)
|
|
|
+ || (rcs.status == RecoveredContainerStatus.QUEUED)) {
|
|
|
rcs.status = RecoveredContainerStatus.LAUNCHED;
|
|
|
}
|
|
|
} else if (suffix.equals(CONTAINER_KILLED_KEY_SUFFIX)) {
|
|
@@ -321,6 +330,21 @@ public class NMLeveldbStateStoreService extends NMStateStoreService {
|
|
|
return CONTAINERS_KEY_PREFIX + containerId + CONTAINER_VERSION_KEY_SUFFIX;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void storeContainerQueued(ContainerId containerId) throws IOException {
|
|
|
+ if (LOG.isDebugEnabled()) {
|
|
|
+ LOG.debug("storeContainerQueued: containerId=" + containerId);
|
|
|
+ }
|
|
|
+
|
|
|
+ String key = CONTAINERS_KEY_PREFIX + containerId.toString()
|
|
|
+ + CONTAINER_QUEUED_KEY_SUFFIX;
|
|
|
+ try {
|
|
|
+ db.put(bytes(key), EMPTY_VALUE);
|
|
|
+ } catch (DBException e) {
|
|
|
+ throw new IOException(e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public void storeContainerDiagnostics(ContainerId containerId,
|
|
|
StringBuilder diagnostics) throws IOException {
|
|
@@ -464,6 +488,7 @@ public class NMLeveldbStateStoreService extends NMStateStoreService {
|
|
|
batch.delete(bytes(keyPrefix + CONTAINER_REQUEST_KEY_SUFFIX));
|
|
|
batch.delete(bytes(keyPrefix + CONTAINER_DIAGS_KEY_SUFFIX));
|
|
|
batch.delete(bytes(keyPrefix + CONTAINER_LAUNCHED_KEY_SUFFIX));
|
|
|
+ batch.delete(bytes(keyPrefix + CONTAINER_QUEUED_KEY_SUFFIX));
|
|
|
batch.delete(bytes(keyPrefix + CONTAINER_KILLED_KEY_SUFFIX));
|
|
|
batch.delete(bytes(keyPrefix + CONTAINER_EXIT_CODE_KEY_SUFFIX));
|
|
|
List<String> unknownKeysForContainer =
|