throw new HelixException("State " + state + " has a count, but not in the state list!"); builder.dynamicUpperBound(state, counts.get("count"));
.dynamicUpperBound("SLAVE", "R")
/** * Create a modified version of OnlineOffline where the parallelism is enforced by the upper bound * of ONLINE * @param stateModelName * @param parallelism * @return */ private StateModelDefinition createEnforcedParallelismStateModelDef(String stateModelName, int parallelism) { StateModelDefinition.Builder builder = new StateModelDefinition.Builder(stateModelName).addState("ONLINE", 1).addState("OFFLINE") .addState("DROPPED").addState("ERROR").initialState("OFFLINE") .addTransition("ERROR", "OFFLINE", 1).addTransition("ONLINE", "OFFLINE", 2) .addTransition("OFFLINE", "DROPPED", 3).addTransition("OFFLINE", "ONLINE", 4) .dynamicUpperBound("ONLINE", String.valueOf(PARALLELISM)).upperBound("OFFLINE", -1) .upperBound("DROPPED", -1).upperBound("ERROR", -1); return builder.build(); }
/** * Build Master-slave state model definition * @return */ public static StateModelDefinition build() { StateModelDefinition.Builder builder =new StateModelDefinition.Builder(name); // init state builder.initialState(States.OFFLINE.name()); // add states builder.addState(States.MASTER.name(), 0); builder.addState(States.SLAVE.name(), 1); builder.addState(States.OFFLINE.name(), 2); for (HelixDefinedState state : HelixDefinedState.values()) { builder.addState(state.name()); } // add transitions builder.addTransition(States.MASTER.name(), States.SLAVE.name(), 0); builder.addTransition(States.SLAVE.name(), States.MASTER.name(), 1); builder.addTransition(States.OFFLINE.name(), States.SLAVE.name(), 2); builder.addTransition(States.SLAVE.name(), States.OFFLINE.name(), 3); builder.addTransition(States.OFFLINE.name(), HelixDefinedState.DROPPED.name()); // bounds builder.upperBound(States.MASTER.name(), 1); builder.dynamicUpperBound(States.SLAVE.name(), "R"); return builder.build(); }
builder.dynamicUpperBound("SLAVE", "R");
/** * Build Master-slave state model definition * @return */ public static StateModelDefinition build() { StateModelDefinition.Builder builder =new StateModelDefinition.Builder(name); // init state builder.initialState(States.OFFLINE.name()); // add states builder.addState(States.MASTER.name(), 0); builder.addState(States.SLAVE.name(), 1); builder.addState(States.OFFLINE.name(), 2); for (HelixDefinedState state : HelixDefinedState.values()) { builder.addState(state.name()); } // add transitions builder.addTransition(States.MASTER.name(), States.SLAVE.name(), 0); builder.addTransition(States.SLAVE.name(), States.MASTER.name(), 1); builder.addTransition(States.OFFLINE.name(), States.SLAVE.name(), 2); builder.addTransition(States.SLAVE.name(), States.OFFLINE.name(), 3); builder.addTransition(States.OFFLINE.name(), HelixDefinedState.DROPPED.name()); // bounds builder.upperBound(States.MASTER.name(), 1); builder.dynamicUpperBound(States.SLAVE.name(), "R"); return builder.build(); }
/** * Build Leader-standby state model definition * @return */ public static StateModelDefinition build() { StateModelDefinition.Builder builder =new StateModelDefinition.Builder(name); // init state builder.initialState(States.OFFLINE.name()); // add states builder.addState(States.LEADER.name(), 0); builder.addState(States.STANDBY.name(), 1); builder.addState(States.OFFLINE.name(), 2); for (HelixDefinedState state : HelixDefinedState.values()) { builder.addState(state.name()); } // add transitions builder.addTransition(States.LEADER.name(), States.STANDBY.name(), 0); builder.addTransition(States.STANDBY.name(), States.LEADER.name(), 1); builder.addTransition(States.OFFLINE.name(), States.STANDBY.name(), 2); builder.addTransition(States.STANDBY.name(), States.OFFLINE.name(), 3); builder.addTransition(States.OFFLINE.name(), HelixDefinedState.DROPPED.name()); // bounds builder.upperBound(States.LEADER.name(), 1); builder.dynamicUpperBound(States.STANDBY.name(), "R"); return builder.build(); }
/** * Build Leader-standby state model definition * @return */ public static StateModelDefinition build() { StateModelDefinition.Builder builder =new StateModelDefinition.Builder(name); // init state builder.initialState(States.OFFLINE.name()); // add states builder.addState(States.LEADER.name(), 0); builder.addState(States.STANDBY.name(), 1); builder.addState(States.OFFLINE.name(), 2); for (HelixDefinedState state : HelixDefinedState.values()) { builder.addState(state.name()); } // add transitions builder.addTransition(States.LEADER.name(), States.STANDBY.name(), 0); builder.addTransition(States.STANDBY.name(), States.LEADER.name(), 1); builder.addTransition(States.OFFLINE.name(), States.STANDBY.name(), 2); builder.addTransition(States.STANDBY.name(), States.OFFLINE.name(), 3); builder.addTransition(States.OFFLINE.name(), HelixDefinedState.DROPPED.name()); // bounds builder.upperBound(States.LEADER.name(), 1); builder.dynamicUpperBound(States.STANDBY.name(), "R"); return builder.build(); }
private static StateModelDefinition defineStateModel() { StateModelDefinition.Builder builder = new StateModelDefinition.Builder(STATE_MODEL_NAME); // Add states and their rank to indicate priority. Lower the rank higher the // priority builder.addState(MASTER, 1); builder.addState(SLAVE, 2); builder.addState(OFFLINE); builder.addState(DROPPED); // Set the initial state when the node starts builder.initialState(OFFLINE); // Add transitions between the states. builder.addTransition(OFFLINE, SLAVE); builder.addTransition(SLAVE, OFFLINE); builder.addTransition(SLAVE, MASTER); builder.addTransition(MASTER, SLAVE); builder.addTransition(OFFLINE, DROPPED); // set constraints on states. // static constraint builder.upperBound(MASTER, 1); // dynamic constraint, R means it should be derived based on the replication // factor. builder.dynamicUpperBound(SLAVE, "R"); StateModelDefinition statemodelDefinition = builder.build(); return statemodelDefinition; }
private static StateModelDefinition defineStateModel() { StateModelDefinition.Builder builder = new StateModelDefinition.Builder(STATE_MODEL_NAME); // Add states and their rank to indicate priority. Lower the rank higher the // priority builder.addState(MASTER, 1); builder.addState(SLAVE, 2); builder.addState(OFFLINE); builder.addState(DROPPED); // Set the initial state when the node starts builder.initialState(OFFLINE); // Add transitions between the states. builder.addTransition(OFFLINE, SLAVE); builder.addTransition(SLAVE, OFFLINE); builder.addTransition(SLAVE, MASTER); builder.addTransition(MASTER, SLAVE); builder.addTransition(OFFLINE, DROPPED); // set constraints on states. // static constraint builder.upperBound(MASTER, 1); // dynamic constraint, R means it should be derived based on the replication // factor. builder.dynamicUpperBound(SLAVE, "R"); StateModelDefinition statemodelDefinition = builder.build(); return statemodelDefinition; }
/** * Build StorageSchemata state model definition * @return */ public static StateModelDefinition build() { StateModelDefinition.Builder builder =new StateModelDefinition.Builder(name); // init state builder.initialState(States.OFFLINE.name()); // add states builder.addState(States.MASTER.name(), 0); builder.addState(States.OFFLINE.name(), 1); for (HelixDefinedState state : HelixDefinedState.values()) { builder.addState(state.name()); } // add transitions builder.addTransition(States.MASTER.name(), States.OFFLINE.name(), 0); builder.addTransition(States.OFFLINE.name(), States.MASTER.name(), 1); builder.addTransition(States.OFFLINE.name(), HelixDefinedState.DROPPED.name()); // bounds builder.dynamicUpperBound(States.MASTER.name(), "N"); return builder.build(); }
/** * Build OnlineOffline state model definition * @return */ public static StateModelDefinition build() { StateModelDefinition.Builder builder =new StateModelDefinition.Builder(name); // init state builder.initialState(States.OFFLINE.name()); // add states builder.addState(States.ONLINE.name(), 0); builder.addState(States.OFFLINE.name(), 1); for (HelixDefinedState state : HelixDefinedState.values()) { builder.addState(state.name()); } // add transitions builder.addTransition(States.ONLINE.name(), States.OFFLINE.name(), 0); builder.addTransition(States.OFFLINE.name(), States.ONLINE.name(), 1); builder.addTransition(States.OFFLINE.name(), HelixDefinedState.DROPPED.name()); // bounds builder.dynamicUpperBound(States.ONLINE.name(), "R"); return builder.build(); }
/** * Build SchedulerTaskQueue state model definition * @return */ public static StateModelDefinition build() { StateModelDefinition.Builder builder =new StateModelDefinition.Builder(name); // init state builder.initialState(States.OFFLINE.name()); // add states builder.addState(States.COMPLETED.name(), 0); builder.addState(States.OFFLINE.name(), 1); for (HelixDefinedState state : HelixDefinedState.values()) { builder.addState(state.name()); } // add transitions builder.addTransition(States.COMPLETED.name(), States.OFFLINE.name(), 0); builder.addTransition(States.OFFLINE.name(), States.COMPLETED.name(), 1); builder.addTransition(States.OFFLINE.name(), HelixDefinedState.DROPPED.name()); // bounds builder.dynamicUpperBound(States.COMPLETED.name(), "1"); return builder.build(); }
/** * Build SchedulerTaskQueue state model definition * @return */ public static StateModelDefinition build() { StateModelDefinition.Builder builder =new StateModelDefinition.Builder(name); // init state builder.initialState(States.OFFLINE.name()); // add states builder.addState(States.COMPLETED.name(), 0); builder.addState(States.OFFLINE.name(), 1); for (HelixDefinedState state : HelixDefinedState.values()) { builder.addState(state.name()); } // add transitions builder.addTransition(States.COMPLETED.name(), States.OFFLINE.name(), 0); builder.addTransition(States.OFFLINE.name(), States.COMPLETED.name(), 1); builder.addTransition(States.OFFLINE.name(), HelixDefinedState.DROPPED.name()); // bounds builder.dynamicUpperBound(States.COMPLETED.name(), "1"); return builder.build(); }
/** * Build StorageSchemata state model definition * @return */ public static StateModelDefinition build() { StateModelDefinition.Builder builder =new StateModelDefinition.Builder(name); // init state builder.initialState(States.OFFLINE.name()); // add states builder.addState(States.MASTER.name(), 0); builder.addState(States.OFFLINE.name(), 1); for (HelixDefinedState state : HelixDefinedState.values()) { builder.addState(state.name()); } // add transitions builder.addTransition(States.MASTER.name(), States.OFFLINE.name(), 0); builder.addTransition(States.OFFLINE.name(), States.MASTER.name(), 1); builder.addTransition(States.OFFLINE.name(), HelixDefinedState.DROPPED.name()); // bounds builder.dynamicUpperBound(States.MASTER.name(), "N"); return builder.build(); }
/** * Build OnlineOffline state model definition * @return */ public static StateModelDefinition build() { StateModelDefinition.Builder builder =new StateModelDefinition.Builder(name); // init state builder.initialState(States.OFFLINE.name()); // add states builder.addState(States.ONLINE.name(), 0); builder.addState(States.OFFLINE.name(), 1); for (HelixDefinedState state : HelixDefinedState.values()) { builder.addState(state.name()); } // add transitions builder.addTransition(States.ONLINE.name(), States.OFFLINE.name(), 0); builder.addTransition(States.OFFLINE.name(), States.ONLINE.name(), 1); builder.addTransition(States.OFFLINE.name(), HelixDefinedState.DROPPED.name()); // bounds builder.dynamicUpperBound(States.ONLINE.name(), "R"); return builder.build(); }
/** * Build OnlineOffline state model definition */ public static StateModelDefinition build() { Builder builder = new Builder(name); // init state builder.initialState(States.OFFLINE.name()); // add states builder.addState(States.ONLINE.name(), 20); builder.addState(States.OFFLINE.name(), -1); for (HelixDefinedState state : HelixDefinedState.values()) { builder.addState(state.name(), -1); } // add transitions builder.addTransition(States.ONLINE.name(), States.OFFLINE.name(), 25); builder.addTransition(States.OFFLINE.name(), States.ONLINE.name(), 5); builder.addTransition(States.OFFLINE.name(), HelixDefinedState.DROPPED.name(), 0); // bounds builder.dynamicUpperBound(States.ONLINE.name(), "R"); return builder.build(); }
/** * Create a modified version of OnlineOffline where the transition to ONLINE is given lowest * priority * @param stateModelName * @return */ private StateModelDefinition createReprioritizedStateModelDef(String stateModelName) { StateModelDefinition.Builder builder = new StateModelDefinition.Builder(stateModelName).addState("ONLINE", 1).addState("OFFLINE") .addState("DROPPED").addState("ERROR").initialState("OFFLINE") .addTransition("ERROR", "OFFLINE", 1).addTransition("ONLINE", "OFFLINE", 2) .addTransition("OFFLINE", "DROPPED", 3).addTransition("OFFLINE", "ONLINE", 4) .dynamicUpperBound("ONLINE", "R").upperBound("OFFLINE", -1).upperBound("DROPPED", -1) .upperBound("ERROR", -1); return builder.build(); }
/** * Build OnlineOffline state model definition * @return */ public static StateModelDefinition build() { StateModelDefinition.Builder builder = new StateModelDefinition.Builder(name); // init state builder.initialState(States.OFFLINE.name()); // add states builder.addState(States.ONLINE.name(), 20); builder.addState(States.OFFLINE.name(), -1); for (HelixDefinedState state : HelixDefinedState.values()) { builder.addState(state.name(), -1); } // add transitions builder.addTransition(States.ONLINE.name(), States.OFFLINE.name(), 25); builder.addTransition(States.OFFLINE.name(), States.ONLINE.name(), 5); builder.addTransition(States.OFFLINE.name(), HelixDefinedState.DROPPED.name(), 0); // bounds builder.dynamicUpperBound(States.ONLINE.name(), "R"); return builder.build(); }
public static StateModelDefinition generatePinotStateModelDefinition() { StateModelDefinition.Builder builder = new StateModelDefinition.Builder(PINOT_SEGMENT_ONLINE_OFFLINE_STATE_MODEL); builder.initialState(OFFLINE_STATE); builder.addState(ONLINE_STATE); builder.addState(CONSUMING_STATE); builder.addState(OFFLINE_STATE); builder.addState(DROPPED_STATE); // Set the initial state when the node starts // Add transitions between the states. builder.addTransition(CONSUMING_STATE, ONLINE_STATE); builder.addTransition(OFFLINE_STATE, CONSUMING_STATE); builder.addTransition(OFFLINE_STATE, ONLINE_STATE); builder.addTransition(CONSUMING_STATE, OFFLINE_STATE); builder.addTransition(ONLINE_STATE, OFFLINE_STATE); builder.addTransition(OFFLINE_STATE, DROPPED_STATE); // set constraints on states. // static constraint builder.dynamicUpperBound(ONLINE_STATE, "R"); // dynamic constraint, R means it should be derived based on the replication // factor. builder.dynamicUpperBound(CONSUMING_STATE, "R"); StateModelDefinition statemodelDefinition = builder.build(); return statemodelDefinition; }