001/*
002 * Licensed to the Apache Software Foundation (ASF) under one
003 * or more contributor license agreements.  See the NOTICE file
004 * distributed with this work for additional information
005 * regarding copyright ownership.  The ASF licenses this file
006 * to you under the Apache License, Version 2.0 (the
007 * "License"); you may not use this file except in compliance
008 * with the License.  You may obtain a copy of the License at
009 *
010 *     http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing, software
013 * distributed under the License is distributed on an "AS IS" BASIS,
014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015 * See the License for the specific language governing permissions and
016 * limitations under the License.
017 */
018package org.apache.hadoop.hbase.master.assignment;
019
020import org.apache.yetus.audience.InterfaceAudience;
021
022/**
023 * Server State.
024 */
025@InterfaceAudience.Private
026public enum ServerState {
027  /**
028   * Initial state. Available.
029   */
030  ONLINE,
031
032  /**
033   * Indicate that the server has crashed, i.e., we have already scheduled a SCP for it.
034   */
035  CRASHED,
036
037  /**
038   * Only server which carries meta can have this state. We will split wal for meta and then assign
039   * meta first before splitting other wals.
040   */
041  SPLITTING_META,
042
043  /**
044   * Indicate that the meta splitting is done. We need this state so that the UnassignProcedure for
045   * meta can safely quit. See the comments in UnassignProcedure.remoteCallFailed for more details.
046   */
047  SPLITTING_META_DONE,
048
049  /**
050   * Server expired/crashed. Currently undergoing WAL splitting.
051   */
052  SPLITTING,
053
054  /**
055   * WAL splitting done. This state will be used to tell the UnassignProcedure that it can safely
056   * quit. See the comments in UnassignProcedure.remoteCallFailed for more details.
057   */
058  OFFLINE
059}