You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by we...@apache.org on 2018/03/20 06:17:57 UTC
[08/37] hadoop git commit: HDFS-13215. RBF: Move Router to its own
module.
http://git-wip-us.apache.org/repos/asf/hadoop/blob/62a819d5/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/protocol/impl/pb/UpdateNamenodeRegistrationRequestPBImpl.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/protocol/impl/pb/UpdateNamenodeRegistrationRequestPBImpl.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/protocol/impl/pb/UpdateNamenodeRegistrationRequestPBImpl.java
deleted file mode 100644
index 5091360..0000000
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/protocol/impl/pb/UpdateNamenodeRegistrationRequestPBImpl.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.hdfs.server.federation.store.protocol.impl.pb;
-
-import java.io.IOException;
-
-import org.apache.hadoop.hdfs.federation.protocol.proto.HdfsServerFederationProtos.UpdateNamenodeRegistrationRequestProto;
-import org.apache.hadoop.hdfs.federation.protocol.proto.HdfsServerFederationProtos.UpdateNamenodeRegistrationRequestProtoOrBuilder;
-import org.apache.hadoop.hdfs.server.federation.resolver.FederationNamenodeServiceState;
-import org.apache.hadoop.hdfs.server.federation.store.protocol.UpdateNamenodeRegistrationRequest;
-import org.apache.hadoop.hdfs.server.federation.store.records.impl.pb.PBRecord;
-
-import com.google.protobuf.Message;
-
-/**
- * Protobuf implementation of the state store API object
- * OverrideNamenodeRegistrationRequest.
- */
-public class UpdateNamenodeRegistrationRequestPBImpl
- extends UpdateNamenodeRegistrationRequest implements PBRecord {
-
- private FederationProtocolPBTranslator<
- UpdateNamenodeRegistrationRequestProto,
- UpdateNamenodeRegistrationRequestProto.Builder,
- UpdateNamenodeRegistrationRequestProtoOrBuilder> translator =
- new FederationProtocolPBTranslator<
- UpdateNamenodeRegistrationRequestProto,
- UpdateNamenodeRegistrationRequestProto.Builder,
- UpdateNamenodeRegistrationRequestProtoOrBuilder>(
- UpdateNamenodeRegistrationRequestProto.class);
-
- public UpdateNamenodeRegistrationRequestPBImpl() {
- }
-
- @Override
- public UpdateNamenodeRegistrationRequestProto getProto() {
- return this.translator.build();
- }
-
- @Override
- public void setProto(Message protocol) {
- this.translator.setProto(protocol);
- }
-
- @Override
- public void readInstance(String base64String) throws IOException {
- this.translator.readInstance(base64String);
- }
-
- @Override
- public String getNameserviceId() {
- return this.translator.getProtoOrBuilder().getNameserviceId();
- }
-
- @Override
- public String getNamenodeId() {
- return this.translator.getProtoOrBuilder().getNamenodeId();
- }
-
- @Override
- public FederationNamenodeServiceState getState() {
- return FederationNamenodeServiceState
- .valueOf(this.translator.getProtoOrBuilder().getState());
- }
-
- @Override
- public void setNameserviceId(String nsId) {
- this.translator.getBuilder().setNameserviceId(nsId);
- }
-
- @Override
- public void setNamenodeId(String nnId) {
- this.translator.getBuilder().setNamenodeId(nnId);
- }
-
- @Override
- public void setState(FederationNamenodeServiceState state) {
- this.translator.getBuilder().setState(state.toString());
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hadoop/blob/62a819d5/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/protocol/impl/pb/UpdateNamenodeRegistrationResponsePBImpl.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/protocol/impl/pb/UpdateNamenodeRegistrationResponsePBImpl.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/protocol/impl/pb/UpdateNamenodeRegistrationResponsePBImpl.java
deleted file mode 100644
index 4558f06..0000000
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/protocol/impl/pb/UpdateNamenodeRegistrationResponsePBImpl.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.hdfs.server.federation.store.protocol.impl.pb;
-
-import java.io.IOException;
-
-import org.apache.hadoop.hdfs.federation.protocol.proto.HdfsServerFederationProtos.UpdateNamenodeRegistrationResponseProto;
-import org.apache.hadoop.hdfs.federation.protocol.proto.HdfsServerFederationProtos.UpdateNamenodeRegistrationResponseProtoOrBuilder;
-import org.apache.hadoop.hdfs.server.federation.store.protocol.UpdateNamenodeRegistrationResponse;
-import org.apache.hadoop.hdfs.server.federation.store.records.impl.pb.PBRecord;
-
-import com.google.protobuf.Message;
-
-/**
- * Protobuf implementation of the state store API object
- * OverrideNamenodeRegistrationResponse.
- */
-public class UpdateNamenodeRegistrationResponsePBImpl
- extends UpdateNamenodeRegistrationResponse implements PBRecord {
-
- private FederationProtocolPBTranslator<
- UpdateNamenodeRegistrationResponseProto,
- UpdateNamenodeRegistrationResponseProto.Builder,
- UpdateNamenodeRegistrationResponseProtoOrBuilder> translator =
- new FederationProtocolPBTranslator<
- UpdateNamenodeRegistrationResponseProto,
- UpdateNamenodeRegistrationResponseProto.Builder,
- UpdateNamenodeRegistrationResponseProtoOrBuilder>(
- UpdateNamenodeRegistrationResponseProto.class);
-
- public UpdateNamenodeRegistrationResponsePBImpl() {
- }
-
- @Override
- public UpdateNamenodeRegistrationResponseProto getProto() {
- return this.translator.build();
- }
-
- @Override
- public void setProto(Message proto) {
- this.translator.setProto(proto);
- }
-
- @Override
- public void readInstance(String base64String) throws IOException {
- this.translator.readInstance(base64String);
- }
-
- @Override
- public boolean getResult() {
- return this.translator.getProtoOrBuilder().getStatus();
- }
-
- @Override
- public void setResult(boolean result) {
- this.translator.getBuilder().setStatus(result);
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hadoop/blob/62a819d5/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/protocol/impl/pb/package-info.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/protocol/impl/pb/package-info.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/protocol/impl/pb/package-info.java
deleted file mode 100644
index 43c94be..0000000
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/protocol/impl/pb/package-info.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Protobuf implementations of FederationProtocolBase request/response objects
- * used by state store APIs. Each state store API is defined in the
- * org.apache.hadoop.hdfs.server.federation.store.protocol package.
- */
-@InterfaceAudience.Private
-@InterfaceStability.Evolving
-package org.apache.hadoop.hdfs.server.federation.store.protocol.impl.pb;
-
-import org.apache.hadoop.classification.InterfaceAudience;
-import org.apache.hadoop.classification.InterfaceStability;
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hadoop/blob/62a819d5/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/protocol/package-info.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/protocol/package-info.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/protocol/package-info.java
deleted file mode 100644
index 0249d2c..0000000
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/protocol/package-info.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Contains the abstract definitions of the API request and response objects for
- * the various state store APIs. The state store supports multiple interface
- * APIs and multiple data records. Each protocol object requires a serialization
- * implementation, the default is protobuf.
- */
-@InterfaceAudience.Private
-@InterfaceStability.Evolving
-
-package org.apache.hadoop.hdfs.server.federation.store.protocol;
-
-import org.apache.hadoop.classification.InterfaceAudience;
-import org.apache.hadoop.classification.InterfaceStability;
http://git-wip-us.apache.org/repos/asf/hadoop/blob/62a819d5/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/records/BaseRecord.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/records/BaseRecord.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/records/BaseRecord.java
deleted file mode 100644
index d5e60ce..0000000
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/records/BaseRecord.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.hdfs.server.federation.store.records;
-
-import java.util.Map;
-
-import org.apache.hadoop.util.Time;
-
-/**
- * Abstract base of a data record in the StateStore. All StateStore records are
- * derived from this class. Data records are persisted in the data store and
- * are identified by their primary key. Each data record contains:
- * <ul>
- * <li>A primary key consisting of a combination of record data fields.
- * <li>A modification date.
- * <li>A creation date.
- * </ul>
- */
-public abstract class BaseRecord implements Comparable<BaseRecord> {
- public static final String ERROR_MSG_CREATION_TIME_NEGATIVE =
- "The creation time for the record cannot be negative.";
- public static final String ERROR_MSG_MODIFICATION_TIME_NEGATIVE =
- "The modification time for the record cannot be negative.";
-
- /**
- * Set the modification time for the record.
- *
- * @param time Modification time of the record.
- */
- public abstract void setDateModified(long time);
-
- /**
- * Get the modification time for the record.
- *
- * @return Modification time of the record.
- */
- public abstract long getDateModified();
-
- /**
- * Set the creation time for the record.
- *
- * @param time Creation time of the record.
- */
- public abstract void setDateCreated(long time);
-
- /**
- * Get the creation time for the record.
- *
- * @return Creation time of the record
- */
- public abstract long getDateCreated();
-
- /**
- * Get the expiration time for the record.
- *
- * @return Expiration time for the record.
- */
- public abstract long getExpirationMs();
-
- /**
- * Map of primary key names->values for the record. The primary key can be a
- * combination of 1-n different State Store serialized values.
- *
- * @return Map of key/value pairs that constitute this object's primary key.
- */
- public abstract Map<String, String> getPrimaryKeys();
-
- /**
- * Initialize the object.
- */
- public void init() {
- // Call this after the object has been constructed
- initDefaultTimes();
- }
-
- /**
- * Initialize default times. The driver may update these timestamps on insert
- * and/or update. This should only be called when initializing an object that
- * is not backed by a data store.
- */
- private void initDefaultTimes() {
- long now = Time.now();
- this.setDateCreated(now);
- this.setDateModified(now);
- }
-
- /**
- * Join the primary keys into one single primary key.
- *
- * @return A string that is guaranteed to be unique amongst all records of
- * this type.
- */
- public String getPrimaryKey() {
- return generateMashupKey(getPrimaryKeys());
- }
-
- /**
- * Generates a cache key from a map of values.
- *
- * @param keys Map of values.
- * @return String mashup of key values.
- */
- protected static String generateMashupKey(final Map<String, String> keys) {
- StringBuilder builder = new StringBuilder();
- for (Object value : keys.values()) {
- if (builder.length() > 0) {
- builder.append("-");
- }
- builder.append(value);
- }
- return builder.toString();
- }
-
- /**
- * Check if this record matches a partial record.
- *
- * @param other Partial record.
- * @return If this record matches.
- */
- public boolean like(BaseRecord other) {
- if (other == null) {
- return false;
- }
- Map<String, String> thisKeys = this.getPrimaryKeys();
- Map<String, String> otherKeys = other.getPrimaryKeys();
- if (thisKeys == null) {
- return otherKeys == null;
- }
- return thisKeys.equals(otherKeys);
- }
-
- /**
- * Override equals check to use primary key(s) for comparison.
- */
- @Override
- public boolean equals(Object obj) {
- if (!(obj instanceof BaseRecord)) {
- return false;
- }
-
- BaseRecord baseObject = (BaseRecord) obj;
- Map<String, String> keyset1 = this.getPrimaryKeys();
- Map<String, String> keyset2 = baseObject.getPrimaryKeys();
- return keyset1.equals(keyset2);
- }
-
- /**
- * Override hash code to use primary key(s) for comparison.
- */
- @Override
- public int hashCode() {
- Map<String, String> keyset = this.getPrimaryKeys();
- return keyset.hashCode();
- }
-
- @Override
- public int compareTo(BaseRecord record) {
- if (record == null) {
- return -1;
- }
- // Descending date order
- return (int) (record.getDateModified() - this.getDateModified());
- }
-
- /**
- * Called when the modification time and current time is available, checks for
- * expirations.
- *
- * @param currentTime The current timestamp in ms from the data store, to be
- * compared against the modification and creation dates of the
- * object.
- * @return boolean True if the record has been updated and should be
- * committed to the data store. Override for customized behavior.
- */
- public boolean checkExpired(long currentTime) {
- long expiration = getExpirationMs();
- if (getDateModified() > 0 && expiration > 0) {
- return (getDateModified() + expiration) < currentTime;
- }
- return false;
- }
-
- /**
- * Validates the record. Called when the record is created, populated from the
- * state store, and before committing to the state store. If validate failed,
- * there throws an exception.
- */
- public void validate() {
- if (getDateCreated() <= 0) {
- throw new IllegalArgumentException(ERROR_MSG_CREATION_TIME_NEGATIVE);
- } else if (getDateModified() <= 0) {
- throw new IllegalArgumentException(ERROR_MSG_MODIFICATION_TIME_NEGATIVE);
- }
- }
-
- @Override
- public String toString() {
- return getPrimaryKey();
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hadoop/blob/62a819d5/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/records/MembershipState.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/records/MembershipState.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/records/MembershipState.java
deleted file mode 100644
index e33dedf..0000000
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/records/MembershipState.java
+++ /dev/null
@@ -1,336 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.hdfs.server.federation.store.records;
-
-import static org.apache.hadoop.hdfs.server.federation.resolver.FederationNamenodeServiceState.ACTIVE;
-import static org.apache.hadoop.hdfs.server.federation.resolver.FederationNamenodeServiceState.EXPIRED;
-import static org.apache.hadoop.hdfs.server.federation.resolver.FederationNamenodeServiceState.UNAVAILABLE;
-
-import java.io.IOException;
-import java.util.Comparator;
-import java.util.SortedMap;
-import java.util.TreeMap;
-
-import org.apache.hadoop.hdfs.server.federation.resolver.FederationNamenodeContext;
-import org.apache.hadoop.hdfs.server.federation.resolver.FederationNamenodeServiceState;
-import org.apache.hadoop.hdfs.server.federation.store.driver.StateStoreSerializer;
-
-/**
- * Data schema for storing NN registration information in the
- * {@link org.apache.hadoop.hdfs.server.federation.store.StateStoreService
- * FederationStateStoreService}.
- */
-public abstract class MembershipState extends BaseRecord
- implements FederationNamenodeContext {
- public static final String ERROR_MSG_NO_NS_SPECIFIED =
- "Invalid registration, no nameservice specified ";
- public static final String ERROR_MSG_NO_WEB_ADDR_SPECIFIED =
- "Invalid registration, no web address specified ";
- public static final String ERROR_MSG_NO_RPC_ADDR_SPECIFIED =
- "Invalid registration, no rpc address specified ";
- public static final String ERROR_MSG_NO_BP_SPECIFIED =
- "Invalid registration, no block pool specified ";
-
- /** Expiration time in ms for this entry. */
- private static long expirationMs;
-
-
- /** Comparator based on the name.*/
- public static final Comparator<MembershipState> NAME_COMPARATOR =
- new Comparator<MembershipState>() {
- public int compare(MembershipState m1, MembershipState m2) {
- return m1.compareNameTo(m2);
- }
- };
-
-
- /**
- * Constructors.
- */
- public MembershipState() {
- super();
- }
-
- /**
- * Create a new membership instance.
- * @return Membership instance.
- * @throws IOException
- */
- public static MembershipState newInstance() {
- MembershipState record =
- StateStoreSerializer.newRecord(MembershipState.class);
- record.init();
- return record;
- }
-
- /**
- * Create a new membership instance.
- *
- * @param router Identifier of the router.
- * @param nameservice Identifier of the nameservice.
- * @param namenode Identifier of the namenode.
- * @param clusterId Identifier of the cluster.
- * @param blockPoolId Identifier of the blockpool.
- * @param rpcAddress RPC address.
- * @param serviceAddress Service RPC address.
- * @param lifelineAddress Lifeline RPC address.
- * @param webAddress HTTP address.
- * @param state State of the federation.
- * @param safemode If the safe mode is enabled.
- * @return Membership instance.
- * @throws IOException If we cannot create the instance.
- */
- public static MembershipState newInstance(String router, String nameservice,
- String namenode, String clusterId, String blockPoolId, String rpcAddress,
- String serviceAddress, String lifelineAddress, String webAddress,
- FederationNamenodeServiceState state, boolean safemode) {
-
- MembershipState record = MembershipState.newInstance();
- record.setRouterId(router);
- record.setNameserviceId(nameservice);
- record.setNamenodeId(namenode);
- record.setRpcAddress(rpcAddress);
- record.setServiceAddress(serviceAddress);
- record.setLifelineAddress(lifelineAddress);
- record.setWebAddress(webAddress);
- record.setIsSafeMode(safemode);
- record.setState(state);
- record.setClusterId(clusterId);
- record.setBlockPoolId(blockPoolId);
- record.validate();
- return record;
- }
-
- public abstract void setRouterId(String routerId);
-
- public abstract String getRouterId();
-
- public abstract void setNameserviceId(String nameserviceId);
-
- public abstract void setNamenodeId(String namenodeId);
-
- public abstract void setWebAddress(String webAddress);
-
- public abstract void setRpcAddress(String rpcAddress);
-
- public abstract void setServiceAddress(String serviceAddress);
-
- public abstract void setLifelineAddress(String lifelineAddress);
-
- public abstract void setIsSafeMode(boolean isSafeMode);
-
- public abstract void setClusterId(String clusterId);
-
- public abstract void setBlockPoolId(String blockPoolId);
-
- public abstract void setState(FederationNamenodeServiceState state);
-
- public abstract String getNameserviceId();
-
- public abstract String getNamenodeId();
-
- public abstract String getClusterId();
-
- public abstract String getBlockPoolId();
-
- public abstract String getRpcAddress();
-
- public abstract String getServiceAddress();
-
- public abstract String getLifelineAddress();
-
- public abstract String getWebAddress();
-
- public abstract boolean getIsSafeMode();
-
- public abstract FederationNamenodeServiceState getState();
-
- public abstract void setStats(MembershipStats stats);
-
- public abstract MembershipStats getStats();
-
- public abstract void setLastContact(long contact);
-
- public abstract long getLastContact();
-
- @Override
- public boolean like(BaseRecord o) {
- if (o instanceof MembershipState) {
- MembershipState other = (MembershipState)o;
- if (getRouterId() != null &&
- !getRouterId().equals(other.getRouterId())) {
- return false;
- }
- if (getNameserviceId() != null &&
- !getNameserviceId().equals(other.getNameserviceId())) {
- return false;
- }
- if (getNamenodeId() != null &&
- !getNamenodeId().equals(other.getNamenodeId())) {
- return false;
- }
- if (getRpcAddress() != null &&
- !getRpcAddress().equals(other.getRpcAddress())) {
- return false;
- }
- if (getClusterId() != null &&
- !getClusterId().equals(other.getClusterId())) {
- return false;
- }
- if (getBlockPoolId() != null &&
- !getBlockPoolId().equals(other.getBlockPoolId())) {
- return false;
- }
- if (getState() != null &&
- !getState().equals(other.getState())) {
- return false;
- }
- return true;
- }
- return false;
- }
-
- @Override
- public String toString() {
- return getRouterId() + "->" + getNameserviceId() + ":" + getNamenodeId()
- + ":" + getRpcAddress() + "-" + getState();
- }
-
- @Override
- public SortedMap<String, String> getPrimaryKeys() {
- SortedMap<String, String> map = new TreeMap<String, String>();
- map.put("routerId", getRouterId());
- map.put("nameserviceId", getNameserviceId());
- map.put("namenodeId", getNamenodeId());
- return map;
- }
-
- /**
- * Check if the namenode is available.
- *
- * @return If the namenode is available.
- */
- public boolean isAvailable() {
- return getState() == ACTIVE;
- }
-
- /**
- * Validates the entry. Throws an IllegalArgementException if the data record
- * is missing required information.
- */
- @Override
- public void validate() {
- super.validate();
- if (getNameserviceId() == null || getNameserviceId().length() == 0) {
- throw new IllegalArgumentException(
- ERROR_MSG_NO_NS_SPECIFIED + this);
- }
- if (getWebAddress() == null || getWebAddress().length() == 0) {
- throw new IllegalArgumentException(
- ERROR_MSG_NO_WEB_ADDR_SPECIFIED + this);
- }
- if (getRpcAddress() == null || getRpcAddress().length() == 0) {
- throw new IllegalArgumentException(
- ERROR_MSG_NO_RPC_ADDR_SPECIFIED + this);
- }
- if (!isBadState() &&
- (getBlockPoolId().isEmpty() || getBlockPoolId().length() == 0)) {
- throw new IllegalArgumentException(
- ERROR_MSG_NO_BP_SPECIFIED + this);
- }
- }
-
-
- /**
- * Overrides the cached getBlockPoolId() with an update. The state will be
- * reset when the cache is flushed
- *
- * @param newState Service state of the namenode.
- */
- public void overrideState(FederationNamenodeServiceState newState) {
- this.setState(newState);
- }
-
- /**
- * Sort by nameservice, namenode, and router.
- *
- * @param other Another membership to compare to.
- * @return If this object goes before the parameter.
- */
- public int compareNameTo(MembershipState other) {
- int ret = this.getNameserviceId().compareTo(other.getNameserviceId());
- if (ret == 0) {
- ret = this.getNamenodeId().compareTo(other.getNamenodeId());
- }
- if (ret == 0) {
- ret = this.getRouterId().compareTo(other.getRouterId());
- }
- return ret;
- }
-
- /**
- * Get the identifier of this namenode registration.
- * @return Identifier of the namenode.
- */
- public String getNamenodeKey() {
- return getNamenodeKey(this.getNameserviceId(), this.getNamenodeId());
- }
-
- /**
- * Generate the identifier for a Namenode in the HDFS federation.
- *
- * @param nsId Nameservice of the Namenode.
- * @param nnId Namenode within the Nameservice (HA).
- * @return Namenode identifier within the federation.
- */
- public static String getNamenodeKey(String nsId, String nnId) {
- return nsId + "-" + nnId;
- }
-
- /**
- * Check if the membership is in a bad state (expired or unavailable).
- * @return If the membership is in a bad state (expired or unavailable).
- */
- private boolean isBadState() {
- return this.getState() == EXPIRED || this.getState() == UNAVAILABLE;
- }
-
- @Override
- public boolean checkExpired(long currentTime) {
- if (super.checkExpired(currentTime)) {
- this.setState(EXPIRED);
- // Commit it
- return true;
- }
- return false;
- }
-
- @Override
- public long getExpirationMs() {
- return MembershipState.expirationMs;
- }
-
- /**
- * Set the expiration time for this class.
- *
- * @param time Expiration time in milliseconds.
- */
- public static void setExpirationMs(long time) {
- MembershipState.expirationMs = time;
- }
-}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/62a819d5/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/records/MembershipStats.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/records/MembershipStats.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/records/MembershipStats.java
deleted file mode 100644
index 0bd19d9..0000000
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/records/MembershipStats.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.hdfs.server.federation.store.records;
-
-import java.io.IOException;
-import java.util.SortedMap;
-import java.util.TreeMap;
-
-import org.apache.hadoop.hdfs.server.federation.store.driver.StateStoreSerializer;
-
-/**
- * Data schema for storing NN stats in the
- * {@link org.apache.hadoop.hdfs.server.federation.store.StateStoreService
- * StateStoreService}.
- */
-public abstract class MembershipStats extends BaseRecord {
-
- public static MembershipStats newInstance() throws IOException {
- MembershipStats record =
- StateStoreSerializer.newRecord(MembershipStats.class);
- record.init();
- return record;
- }
-
- public abstract void setTotalSpace(long space);
-
- public abstract long getTotalSpace();
-
- public abstract void setAvailableSpace(long space);
-
- public abstract long getAvailableSpace();
-
- public abstract void setNumOfFiles(long files);
-
- public abstract long getNumOfFiles();
-
- public abstract void setNumOfBlocks(long blocks);
-
- public abstract long getNumOfBlocks();
-
- public abstract void setNumOfBlocksMissing(long blocks);
-
- public abstract long getNumOfBlocksMissing();
-
- public abstract void setNumOfBlocksPendingReplication(long blocks);
-
- public abstract long getNumOfBlocksPendingReplication();
-
- public abstract void setNumOfBlocksUnderReplicated(long blocks);
-
- public abstract long getNumOfBlocksUnderReplicated();
-
- public abstract void setNumOfBlocksPendingDeletion(long blocks);
-
- public abstract long getNumOfBlocksPendingDeletion();
-
- public abstract void setNumOfActiveDatanodes(int nodes);
-
- public abstract int getNumOfActiveDatanodes();
-
- public abstract void setNumOfDeadDatanodes(int nodes);
-
- public abstract int getNumOfDeadDatanodes();
-
- public abstract void setNumOfDecommissioningDatanodes(int nodes);
-
- public abstract int getNumOfDecommissioningDatanodes();
-
- public abstract void setNumOfDecomActiveDatanodes(int nodes);
-
- public abstract int getNumOfDecomActiveDatanodes();
-
- public abstract void setNumOfDecomDeadDatanodes(int nodes);
-
- public abstract int getNumOfDecomDeadDatanodes();
-
- @Override
- public SortedMap<String, String> getPrimaryKeys() {
- // This record is not stored directly, no key needed
- SortedMap<String, String> map = new TreeMap<String, String>();
- return map;
- }
-
- @Override
- public long getExpirationMs() {
- // This record is not stored directly, no expiration needed
- return -1;
- }
-
- @Override
- public void setDateModified(long time) {
- // We don't store this record directly
- }
-
- @Override
- public long getDateModified() {
- // We don't store this record directly
- return 0;
- }
-
- @Override
- public void setDateCreated(long time) {
- // We don't store this record directly
- }
-
- @Override
- public long getDateCreated() {
- // We don't store this record directly
- return 0;
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hadoop/blob/62a819d5/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/records/MountTable.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/records/MountTable.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/records/MountTable.java
deleted file mode 100644
index 4eff2c9..0000000
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/records/MountTable.java
+++ /dev/null
@@ -1,402 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.hdfs.server.federation.store.records;
-
-import java.io.IOException;
-import java.util.Comparator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.SortedMap;
-import java.util.TreeMap;
-
-import org.apache.commons.lang.builder.HashCodeBuilder;
-import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.fs.permission.FsPermission;
-import org.apache.hadoop.hdfs.server.federation.resolver.RemoteLocation;
-import org.apache.hadoop.hdfs.server.federation.resolver.order.DestinationOrder;
-import org.apache.hadoop.hdfs.server.federation.router.RouterPermissionChecker;
-import org.apache.hadoop.hdfs.server.federation.store.driver.StateStoreSerializer;
-import org.apache.hadoop.hdfs.server.namenode.NameNode;
-import org.apache.hadoop.security.UserGroupInformation;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Data schema for
- * {@link org.apache.hadoop.hdfs.server.federation.store.
- * MountTableStore FederationMountTableStore} data stored in the
- * {@link org.apache.hadoop.hdfs.server.federation.store.
- * StateStoreService FederationStateStoreService}. Supports string
- * serialization.
- */
-public abstract class MountTable extends BaseRecord {
-
- private static final Logger LOG = LoggerFactory.getLogger(MountTable.class);
- public static final String ERROR_MSG_NO_SOURCE_PATH =
- "Invalid entry, no source path specified ";
- public static final String ERROR_MSG_MUST_START_WITH_BACK_SLASH =
- "Invalid entry, all mount points must start with / ";
- public static final String ERROR_MSG_NO_DEST_PATH_SPECIFIED =
- "Invalid entry, no destination paths specified ";
- public static final String ERROR_MSG_INVAILD_DEST_NS =
- "Invalid entry, invalid destination nameservice ";
- public static final String ERROR_MSG_INVAILD_DEST_PATH =
- "Invalid entry, invalid destination path ";
- public static final String ERROR_MSG_ALL_DEST_MUST_START_WITH_BACK_SLASH =
- "Invalid entry, all destination must start with / ";
-
- /** Comparator for paths which considers the /. */
- public static final Comparator<String> PATH_COMPARATOR =
- new Comparator<String>() {
- @Override
- public int compare(String o1, String o2) {
- String s1 = o1.replace('/', ' ');
- String s2 = o2.replace('/', ' ');
- return s1.compareTo(s2);
- }
- };
-
- /** Comparator based on the mount table source. */
- public static final Comparator<MountTable> SOURCE_COMPARATOR =
- new Comparator<MountTable>() {
- public int compare(MountTable m1, MountTable m2) {
- String src1 = m1.getSourcePath();
- String src2 = m2.getSourcePath();
- return PATH_COMPARATOR.compare(src1, src2);
- }
- };
-
-
- /**
- * Default constructor for a mount table entry.
- */
- public MountTable() {
- super();
- }
-
- public static MountTable newInstance() {
- MountTable record = StateStoreSerializer.newRecord(MountTable.class);
- record.init();
- return record;
- }
-
- /**
- * Constructor for a mount table entry with a single destinations.
- *
- * @param src Source path in the mount entry.
- * @param destinations Nameservice destination of the mount point.
- * @param dateCreated Created date.
- * @param dateModified Modified date.
- * @throws IOException
- */
- public static MountTable newInstance(final String src,
- final Map<String, String> destinations,
- long dateCreated, long dateModified) throws IOException {
-
- MountTable record = newInstance(src, destinations);
- record.setDateCreated(dateCreated);
- record.setDateModified(dateModified);
- return record;
- }
-
- /**
- * Constructor for a mount table entry with multiple destinations.
- *
- * @param src Source path in the mount entry.
- * @param destinations Nameservice destinations of the mount point.
- * @throws IOException
- */
- public static MountTable newInstance(final String src,
- final Map<String, String> destinations) throws IOException {
- MountTable record = newInstance();
-
- // Normalize the mount path
- record.setSourcePath(normalizeFileSystemPath(src));
-
- // Build a list of remote locations
- final List<RemoteLocation> locations = new LinkedList<>();
- for (Entry<String, String> entry : destinations.entrySet()) {
- String nsId = entry.getKey();
- String path = normalizeFileSystemPath(entry.getValue());
- RemoteLocation location = new RemoteLocation(nsId, path);
- locations.add(location);
- }
-
- // Set the serialized dest string
- record.setDestinations(locations);
-
- // Set permission fields
- UserGroupInformation ugi = NameNode.getRemoteUser();
- record.setOwnerName(ugi.getShortUserName());
- String group = ugi.getGroups().isEmpty() ? ugi.getShortUserName()
- : ugi.getPrimaryGroupName();
- record.setGroupName(group);
- record.setMode(new FsPermission(
- RouterPermissionChecker.MOUNT_TABLE_PERMISSION_DEFAULT));
-
- // Validate
- record.validate();
- return record;
- }
-
- /**
- * Get source path in the federated namespace.
- *
- * @return Source path in the federated namespace.
- */
- public abstract String getSourcePath();
-
- /**
- * Set source path in the federated namespace.
- *
- * @param path Source path in the federated namespace.
- */
- public abstract void setSourcePath(String path);
-
- /**
- * Get a list of destinations (namespace + path) present for this entry.
- *
- * @return List of RemoteLocation destinations. Null if no destinations.
- */
- public abstract List<RemoteLocation> getDestinations();
-
- /**
- * Set the destination paths.
- *
- * @param paths Destination paths.
- */
- public abstract void setDestinations(List<RemoteLocation> dests);
-
- /**
- * Add a new destination to this mount table entry.
- */
- public abstract boolean addDestination(String nsId, String path);
-
- /**
- * Check if the entry is read only.
- *
- * @return If the entry is read only.
- */
- public abstract boolean isReadOnly();
-
- /**
- * Set an entry to be read only.
- *
- * @param ro If the entry is read only.
- */
- public abstract void setReadOnly(boolean ro);
-
- /**
- * Get the order of the destinations for this mount table entry.
- *
- * @return Order of the destinations.
- */
- public abstract DestinationOrder getDestOrder();
-
- /**
- * Set the order of the destinations for this mount table entry.
- *
- * @param order Order of the destinations.
- */
- public abstract void setDestOrder(DestinationOrder order);
-
- /**
- * Get owner name of this mount table entry.
- *
- * @return Owner name
- */
- public abstract String getOwnerName();
-
- /**
- * Set owner name of this mount table entry.
- *
- * @param owner Owner name for mount table entry
- */
- public abstract void setOwnerName(String owner);
-
- /**
- * Get group name of this mount table entry.
- *
- * @return Group name
- */
- public abstract String getGroupName();
-
- /**
- * Set group name of this mount table entry.
- *
- * @param group Group name for mount table entry
- */
- public abstract void setGroupName(String group);
-
- /**
- * Get permission of this mount table entry.
- *
- * @return FsPermission permission mode
- */
- public abstract FsPermission getMode();
-
- /**
- * Set permission for this mount table entry.
- *
- * @param mode Permission for mount table entry
- */
- public abstract void setMode(FsPermission mode);
-
- /**
- * Get the default location.
- * @return The default location.
- */
- public RemoteLocation getDefaultLocation() {
- List<RemoteLocation> dests = this.getDestinations();
- if (dests == null || dests.isEmpty()) {
- return null;
- }
- return dests.get(0);
- }
-
- @Override
- public boolean like(final BaseRecord o) {
- if (o instanceof MountTable) {
- MountTable other = (MountTable)o;
- if (getSourcePath() != null &&
- !getSourcePath().equals(other.getSourcePath())) {
- return false;
- }
- if (getDestinations() != null &&
- !getDestinations().equals(other.getDestinations())) {
- return false;
- }
- return true;
- }
- return false;
- }
-
- @Override
- public String toString() {
- StringBuilder sb = new StringBuilder();
- sb.append(this.getSourcePath());
- sb.append("->");
- List<RemoteLocation> destinations = this.getDestinations();
- sb.append(destinations);
- if (destinations != null && destinations.size() > 1) {
- sb.append("[" + this.getDestOrder() + "]");
- }
- if (this.isReadOnly()) {
- sb.append("[RO]");
- }
-
- if (this.getOwnerName() != null) {
- sb.append("[owner:").append(this.getOwnerName()).append("]");
- }
-
- if (this.getGroupName() != null) {
- sb.append("[group:").append(this.getGroupName()).append("]");
- }
-
- if (this.getMode() != null) {
- sb.append("[mode:").append(this.getMode()).append("]");
- }
-
- return sb.toString();
- }
-
- @Override
- public SortedMap<String, String> getPrimaryKeys() {
- SortedMap<String, String> map = new TreeMap<>();
- map.put("sourcePath", this.getSourcePath());
- return map;
- }
-
- @Override
- public void validate() {
- super.validate();
- if (this.getSourcePath() == null || this.getSourcePath().length() == 0) {
- throw new IllegalArgumentException(
- ERROR_MSG_NO_SOURCE_PATH + this);
- }
- if (!this.getSourcePath().startsWith("/")) {
- throw new IllegalArgumentException(
- ERROR_MSG_MUST_START_WITH_BACK_SLASH + this);
- }
- if (this.getDestinations() == null || this.getDestinations().size() == 0) {
- throw new IllegalArgumentException(
- ERROR_MSG_NO_DEST_PATH_SPECIFIED + this);
- }
- for (RemoteLocation loc : getDestinations()) {
- String nsId = loc.getNameserviceId();
- if (nsId == null || nsId.length() == 0) {
- throw new IllegalArgumentException(
- ERROR_MSG_INVAILD_DEST_NS + this);
- }
- if (loc.getDest() == null || loc.getDest().length() == 0) {
- throw new IllegalArgumentException(
- ERROR_MSG_INVAILD_DEST_PATH + this);
- }
- if (!loc.getDest().startsWith("/")) {
- throw new IllegalArgumentException(
- ERROR_MSG_ALL_DEST_MUST_START_WITH_BACK_SLASH + this);
- }
- }
- }
-
- @Override
- public long getExpirationMs() {
- return 0;
- }
-
- @Override
- public int hashCode() {
- return new HashCodeBuilder(17, 31)
- .append(this.getSourcePath())
- .append(this.getDestinations())
- .append(this.isReadOnly())
- .append(this.getDestOrder())
- .toHashCode();
- }
-
- @Override
- public boolean equals(Object obj) {
- if (obj instanceof MountTable) {
- MountTable other = (MountTable)obj;
- if (!this.getSourcePath().equals(other.getSourcePath())) {
- return false;
- } else if (!this.getDestinations().equals(other.getDestinations())) {
- return false;
- } else if (this.isReadOnly() != other.isReadOnly()) {
- return false;
- } else if (!this.getDestOrder().equals(other.getDestOrder())) {
- return false;
- }
- return true;
- }
- return false;
- }
-
- /**
- * Normalize a path for that filesystem.
- *
- * @param path Path to normalize.
- * @return Normalized path.
- */
- private static String normalizeFileSystemPath(final String path) {
- Path normalizedPath = new Path(path);
- return normalizedPath.toString();
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hadoop/blob/62a819d5/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/records/Query.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/records/Query.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/records/Query.java
deleted file mode 100644
index 3c59abf..0000000
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/records/Query.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.hdfs.server.federation.store.records;
-
-/**
- * Check if a record matches a query. The query is usually a partial record.
- *
- * @param <T> Type of the record to query.
- */
-public class Query<T extends BaseRecord> {
-
- /** Partial object to compare against. */
- private final T partial;
-
-
- /**
- * Create a query to search for a partial record.
- *
- * @param partial It defines the attributes to search.
- */
- public Query(final T part) {
- this.partial = part;
- }
-
- /**
- * Get the partial record used to query.
- *
- * @return The partial record used for the query.
- */
- public T getPartial() {
- return this.partial;
- }
-
- /**
- * Check if a record matches the primary keys or the partial record.
- *
- * @param other Record to check.
- * @return If the record matches. Don't match if there is no partial.
- */
- public boolean matches(T other) {
- if (this.partial == null) {
- return false;
- }
- return this.partial.like(other);
- }
-
- @Override
- public String toString() {
- return "Checking: " + this.partial;
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hadoop/blob/62a819d5/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/records/QueryResult.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/records/QueryResult.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/records/QueryResult.java
deleted file mode 100644
index 64c2c71..0000000
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/records/QueryResult.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.hdfs.server.federation.store.records;
-
-import java.util.Collections;
-import java.util.List;
-
-/**
- * Encapsulates a state store query result that includes a set of records and a
- * time stamp for the result.
- */
-public class QueryResult<T extends BaseRecord> {
-
- /** Data result. */
- private final List<T> records;
- /** Time stamp of the data results. */
- private final long timestamp;
-
- public QueryResult(final List<T> recs, final long time) {
- this.records = recs;
- this.timestamp = time;
- }
-
- /**
- * Get the result of the query.
- *
- * @return List of records.
- */
- public List<T> getRecords() {
- return Collections.unmodifiableList(this.records);
- }
-
- /**
- * The timetamp in driver time of this query.
- *
- * @return Timestamp in driver time.
- */
- public long getTimestamp() {
- return this.timestamp;
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hadoop/blob/62a819d5/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/records/RouterState.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/records/RouterState.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/records/RouterState.java
deleted file mode 100644
index c90abcc..0000000
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/records/RouterState.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.hdfs.server.federation.store.records;
-
-import java.io.IOException;
-import java.util.SortedMap;
-import java.util.TreeMap;
-
-import org.apache.hadoop.hdfs.server.federation.router.FederationUtil;
-import org.apache.hadoop.hdfs.server.federation.router.RouterServiceState;
-import org.apache.hadoop.hdfs.server.federation.store.driver.StateStoreSerializer;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Entry to log the state of a
- * {@link org.apache.hadoop.hdfs.server.federation.router.Router Router} in the
- * {@link org.apache.hadoop.hdfs.server.federation.store.StateStoreService
- * FederationStateStoreService}.
- */
-public abstract class RouterState extends BaseRecord {
-
- private static final Logger LOG = LoggerFactory.getLogger(RouterState.class);
-
- /** Expiration time in ms for this entry. */
- private static long expirationMs;
-
- /**
- * Constructors.
- */
- public RouterState() {
- super();
- }
-
- public static RouterState newInstance() {
- RouterState record = StateStoreSerializer.newRecord(RouterState.class);
- record.init();
- return record;
- }
-
- public static RouterState newInstance(String addr, long startTime,
- RouterServiceState status) {
- RouterState record = newInstance();
- record.setDateStarted(startTime);
- record.setAddress(addr);
- record.setStatus(status);
- record.setCompileInfo(FederationUtil.getCompileInfo());
- record.setVersion(FederationUtil.getVersion());
- return record;
- }
-
- public abstract void setAddress(String address);
-
- public abstract void setDateStarted(long dateStarted);
-
- public abstract String getAddress();
-
- public abstract StateStoreVersion getStateStoreVersion() throws IOException;
-
- public abstract void setStateStoreVersion(StateStoreVersion version);
-
- public abstract RouterServiceState getStatus();
-
- public abstract void setStatus(RouterServiceState newStatus);
-
- public abstract String getVersion();
-
- public abstract void setVersion(String version);
-
- public abstract String getCompileInfo();
-
- public abstract void setCompileInfo(String info);
-
- public abstract long getDateStarted();
-
- /**
- * Get the identifier for the Router. It uses the address.
- *
- * @return Identifier for the Router.
- */
- public String getRouterId() {
- return getAddress();
- }
-
- @Override
- public boolean like(BaseRecord o) {
- if (o instanceof RouterState) {
- RouterState other = (RouterState)o;
- if (getAddress() != null &&
- !getAddress().equals(other.getAddress())) {
- return false;
- }
- if (getStatus() != null &&
- !getStatus().equals(other.getStatus())) {
- return false;
- }
- return true;
- }
- return false;
- }
-
- @Override
- public String toString() {
- return getAddress() + " -> " + getStatus() + "," + getVersion();
- }
-
- @Override
- public SortedMap<String, String> getPrimaryKeys() {
- SortedMap<String, String> map = new TreeMap<>();
- map.put("address", getAddress());
- return map;
- }
-
- @Override
- public void validate() {
- super.validate();
- if ((getAddress() == null || getAddress().length() == 0) &&
- getStatus() != RouterServiceState.INITIALIZING) {
- throw new IllegalArgumentException(
- "Invalid router entry, no address specified " + this);
- }
- }
-
- @Override
- public int compareTo(BaseRecord other) {
- if (other == null) {
- return -1;
- } else if (other instanceof RouterState) {
- RouterState router = (RouterState) other;
- return this.getAddress().compareTo(router.getAddress());
- } else {
- return super.compareTo(other);
- }
- }
-
- @Override
- public boolean checkExpired(long currentTime) {
- if (super.checkExpired(currentTime)) {
- setStatus(RouterServiceState.EXPIRED);
- return true;
- }
- return false;
- }
-
- @Override
- public long getExpirationMs() {
- return RouterState.expirationMs;
- }
-
- public static void setExpirationMs(long time) {
- RouterState.expirationMs = time;
- }
-}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/62a819d5/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/records/StateStoreVersion.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/records/StateStoreVersion.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/records/StateStoreVersion.java
deleted file mode 100644
index ce86eb0..0000000
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/records/StateStoreVersion.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.hdfs.server.federation.store.records;
-
-import java.util.SortedMap;
-import java.util.TreeMap;
-
-import org.apache.hadoop.hdfs.server.federation.store.driver.StateStoreSerializer;
-
-/**
- * Entry to track the version of the State Store data stored in the State Store
- * by a Router.
- */
-public abstract class StateStoreVersion extends BaseRecord {
-
- public static StateStoreVersion newInstance() {
- return StateStoreSerializer.newRecord(StateStoreVersion.class);
- }
-
- public static StateStoreVersion newInstance(long membershipVersion,
- long mountTableVersion) {
- StateStoreVersion record = newInstance();
- record.setMembershipVersion(membershipVersion);
- record.setMountTableVersion(mountTableVersion);
- return record;
- }
-
- public abstract long getMembershipVersion();
-
- public abstract void setMembershipVersion(long version);
-
- public abstract long getMountTableVersion();
-
- public abstract void setMountTableVersion(long version);
-
- @Override
- public SortedMap<String, String> getPrimaryKeys() {
- // This record is not stored directly, no key needed
- SortedMap<String, String> map = new TreeMap<String, String>();
- return map;
- }
-
- @Override
- public long getExpirationMs() {
- // This record is not stored directly, no expiration needed
- return -1;
- }
-
- @Override
- public void setDateModified(long time) {
- // We don't store this record directly
- }
-
- @Override
- public long getDateModified() {
- // We don't store this record directly
- return 0;
- }
-
- @Override
- public void setDateCreated(long time) {
- // We don't store this record directly
- }
-
- @Override
- public long getDateCreated() {
- // We don't store this record directly
- return 0;
- }
-
- @Override
- public String toString() {
- return "Membership: " + getMembershipVersion() +
- " Mount Table: " + getMountTableVersion();
- }
-}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/62a819d5/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/records/impl/pb/MembershipStatePBImpl.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/records/impl/pb/MembershipStatePBImpl.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/records/impl/pb/MembershipStatePBImpl.java
deleted file mode 100644
index 614957b..0000000
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/records/impl/pb/MembershipStatePBImpl.java
+++ /dev/null
@@ -1,335 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.hdfs.server.federation.store.records.impl.pb;
-
-import java.io.IOException;
-
-import org.apache.hadoop.hdfs.federation.protocol.proto.HdfsServerFederationProtos.NamenodeMembershipRecordProto;
-import org.apache.hadoop.hdfs.federation.protocol.proto.HdfsServerFederationProtos.NamenodeMembershipRecordProto.Builder;
-import org.apache.hadoop.hdfs.federation.protocol.proto.HdfsServerFederationProtos.NamenodeMembershipRecordProtoOrBuilder;
-import org.apache.hadoop.hdfs.federation.protocol.proto.HdfsServerFederationProtos.NamenodeMembershipStatsRecordProto;
-import org.apache.hadoop.hdfs.server.federation.resolver.FederationNamenodeServiceState;
-import org.apache.hadoop.hdfs.server.federation.store.driver.StateStoreSerializer;
-import org.apache.hadoop.hdfs.server.federation.store.protocol.impl.pb.FederationProtocolPBTranslator;
-import org.apache.hadoop.hdfs.server.federation.store.records.MembershipState;
-import org.apache.hadoop.hdfs.server.federation.store.records.MembershipStats;
-
-import com.google.protobuf.Message;
-
-/**
- * Protobuf implementation of the MembershipState record.
- */
-public class MembershipStatePBImpl extends MembershipState implements PBRecord {
-
- private FederationProtocolPBTranslator<NamenodeMembershipRecordProto, Builder,
- NamenodeMembershipRecordProtoOrBuilder> translator =
- new FederationProtocolPBTranslator<NamenodeMembershipRecordProto,
- Builder, NamenodeMembershipRecordProtoOrBuilder>(
- NamenodeMembershipRecordProto.class);
-
- public MembershipStatePBImpl() {
- }
-
- public MembershipStatePBImpl(NamenodeMembershipRecordProto proto) {
- this.translator.setProto(proto);
- }
-
- @Override
- public NamenodeMembershipRecordProto getProto() {
- return this.translator.build();
- }
-
- @Override
- public void setProto(Message proto) {
- this.translator.setProto(proto);
- }
-
- @Override
- public void readInstance(String base64String) throws IOException {
- this.translator.readInstance(base64String);
- }
-
- @Override
- public void setRouterId(String routerId) {
- Builder builder = this.translator.getBuilder();
- if (routerId == null) {
- builder.clearRouterId();
- } else {
- builder.setRouterId(routerId);
- }
- }
-
- @Override
- public void setNameserviceId(String nameserviceId) {
- Builder builder = this.translator.getBuilder();
- if (nameserviceId == null) {
- builder.clearNameserviceId();
- } else {
- builder.setNameserviceId(nameserviceId);
- }
- }
-
- @Override
- public void setNamenodeId(String namenodeId) {
- Builder builder = this.translator.getBuilder();
- if (namenodeId == null) {
- builder.clearNamenodeId();
- } else {
- builder.setNamenodeId(namenodeId);
- }
- }
-
- @Override
- public void setWebAddress(String webAddress) {
- Builder builder = this.translator.getBuilder();
- if (webAddress == null) {
- builder.clearWebAddress();
- } else {
- builder.setWebAddress(webAddress);
- }
- }
-
- @Override
- public void setRpcAddress(String rpcAddress) {
- Builder builder = this.translator.getBuilder();
- if (rpcAddress == null) {
- builder.clearRpcAddress();
- } else {
- builder.setRpcAddress(rpcAddress);
- }
- }
-
- @Override
- public void setServiceAddress(String serviceAddress) {
- this.translator.getBuilder().setServiceAddress(serviceAddress);
- }
-
- @Override
- public void setLifelineAddress(String lifelineAddress) {
- Builder builder = this.translator.getBuilder();
- if (lifelineAddress == null) {
- builder.clearLifelineAddress();
- } else {
- builder.setLifelineAddress(lifelineAddress);
- }
- }
-
- @Override
- public void setIsSafeMode(boolean isSafeMode) {
- Builder builder = this.translator.getBuilder();
- builder.setIsSafeMode(isSafeMode);
- }
-
- @Override
- public void setClusterId(String clusterId) {
- Builder builder = this.translator.getBuilder();
- if (clusterId == null) {
- builder.clearClusterId();
- } else {
- builder.setClusterId(clusterId);
- }
- }
-
- @Override
- public void setBlockPoolId(String blockPoolId) {
- Builder builder = this.translator.getBuilder();
- if (blockPoolId == null) {
- builder.clearBlockPoolId();
- } else {
- builder.setBlockPoolId(blockPoolId);
- }
- }
-
- @Override
- public void setState(FederationNamenodeServiceState state) {
- Builder builder = this.translator.getBuilder();
- if (state == null) {
- builder.clearState();
- } else {
- builder.setState(state.toString());
- }
- }
-
- @Override
- public String getRouterId() {
- NamenodeMembershipRecordProtoOrBuilder proto =
- this.translator.getProtoOrBuilder();
- if (!proto.hasRouterId()) {
- return null;
- }
- return proto.getRouterId();
- }
-
- @Override
- public String getNameserviceId() {
- NamenodeMembershipRecordProtoOrBuilder proto =
- this.translator.getProtoOrBuilder();
- if (!proto.hasNameserviceId()) {
- return null;
- }
- return this.translator.getProtoOrBuilder().getNameserviceId();
- }
-
- @Override
- public String getNamenodeId() {
- NamenodeMembershipRecordProtoOrBuilder proto =
- this.translator.getProtoOrBuilder();
- if (!proto.hasNamenodeId()) {
- return null;
- }
- return this.translator.getProtoOrBuilder().getNamenodeId();
- }
-
- @Override
- public String getClusterId() {
- NamenodeMembershipRecordProtoOrBuilder proto =
- this.translator.getProtoOrBuilder();
- if (!proto.hasClusterId()) {
- return null;
- }
- return this.translator.getProtoOrBuilder().getClusterId();
- }
-
- @Override
- public String getBlockPoolId() {
- NamenodeMembershipRecordProtoOrBuilder proto =
- this.translator.getProtoOrBuilder();
- if (!proto.hasBlockPoolId()) {
- return null;
- }
- return this.translator.getProtoOrBuilder().getBlockPoolId();
- }
-
- @Override
- public String getRpcAddress() {
- NamenodeMembershipRecordProtoOrBuilder proto =
- this.translator.getProtoOrBuilder();
- if (!proto.hasRpcAddress()) {
- return null;
- }
- return this.translator.getProtoOrBuilder().getRpcAddress();
- }
-
- @Override
- public String getServiceAddress() {
- NamenodeMembershipRecordProtoOrBuilder proto =
- this.translator.getProtoOrBuilder();
- if (!proto.hasServiceAddress()) {
- return null;
- }
- return this.translator.getProtoOrBuilder().getServiceAddress();
- }
-
- @Override
- public String getWebAddress() {
- NamenodeMembershipRecordProtoOrBuilder proto =
- this.translator.getProtoOrBuilder();
- if (!proto.hasWebAddress()) {
- return null;
- }
- return this.translator.getProtoOrBuilder().getWebAddress();
- }
-
- @Override
- public String getLifelineAddress() {
- NamenodeMembershipRecordProtoOrBuilder proto =
- this.translator.getProtoOrBuilder();
- if (!proto.hasLifelineAddress()) {
- return null;
- }
- return this.translator.getProtoOrBuilder().getLifelineAddress();
- }
-
- @Override
- public boolean getIsSafeMode() {
- return this.translator.getProtoOrBuilder().getIsSafeMode();
- }
-
- @Override
- public FederationNamenodeServiceState getState() {
- FederationNamenodeServiceState ret =
- FederationNamenodeServiceState.UNAVAILABLE;
- NamenodeMembershipRecordProtoOrBuilder proto =
- this.translator.getProtoOrBuilder();
- if (!proto.hasState()) {
- return null;
- }
- try {
- ret = FederationNamenodeServiceState.valueOf(proto.getState());
- } catch (IllegalArgumentException e) {
- // Ignore this error
- }
- return ret;
- }
-
- @Override
- public void setStats(MembershipStats stats) {
- if (stats instanceof MembershipStatsPBImpl) {
- MembershipStatsPBImpl statsPB = (MembershipStatsPBImpl)stats;
- NamenodeMembershipStatsRecordProto statsProto =
- (NamenodeMembershipStatsRecordProto)statsPB.getProto();
- this.translator.getBuilder().setStats(statsProto);
- }
- }
-
- @Override
- public MembershipStats getStats() {
- NamenodeMembershipStatsRecordProto statsProto =
- this.translator.getProtoOrBuilder().getStats();
- MembershipStats stats =
- StateStoreSerializer.newRecord(MembershipStats.class);
- if (stats instanceof MembershipStatsPBImpl) {
- MembershipStatsPBImpl statsPB = (MembershipStatsPBImpl)stats;
- statsPB.setProto(statsProto);
- return statsPB;
- } else {
- throw new IllegalArgumentException(
- "Cannot get stats for the membership");
- }
- }
-
- @Override
- public void setLastContact(long contact) {
- this.translator.getBuilder().setLastContact(contact);
- }
-
- @Override
- public long getLastContact() {
- return this.translator.getProtoOrBuilder().getLastContact();
- }
-
- @Override
- public void setDateModified(long time) {
- this.translator.getBuilder().setDateModified(time);
- }
-
- @Override
- public long getDateModified() {
- return this.translator.getProtoOrBuilder().getDateModified();
- }
-
- @Override
- public void setDateCreated(long time) {
- this.translator.getBuilder().setDateCreated(time);
- }
-
- @Override
- public long getDateCreated() {
- return this.translator.getProtoOrBuilder().getDateCreated();
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hadoop/blob/62a819d5/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/records/impl/pb/MembershipStatsPBImpl.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/records/impl/pb/MembershipStatsPBImpl.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/records/impl/pb/MembershipStatsPBImpl.java
deleted file mode 100644
index 9f0a167..0000000
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/store/records/impl/pb/MembershipStatsPBImpl.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.hdfs.server.federation.store.records.impl.pb;
-
-import java.io.IOException;
-
-import org.apache.hadoop.hdfs.federation.protocol.proto.HdfsServerFederationProtos.NamenodeMembershipStatsRecordProto;
-import org.apache.hadoop.hdfs.federation.protocol.proto.HdfsServerFederationProtos.NamenodeMembershipStatsRecordProto.Builder;
-import org.apache.hadoop.hdfs.federation.protocol.proto.HdfsServerFederationProtos.NamenodeMembershipStatsRecordProtoOrBuilder;
-import org.apache.hadoop.hdfs.server.federation.store.protocol.impl.pb.FederationProtocolPBTranslator;
-import org.apache.hadoop.hdfs.server.federation.store.records.MembershipStats;
-
-import com.google.protobuf.Message;
-
-/**
- * Protobuf implementation of the MembershipStats record.
- */
-public class MembershipStatsPBImpl extends MembershipStats
- implements PBRecord {
-
- private FederationProtocolPBTranslator<NamenodeMembershipStatsRecordProto,
- Builder, NamenodeMembershipStatsRecordProtoOrBuilder> translator =
- new FederationProtocolPBTranslator<NamenodeMembershipStatsRecordProto,
- Builder, NamenodeMembershipStatsRecordProtoOrBuilder>(
- NamenodeMembershipStatsRecordProto.class);
-
- public MembershipStatsPBImpl() {
- }
-
- @Override
- public NamenodeMembershipStatsRecordProto getProto() {
- return this.translator.build();
- }
-
- @Override
- public void setProto(Message proto) {
- this.translator.setProto(proto);
- }
-
- @Override
- public void readInstance(String base64String) throws IOException {
- this.translator.readInstance(base64String);
- }
-
- @Override
- public void setTotalSpace(long space) {
- this.translator.getBuilder().setTotalSpace(space);
- }
-
- @Override
- public long getTotalSpace() {
- return this.translator.getProtoOrBuilder().getTotalSpace();
- }
-
- @Override
- public void setAvailableSpace(long space) {
- this.translator.getBuilder().setAvailableSpace(space);
- }
-
- @Override
- public long getAvailableSpace() {
- return this.translator.getProtoOrBuilder().getAvailableSpace();
- }
-
- @Override
- public void setNumOfFiles(long files) {
- this.translator.getBuilder().setNumOfFiles(files);
- }
-
- @Override
- public long getNumOfFiles() {
- return this.translator.getProtoOrBuilder().getNumOfFiles();
- }
-
- @Override
- public void setNumOfBlocks(long blocks) {
- this.translator.getBuilder().setNumOfBlocks(blocks);
- }
-
- @Override
- public long getNumOfBlocks() {
- return this.translator.getProtoOrBuilder().getNumOfBlocks();
- }
-
- @Override
- public void setNumOfBlocksMissing(long blocks) {
- this.translator.getBuilder().setNumOfBlocksMissing(blocks);
- }
-
- @Override
- public long getNumOfBlocksMissing() {
- return this.translator.getProtoOrBuilder().getNumOfBlocksMissing();
- }
-
- @Override
- public void setNumOfBlocksPendingReplication(long blocks) {
- this.translator.getBuilder().setNumOfBlocksPendingReplication(blocks);
- }
-
- @Override
- public long getNumOfBlocksPendingReplication() {
- return this.translator.getProtoOrBuilder()
- .getNumOfBlocksPendingReplication();
- }
-
- @Override
- public void setNumOfBlocksUnderReplicated(long blocks) {
- this.translator.getBuilder().setNumOfBlocksUnderReplicated(blocks);
- }
-
- @Override
- public long getNumOfBlocksUnderReplicated() {
- return this.translator.getProtoOrBuilder().getNumOfBlocksUnderReplicated();
- }
-
- @Override
- public void setNumOfBlocksPendingDeletion(long blocks) {
- this.translator.getBuilder().setNumOfBlocksPendingDeletion(blocks);
- }
-
- @Override
- public long getNumOfBlocksPendingDeletion() {
- return this.translator.getProtoOrBuilder().getNumOfBlocksPendingDeletion();
- }
-
- @Override
- public void setNumOfActiveDatanodes(int nodes) {
- this.translator.getBuilder().setNumOfActiveDatanodes(nodes);
- }
-
- @Override
- public int getNumOfActiveDatanodes() {
- return this.translator.getProtoOrBuilder().getNumOfActiveDatanodes();
- }
-
- @Override
- public void setNumOfDeadDatanodes(int nodes) {
- this.translator.getBuilder().setNumOfDeadDatanodes(nodes);
- }
-
- @Override
- public int getNumOfDeadDatanodes() {
- return this.translator.getProtoOrBuilder().getNumOfDeadDatanodes();
- }
-
- @Override
- public void setNumOfDecommissioningDatanodes(int nodes) {
- this.translator.getBuilder().setNumOfDecommissioningDatanodes(nodes);
- }
-
- @Override
- public int getNumOfDecommissioningDatanodes() {
- return this.translator.getProtoOrBuilder()
- .getNumOfDecommissioningDatanodes();
- }
-
- @Override
- public void setNumOfDecomActiveDatanodes(int nodes) {
- this.translator.getBuilder().setNumOfDecomActiveDatanodes(nodes);
- }
-
- @Override
- public int getNumOfDecomActiveDatanodes() {
- return this.translator.getProtoOrBuilder().getNumOfDecomActiveDatanodes();
- }
-
- @Override
- public void setNumOfDecomDeadDatanodes(int nodes) {
- this.translator.getBuilder().setNumOfDecomDeadDatanodes(nodes);
- }
-
- @Override
- public int getNumOfDecomDeadDatanodes() {
- return this.translator.getProtoOrBuilder().getNumOfDecomDeadDatanodes();
- }
-}
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org