Return-Path:
001/**
+002 * Copyright The Apache Software Foundation
+003 *
+004 * Licensed to the Apache Software Foundation (ASF) under one
+005 * or more contributor license agreements. See the NOTICE file
+006 * distributed with this work for additional information
+007 * regarding copyright ownership. The ASF licenses this file
+008 * to you under the Apache License, Version 2.0 (the
+009 * "License"); you may not use this file except in compliance
+010 * with the License. You may obtain a copy of the License at
+011 *
+012 * http://www.apache.org/licenses/LICENSE-2.0
+013 *
+014 * Unless required by applicable law or agreed to in writing, software
+015 * distributed under the License is distributed on an "AS IS" BASIS,
+016 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+017 * See the License for the specific language governing permissions and
+018 * limitations under the License.
+019 */
+020
+021package org.apache.hadoop.hbase.rsgroup;
+022
+023import com.google.common.collect.Sets;
+024import com.google.common.net.HostAndPort;
+025
+026import java.util.Collection;
+027import java.util.NavigableSet;
+028import java.util.Set;
+029
+030import org.apache.hadoop.hbase.TableName;
+031import org.apache.hadoop.hbase.classification.InterfaceAudience;
+032import org.apache.hadoop.hbase.classification.InterfaceStability;
+033
+034/**
+035 * Stores the group information of region server groups.
+036 */
+037@InterfaceAudience.Public
+038@InterfaceStability.Evolving
+039public class RSGroupInfo {
+040
+041 public static final String DEFAULT_GROUP = "default";
+042 public static final String NAMESPACEDESC_PROP_GROUP = "hbase.rsgroup.name";
+043
+044 private String name;
+045 private Set<HostAndPort> servers;
+046 private NavigableSet<TableName> tables;
+047
+048 public RSGroupInfo(String name) {
+049 this(name, Sets.<HostAndPort>newHashSet(), Sets.<TableName>newTreeSet());
+050 }
+051
+052 RSGroupInfo(String name,
+053 Set<HostAndPort> servers,
+054 NavigableSet<TableName> tables) {
+055 this.name = name;
+056 this.servers = servers;
+057 this.tables = tables;
+058 }
+059
+060 public RSGroupInfo(RSGroupInfo src) {
+061 name = src.getName();
+062 servers = Sets.newHashSet(src.getServers());
+063 tables = Sets.newTreeSet(src.getTables());
+064 }
+065
+066 /**
+067 * Get group name.
+068 *
+069 * @return group name
+070 */
+071 public String getName() {
+072 return name;
+073 }
+074
+075 /**
+076 * Adds the server to the group.
+077 *
+078 * @param hostPort the server
+079 */
+080 public void addServer(HostAndPort hostPort){
+081 servers.add(hostPort);
+082 }
+083
+084 /**
+085 * Adds a group of servers.
+086 *
+087 * @param hostPort the servers
+088 */
+089 public void addAllServers(Collection<HostAndPort> hostPort){
+090 servers.addAll(hostPort);
+091 }
+092
+093 /**
+094 * @param hostPort hostPort of the server
+095 * @return true, if a server with hostPort is found
+096 */
+097 public boolean containsServer(HostAndPort hostPort) {
+098 return servers.contains(hostPort);
+099 }
+100
+101 /**
+102 * Get list of servers.
+103 *
+104 * @return set of servers
+105 */
+106 public Set<HostAndPort> getServers() {
+107 return servers;
+108 }
+109
+110 /**
+111 * Remove a server from this group.
+112 *
+113 * @param hostPort HostPort of the server to remove
+114 */
+115 public boolean removeServer(HostAndPort hostPort) {
+116 return servers.remove(hostPort);
+117 }
+118
+119 /**
+120 * Set of tables that are members of this group
+121 * @return set of tables
+122 */
+123 public NavigableSet<TableName> getTables() {
+124 return tables;
+125 }
+126
+127 public void addTable(TableName table) {
+128 tables.add(table);
+129 }
+130
+131 public void addAllTables(Collection<TableName> arg) {
+132 tables.addAll(arg);
+133 }
+134
+135 public boolean containsTable(TableName table) {
+136 return tables.contains(table);
+137 }
+138
+139 public boolean removeTable(TableName table) {
+140 return tables.remove(table);
+141 }
+142
+143 @Override
+144 public String toString() {
+145 StringBuffer sb = new StringBuffer();
+146 sb.append("Name:");
+147 sb.append(this.name);
+148 sb.append(", ");
+149 sb.append(" Servers:");
+150 sb.append(this.servers);
+151 return sb.toString();
+152
+153 }
+154
+155 @Override
+156 public boolean equals(Object o) {
+157 if (this == o) {
+158 return true;
+159 }
+160 if (o == null || getClass() != o.getClass()) {
+161 return false;
+162 }
+163
+164 RSGroupInfo RSGroupInfo = (RSGroupInfo) o;
+165
+166 if (!name.equals(RSGroupInfo.name)) {
+167 return false;
+168 }
+169 if (!servers.equals(RSGroupInfo.servers)) {
+170 return false;
+171 }
+172 if (!tables.equals(RSGroupInfo.tables)) {
+173 return false;
+174 }
+175
+176 return true;
+177 }
+178
+179 @Override
+180 public int hashCode() {
+181 int result = servers.hashCode();
+182 result = 31 * result + tables.hashCode();
+183 result = 31 * result + name.hashCode();
+184 return result;
+185 }
+186
+187}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/2264aeb1/bulk-loads.html ---------------------------------------------------------------------- diff --git a/bulk-loads.html b/bulk-loads.html index abc4627..2b6fd6d 100644 --- a/bulk-loads.html +++ b/bulk-loads.html @@ -7,7 +7,7 @@
- +