YARN-8596. Allow SQLFederationStateStore to submit the same app in the same subcluster. Contributed by Giovanni Matteo Fumarola.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/79091cf7 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/79091cf7 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/79091cf7 Branch: refs/heads/YARN-7402 Commit: 79091cf76f6e966f64ac1d65e43e95782695e678 Parents: 2cccf40 Author: Inigo Goiri <inigo...@apache.org> Authored: Fri Jul 27 15:23:57 2018 -0700 Committer: Inigo Goiri <inigo...@apache.org> Committed: Fri Jul 27 15:23:57 2018 -0700 ---------------------------------------------------------------------- .../store/impl/SQLFederationStateStore.java | 14 +++++++------- .../store/impl/FederationStateStoreBaseTest.java | 19 +++++++++++++++++++ 2 files changed, 26 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/79091cf7/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/federation/store/impl/SQLFederationStateStore.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/federation/store/impl/SQLFederationStateStore.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/federation/store/impl/SQLFederationStateStore.java index e62dcaf..273118a 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/federation/store/impl/SQLFederationStateStore.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/federation/store/impl/SQLFederationStateStore.java @@ -564,13 +564,13 @@ public class SQLFederationStateStore implements FederationStateStore { // Check the ROWCOUNT value, if it is equal to 0 it means the call // did not add a new application into FederationStateStore if (cstmt.getInt(4) == 0) { - String errMsg = "The application " + appId - + " was not insert into the StateStore"; - FederationStateStoreUtils.logAndThrowStoreException(LOG, errMsg); - } - // Check the ROWCOUNT value, if it is different from 1 it means the call - // had a wrong behavior. Maybe the database is not set correctly. - if (cstmt.getInt(4) != 1) { + LOG.info( + "The application {} was not inserted in the StateStore because it" + + " was already present in SubCluster {}", + appId, subClusterHome); + } else if (cstmt.getInt(4) != 1) { + // Check the ROWCOUNT value, if it is different from 1 it means the + // call had a wrong behavior. Maybe the database is not set correctly. String errMsg = "Wrong behavior during the insertion of SubCluster " + subClusterId; FederationStateStoreUtils.logAndThrowStoreException(LOG, errMsg); http://git-wip-us.apache.org/repos/asf/hadoop/blob/79091cf7/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/test/java/org/apache/hadoop/yarn/server/federation/store/impl/FederationStateStoreBaseTest.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/test/java/org/apache/hadoop/yarn/server/federation/store/impl/FederationStateStoreBaseTest.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/test/java/org/apache/hadoop/yarn/server/federation/store/impl/FederationStateStoreBaseTest.java index 15cc0f0..b17f870 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/test/java/org/apache/hadoop/yarn/server/federation/store/impl/FederationStateStoreBaseTest.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/test/java/org/apache/hadoop/yarn/server/federation/store/impl/FederationStateStoreBaseTest.java @@ -282,6 +282,25 @@ public abstract class FederationStateStoreBaseTest { } @Test + public void testAddApplicationHomeSubClusterAppAlreadyExistsInTheSameSC() + throws Exception { + ApplicationId appId = ApplicationId.newInstance(1, 1); + SubClusterId subClusterId1 = SubClusterId.newInstance("SC1"); + addApplicationHomeSC(appId, subClusterId1); + + ApplicationHomeSubCluster ahsc2 = + ApplicationHomeSubCluster.newInstance(appId, subClusterId1); + + AddApplicationHomeSubClusterResponse response = + stateStore.addApplicationHomeSubCluster( + AddApplicationHomeSubClusterRequest.newInstance(ahsc2)); + + Assert.assertEquals(subClusterId1, response.getHomeSubCluster()); + Assert.assertEquals(subClusterId1, queryApplicationHomeSC(appId)); + + } + + @Test public void testDeleteApplicationHomeSubCluster() throws Exception { ApplicationId appId = ApplicationId.newInstance(1, 1); SubClusterId subClusterId = SubClusterId.newInstance("SC"); --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org