org.apache.hadoop.yarn.server.records.Version.isCompatibleTo()方法的使用及代码示例

x33g5p2x  于2022-02-01 转载在 其他  
字(20.3k)|赞(0)|评价(0)|浏览(104)

本文整理了Java中org.apache.hadoop.yarn.server.records.Version.isCompatibleTo()方法的一些代码示例,展示了Version.isCompatibleTo()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Version.isCompatibleTo()方法的具体详情如下:
包路径:org.apache.hadoop.yarn.server.records.Version
类名称:Version
方法名:isCompatibleTo

Version.isCompatibleTo介绍

暂无

代码示例

代码示例来源:origin: ch.cern.hadoop/hadoop-yarn-server-applicationhistoryservice

/**
 * 1) Versioning timeline store: major.minor. For e.g. 1.0, 1.1, 1.2...1.25, 2.0 etc.
 * 2) Any incompatible change of TS-store is a major upgrade, and any
 *    compatible change of TS-store is a minor upgrade.
 * 3) Within a minor upgrade, say 1.1 to 1.2:
 *    overwrite the version info and proceed as normal.
 * 4) Within a major upgrade, say 1.2 to 2.0:
 *    throw exception and indicate user to use a separate upgrade tool to
 *    upgrade timeline store or remove incompatible old state.
 */
private void checkVersion() throws IOException {
 Version loadedVersion = loadVersion();
 LOG.info("Loaded timeline store version info " + loadedVersion);
 if (loadedVersion.equals(getCurrentVersion())) {
  return;
 }
 if (loadedVersion.isCompatibleTo(getCurrentVersion())) {
  LOG.info("Storing timeline store version info " + getCurrentVersion());
  dbStoreVersion(CURRENT_VERSION_INFO);
 } else {
  String incompatibleMessage = 
    "Incompatible version for timeline store: expecting version " 
      + getCurrentVersion() + ", but loading version " + loadedVersion;
  LOG.fatal(incompatibleMessage);
  throw new IOException(incompatibleMessage);
 }
}

代码示例来源:origin: ch.cern.hadoop/hadoop-yarn-server-applicationhistoryservice

/**
 * 1) Versioning timeline state store:
 * major.minor. For e.g. 1.0, 1.1, 1.2...1.25, 2.0 etc.
 * 2) Any incompatible change of TS-store is a major upgrade, and any
 * compatible change of TS-store is a minor upgrade.
 * 3) Within a minor upgrade, say 1.1 to 1.2:
 * overwrite the version info and proceed as normal.
 * 4) Within a major upgrade, say 1.2 to 2.0:
 * throw exception and indicate user to use a separate upgrade tool to
 * upgrade timeline store or remove incompatible old state.
 */
private void checkVersion() throws IOException {
 Version loadedVersion = loadVersion();
 LOG.info("Loaded timeline state store version info " + loadedVersion);
 if (loadedVersion.equals(getCurrentVersion())) {
  return;
 }
 if (loadedVersion.isCompatibleTo(getCurrentVersion())) {
  LOG.info("Storing timeline state store version info " + getCurrentVersion());
  storeVersion(CURRENT_VERSION_INFO);
 } else {
  String incompatibleMessage =
    "Incompatible version for timeline state store: expecting version "
      + getCurrentVersion() + ", but loading version " + loadedVersion;
  LOG.fatal(incompatibleMessage);
  throw new IOException(incompatibleMessage);
 }
}

代码示例来源:origin: org.apache.hadoop/hadoop-yarn-server-applicationhistoryservice

/**
 * 1) Versioning timeline store: major.minor. For e.g. 1.0, 1.1, 1.2...1.25, 2.0 etc.
 * 2) Any incompatible change of TS-store is a major upgrade, and any
 *    compatible change of TS-store is a minor upgrade.
 * 3) Within a minor upgrade, say 1.1 to 1.2:
 *    overwrite the version info and proceed as normal.
 * 4) Within a major upgrade, say 1.2 to 2.0:
 *    throw exception and indicate user to use a separate upgrade tool to
 *    upgrade timeline store or remove incompatible old state.
 */
private void checkVersion() throws IOException {
 Version loadedVersion = loadVersion();
 LOG.info("Loaded timeline store version info " + loadedVersion);
 if (loadedVersion.equals(getCurrentVersion())) {
  return;
 }
 if (loadedVersion.isCompatibleTo(getCurrentVersion())) {
  LOG.info("Storing timeline store version info " + getCurrentVersion());
  dbStoreVersion(CURRENT_VERSION_INFO);
 } else {
  String incompatibleMessage = 
    "Incompatible version for timeline store: expecting version " 
      + getCurrentVersion() + ", but loading version " + loadedVersion;
  LOG.error(incompatibleMessage);
  throw new IOException(incompatibleMessage);
 }
}

代码示例来源:origin: com.github.jiayuhan-it/hadoop-yarn-server-applicationhistoryservice

/**
 * 1) Versioning timeline store: major.minor. For e.g. 1.0, 1.1, 1.2...1.25, 2.0 etc.
 * 2) Any incompatible change of TS-store is a major upgrade, and any
 *    compatible change of TS-store is a minor upgrade.
 * 3) Within a minor upgrade, say 1.1 to 1.2:
 *    overwrite the version info and proceed as normal.
 * 4) Within a major upgrade, say 1.2 to 2.0:
 *    throw exception and indicate user to use a separate upgrade tool to
 *    upgrade timeline store or remove incompatible old state.
 */
private void checkVersion() throws IOException {
 Version loadedVersion = loadVersion();
 LOG.info("Loaded timeline store version info " + loadedVersion);
 if (loadedVersion.equals(getCurrentVersion())) {
  return;
 }
 if (loadedVersion.isCompatibleTo(getCurrentVersion())) {
  LOG.info("Storing timeline store version info " + getCurrentVersion());
  dbStoreVersion(CURRENT_VERSION_INFO);
 } else {
  String incompatibleMessage = 
    "Incompatible version for timeline store: expecting version " 
      + getCurrentVersion() + ", but loading version " + loadedVersion;
  LOG.fatal(incompatibleMessage);
  throw new IOException(incompatibleMessage);
 }
}

代码示例来源:origin: org.apache.hadoop/hadoop-mapreduce-client-shuffle

/**
 * 1) Versioning scheme: major.minor. For e.g. 1.0, 1.1, 1.2...1.25, 2.0 etc.
 * 2) Any incompatible change of DB schema is a major upgrade, and any
 *    compatible change of DB schema is a minor upgrade.
 * 3) Within a minor upgrade, say 1.1 to 1.2:
 *    overwrite the version info and proceed as normal.
 * 4) Within a major upgrade, say 1.2 to 2.0:
 *    throw exception and indicate user to use a separate upgrade tool to
 *    upgrade shuffle info or remove incompatible old state.
 */
private void checkVersion() throws IOException {
 Version loadedVersion = loadVersion();
 LOG.info("Loaded state DB schema version info " + loadedVersion);
 if (loadedVersion.equals(getCurrentVersion())) {
  return;
 }
 if (loadedVersion.isCompatibleTo(getCurrentVersion())) {
  LOG.info("Storing state DB schema version info " + getCurrentVersion());
  storeVersion();
 } else {
  throw new IOException(
   "Incompatible version for state DB schema: expecting DB schema version " 
     + getCurrentVersion() + ", but loading version " + loadedVersion);
 }
}

代码示例来源:origin: com.github.jiayuhan-it/hadoop-mapreduce-client-shuffle

/**
 * 1) Versioning scheme: major.minor. For e.g. 1.0, 1.1, 1.2...1.25, 2.0 etc.
 * 2) Any incompatible change of DB schema is a major upgrade, and any
 *    compatible change of DB schema is a minor upgrade.
 * 3) Within a minor upgrade, say 1.1 to 1.2:
 *    overwrite the version info and proceed as normal.
 * 4) Within a major upgrade, say 1.2 to 2.0:
 *    throw exception and indicate user to use a separate upgrade tool to
 *    upgrade shuffle info or remove incompatible old state.
 */
private void checkVersion() throws IOException {
 Version loadedVersion = loadVersion();
 LOG.info("Loaded state DB schema version info " + loadedVersion);
 if (loadedVersion.equals(getCurrentVersion())) {
  return;
 }
 if (loadedVersion.isCompatibleTo(getCurrentVersion())) {
  LOG.info("Storing state DB schedma version info " + getCurrentVersion());
  storeVersion();
 } else {
  throw new IOException(
   "Incompatible version for state DB schema: expecting DB schema version " 
     + getCurrentVersion() + ", but loading version " + loadedVersion);
 }
}

代码示例来源:origin: ch.cern.hadoop/hadoop-mapreduce-client-shuffle

/**
 * 1) Versioning scheme: major.minor. For e.g. 1.0, 1.1, 1.2...1.25, 2.0 etc.
 * 2) Any incompatible change of DB schema is a major upgrade, and any
 *    compatible change of DB schema is a minor upgrade.
 * 3) Within a minor upgrade, say 1.1 to 1.2:
 *    overwrite the version info and proceed as normal.
 * 4) Within a major upgrade, say 1.2 to 2.0:
 *    throw exception and indicate user to use a separate upgrade tool to
 *    upgrade shuffle info or remove incompatible old state.
 */
private void checkVersion() throws IOException {
 Version loadedVersion = loadVersion();
 LOG.info("Loaded state DB schema version info " + loadedVersion);
 if (loadedVersion.equals(getCurrentVersion())) {
  return;
 }
 if (loadedVersion.isCompatibleTo(getCurrentVersion())) {
  LOG.info("Storing state DB schedma version info " + getCurrentVersion());
  storeVersion();
 } else {
  throw new IOException(
   "Incompatible version for state DB schema: expecting DB schema version " 
     + getCurrentVersion() + ", but loading version " + loadedVersion);
 }
}

代码示例来源:origin: org.apache.hadoop/hadoop-yarn-server-applicationhistoryservice

/**
 * 1) Versioning timeline store: major.minor. For e.g. 1.0, 1.1, 1.2...1.25,
 * 2.0 etc. 2) Any incompatible change of TS-store is a major upgrade, and any
 * compatible change of TS-store is a minor upgrade. 3) Within a minor
 * upgrade, say 1.1 to 1.2: overwrite the version info and proceed as normal.
 * 4) Within a major upgrade, say 1.2 to 2.0: throw exception and indicate
 * user to use a separate upgrade tool to upgrade timeline store or remove
 * incompatible old state.
 */
private void checkVersion() throws IOException {
 Version loadedVersion = loadVersion();
 LOG.info("Loaded timeline store version info " + loadedVersion);
 if (loadedVersion.equals(getCurrentVersion())) {
  return;
 }
 if (loadedVersion.isCompatibleTo(getCurrentVersion())) {
  LOG.info("Storing timeline store version info " + getCurrentVersion());
  dbStoreVersion(CURRENT_VERSION_INFO);
 } else {
  String incompatibleMessage = "Incompatible version for timeline store: "
    + "expecting version " + getCurrentVersion()
    + ", but loading version " + loadedVersion;
  LOG.error(incompatibleMessage);
  throw new IOException(incompatibleMessage);
 }
}

代码示例来源:origin: io.hops/hadoop-yarn-server-nodemanager

/**
  * 1) Versioning scheme: major.minor. For e.g. 1.0, 1.1, 1.2...1.25, 2.0 etc.
  * 2) Any incompatible change of state-store is a major upgrade, and any
  *    compatible change of state-store is a minor upgrade.
  * 3) Within a minor upgrade, say 1.1 to 1.2:
  *    overwrite the version info and proceed as normal.
  * 4) Within a major upgrade, say 1.2 to 2.0:
  *    throw exception and indicate user to use a separate upgrade tool to
  *    upgrade NM state or remove incompatible old state.
  */
 protected void checkVersion() throws IOException {
  Version loadedVersion = loadVersion();
  LOG.info("Loaded NM state version info " + loadedVersion);
  if (loadedVersion.equals(getCurrentVersion())) {
   return;
  }
  if (loadedVersion.isCompatibleTo(getCurrentVersion())) {
   LOG.info("Storing NM state version info " + getCurrentVersion());
   storeVersion();
  } else {
   throw new IOException(
    "Incompatible version for NM state: expecting NM state version " 
      + getCurrentVersion() + ", but loading version " + loadedVersion);
  }
 }
}

代码示例来源:origin: org.apache.hadoop/hadoop-yarn-server-applicationhistoryservice

/**
 * 1) Versioning timeline state store:
 * major.minor. For e.g. 1.0, 1.1, 1.2...1.25, 2.0 etc.
 * 2) Any incompatible change of TS-store is a major upgrade, and any
 * compatible change of TS-store is a minor upgrade.
 * 3) Within a minor upgrade, say 1.1 to 1.2:
 * overwrite the version info and proceed as normal.
 * 4) Within a major upgrade, say 1.2 to 2.0:
 * throw exception and indicate user to use a separate upgrade tool to
 * upgrade timeline store or remove incompatible old state.
 */
private void checkVersion() throws IOException {
 Version loadedVersion = loadVersion();
 LOG.info("Loaded timeline state store version info " + loadedVersion);
 if (loadedVersion.equals(getCurrentVersion())) {
  return;
 }
 if (loadedVersion.isCompatibleTo(getCurrentVersion())) {
  LOG.info("Storing timeline state store version info " + getCurrentVersion());
  storeVersion(CURRENT_VERSION_INFO);
 } else {
  String incompatibleMessage =
    "Incompatible version for timeline state store: expecting version "
      + getCurrentVersion() + ", but loading version " + loadedVersion;
  LOG.error(incompatibleMessage);
  throw new IOException(incompatibleMessage);
 }
}

代码示例来源:origin: org.apache.hadoop/hadoop-yarn-server-nodemanager

/**
  * 1) Versioning scheme: major.minor. For e.g. 1.0, 1.1, 1.2...1.25, 2.0 etc.
  * 2) Any incompatible change of state-store is a major upgrade, and any
  *    compatible change of state-store is a minor upgrade.
  * 3) Within a minor upgrade, say 1.1 to 1.2:
  *    overwrite the version info and proceed as normal.
  * 4) Within a major upgrade, say 1.2 to 2.0:
  *    throw exception and indicate user to use a separate upgrade tool to
  *    upgrade NM state or remove incompatible old state.
  */
 protected void checkVersion() throws IOException {
  Version loadedVersion = loadVersion();
  LOG.info("Loaded NM state version info " + loadedVersion);
  if (loadedVersion.equals(getCurrentVersion())) {
   return;
  }
  if (loadedVersion.isCompatibleTo(getCurrentVersion())) {
   LOG.info("Storing NM state version info " + getCurrentVersion());
   storeVersion();
  } else {
   throw new IOException(
    "Incompatible version for NM state: expecting NM state version " 
      + getCurrentVersion() + ", but loading version " + loadedVersion);
  }
 }
}

代码示例来源:origin: io.hops/hadoop-mapreduce-client-hs

/**
 * 1) Versioning scheme: major.minor. For e.g. 1.0, 1.1, 1.2...1.25, 2.0 etc.
 * 2) Any incompatible change of state-store is a major upgrade, and any
 *    compatible change of state-store is a minor upgrade.
 * 3) Within a minor upgrade, say 1.1 to 1.2:
 *    overwrite the version info and proceed as normal.
 * 4) Within a major upgrade, say 1.2 to 2.0:
 *    throw exception and indicate user to use a separate upgrade tool to
 *    upgrade state or remove incompatible old state.
 */
private void checkVersion() throws IOException {
 Version loadedVersion = loadVersion();
 LOG.info("Loaded state version info " + loadedVersion);
 if (loadedVersion.equals(getCurrentVersion())) {
  return;
 }
 if (loadedVersion.isCompatibleTo(getCurrentVersion())) {
  LOG.info("Storing state version info " + getCurrentVersion());
  storeVersion();
 } else {
  throw new IOException(
   "Incompatible version for state: expecting state version "
     + getCurrentVersion() + ", but loading version " + loadedVersion);
 }
}

代码示例来源:origin: ch.cern.hadoop/hadoop-mapreduce-client-hs

/**
 * 1) Versioning scheme: major.minor. For e.g. 1.0, 1.1, 1.2...1.25, 2.0 etc.
 * 2) Any incompatible change of state-store is a major upgrade, and any
 *    compatible change of state-store is a minor upgrade.
 * 3) Within a minor upgrade, say 1.1 to 1.2:
 *    overwrite the version info and proceed as normal.
 * 4) Within a major upgrade, say 1.2 to 2.0:
 *    throw exception and indicate user to use a separate upgrade tool to
 *    upgrade state or remove incompatible old state.
 */
private void checkVersion() throws IOException {
 Version loadedVersion = loadVersion();
 LOG.info("Loaded state version info " + loadedVersion);
 if (loadedVersion.equals(getCurrentVersion())) {
  return;
 }
 if (loadedVersion.isCompatibleTo(getCurrentVersion())) {
  LOG.info("Storing state version info " + getCurrentVersion());
  storeVersion();
 } else {
  throw new IOException(
   "Incompatible version for state: expecting state version "
     + getCurrentVersion() + ", but loading version " + loadedVersion);
 }
}

代码示例来源:origin: com.github.jiayuhan-it/hadoop-mapreduce-client-hs

/**
 * 1) Versioning scheme: major.minor. For e.g. 1.0, 1.1, 1.2...1.25, 2.0 etc.
 * 2) Any incompatible change of state-store is a major upgrade, and any
 *    compatible change of state-store is a minor upgrade.
 * 3) Within a minor upgrade, say 1.1 to 1.2:
 *    overwrite the version info and proceed as normal.
 * 4) Within a major upgrade, say 1.2 to 2.0:
 *    throw exception and indicate user to use a separate upgrade tool to
 *    upgrade state or remove incompatible old state.
 */
private void checkVersion() throws IOException {
 Version loadedVersion = loadVersion();
 LOG.info("Loaded state version info " + loadedVersion);
 if (loadedVersion.equals(getCurrentVersion())) {
  return;
 }
 if (loadedVersion.isCompatibleTo(getCurrentVersion())) {
  LOG.info("Storing state version info " + getCurrentVersion());
  storeVersion();
 } else {
  throw new IOException(
   "Incompatible version for state: expecting state version "
     + getCurrentVersion() + ", but loading version " + loadedVersion);
 }
}

代码示例来源:origin: ch.cern.hadoop/hadoop-yarn-server-nodemanager

/**
  * 1) Versioning scheme: major.minor. For e.g. 1.0, 1.1, 1.2...1.25, 2.0 etc.
  * 2) Any incompatible change of state-store is a major upgrade, and any
  *    compatible change of state-store is a minor upgrade.
  * 3) Within a minor upgrade, say 1.1 to 1.2:
  *    overwrite the version info and proceed as normal.
  * 4) Within a major upgrade, say 1.2 to 2.0:
  *    throw exception and indicate user to use a separate upgrade tool to
  *    upgrade NM state or remove incompatible old state.
  */
 protected void checkVersion() throws IOException {
  Version loadedVersion = loadVersion();
  LOG.info("Loaded NM state version info " + loadedVersion);
  if (loadedVersion.equals(getCurrentVersion())) {
   return;
  }
  if (loadedVersion.isCompatibleTo(getCurrentVersion())) {
   LOG.info("Storing NM state version info " + getCurrentVersion());
   storeVersion();
  } else {
   throw new IOException(
    "Incompatible version for NM state: expecting NM state version " 
      + getCurrentVersion() + ", but loading version " + loadedVersion);
  }
 }
}

代码示例来源:origin: com.github.jiayuhan-it/hadoop-yarn-server-nodemanager

/**
  * 1) Versioning scheme: major.minor. For e.g. 1.0, 1.1, 1.2...1.25, 2.0 etc.
  * 2) Any incompatible change of state-store is a major upgrade, and any
  *    compatible change of state-store is a minor upgrade.
  * 3) Within a minor upgrade, say 1.1 to 1.2:
  *    overwrite the version info and proceed as normal.
  * 4) Within a major upgrade, say 1.2 to 2.0:
  *    throw exception and indicate user to use a separate upgrade tool to
  *    upgrade NM state or remove incompatible old state.
  */
 protected void checkVersion() throws IOException {
  Version loadedVersion = loadVersion();
  LOG.info("Loaded NM state version info " + loadedVersion);
  if (loadedVersion.equals(getCurrentVersion())) {
   return;
  }
  if (loadedVersion.isCompatibleTo(getCurrentVersion())) {
   LOG.info("Storing NM state version info " + getCurrentVersion());
   storeVersion();
  } else {
   throw new IOException(
    "Incompatible version for NM state: expecting NM state version " 
      + getCurrentVersion() + ", but loading version " + loadedVersion);
  }
 }
}

代码示例来源:origin: org.apache.hadoop/hadoop-yarn-server-resourcemanager

public void checkVersion() throws Exception {
 // TODO this was taken from RMStateStore. Should probably refactor
 Version loadedVersion = getConfStoreVersion();
 LOG.info("Loaded configuration store version info " + loadedVersion);
 if (loadedVersion != null && loadedVersion.equals(getCurrentVersion())) {
  return;
 }
 // if there is no version info, treat it as CURRENT_VERSION_INFO;
 if (loadedVersion == null) {
  loadedVersion = getCurrentVersion();
 }
 if (loadedVersion.isCompatibleTo(getCurrentVersion())) {
  LOG.info("Storing configuration store version info "
    + getCurrentVersion());
  storeVersion();
 } else {
  throw new RMStateVersionIncompatibleException(
    "Expecting configuration store version " + getCurrentVersion()
      + ", but loading version " + loadedVersion);
 }
}

代码示例来源:origin: org.apache.hadoop/hadoop-yarn-server-resourcemanager

/**
 * 1) Versioning scheme: major.minor. For e.g. 1.0, 1.1, 1.2...1.25, 2.0 etc.
 * 2) Any incompatible change of state-store is a major upgrade, and any
 *    compatible change of state-store is a minor upgrade.
 * 3) If theres's no version, treat it as CURRENT_VERSION_INFO.
 * 4) Within a minor upgrade, say 1.1 to 1.2:
 *    overwrite the version info and proceed as normal.
 * 5) Within a major upgrade, say 1.2 to 2.0:
 *    throw exception and indicate user to use a separate upgrade tool to
 *    upgrade RM state.
 */
public void checkVersion() throws Exception {
 Version loadedVersion = loadVersion();
 LOG.info("Loaded RM state version info " + loadedVersion);
 if (loadedVersion != null && loadedVersion.equals(getCurrentVersion())) {
  return;
 }
 // if there is no version info, treat it as CURRENT_VERSION_INFO;
 if (loadedVersion == null) {
  loadedVersion = getCurrentVersion();
 }
 if (loadedVersion.isCompatibleTo(getCurrentVersion())) {
  LOG.info("Storing RM state version info " + getCurrentVersion());
  storeVersion();
 } else {
  throw new RMStateVersionIncompatibleException(
   "Expecting RM state version " + getCurrentVersion()
     + ", but loading version " + loadedVersion);
 }
}

代码示例来源:origin: ch.cern.hadoop/hadoop-yarn-server-resourcemanager

/**
 * 1) Versioning scheme: major.minor. For e.g. 1.0, 1.1, 1.2...1.25, 2.0 etc.
 * 2) Any incompatible change of state-store is a major upgrade, and any
 *    compatible change of state-store is a minor upgrade.
 * 3) If theres's no version, treat it as CURRENT_VERSION_INFO.
 * 4) Within a minor upgrade, say 1.1 to 1.2:
 *    overwrite the version info and proceed as normal.
 * 5) Within a major upgrade, say 1.2 to 2.0:
 *    throw exception and indicate user to use a separate upgrade tool to
 *    upgrade RM state.
 */
public void checkVersion() throws Exception {
 Version loadedVersion = loadVersion();
 LOG.info("Loaded RM state version info " + loadedVersion);
 if (loadedVersion != null && loadedVersion.equals(getCurrentVersion())) {
  return;
 }
 // if there is no version info, treat it as CURRENT_VERSION_INFO;
 if (loadedVersion == null) {
  loadedVersion = getCurrentVersion();
 }
 if (loadedVersion.isCompatibleTo(getCurrentVersion())) {
  LOG.info("Storing RM state version info " + getCurrentVersion());
  storeVersion();
 } else {
  throw new RMStateVersionIncompatibleException(
   "Expecting RM state version " + getCurrentVersion()
     + ", but loading version " + loadedVersion);
 }
}

代码示例来源:origin: com.github.jiayuhan-it/hadoop-yarn-server-resourcemanager

/**
 * 1) Versioning scheme: major.minor. For e.g. 1.0, 1.1, 1.2...1.25, 2.0 etc.
 * 2) Any incompatible change of state-store is a major upgrade, and any
 *    compatible change of state-store is a minor upgrade.
 * 3) If theres's no version, treat it as CURRENT_VERSION_INFO.
 * 4) Within a minor upgrade, say 1.1 to 1.2:
 *    overwrite the version info and proceed as normal.
 * 5) Within a major upgrade, say 1.2 to 2.0:
 *    throw exception and indicate user to use a separate upgrade tool to
 *    upgrade RM state.
 */
public void checkVersion() throws Exception {
 Version loadedVersion = loadVersion();
 LOG.info("Loaded RM state version info " + loadedVersion);
 if (loadedVersion != null && loadedVersion.equals(getCurrentVersion())) {
  return;
 }
 // if there is no version info, treat it as CURRENT_VERSION_INFO;
 if (loadedVersion == null) {
  loadedVersion = getCurrentVersion();
 }
 if (loadedVersion.isCompatibleTo(getCurrentVersion())) {
  LOG.info("Storing RM state version info " + getCurrentVersion());
  storeVersion();
 } else {
  throw new RMStateVersionIncompatibleException(
   "Expecting RM state version " + getCurrentVersion()
     + ", but loading version " + loadedVersion);
 }
}

相关文章