You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by en...@apache.org on 2017/09/15 21:20:33 UTC
[16/25] hbase git commit: HBASE-18725 [C++] Install header files as
well as library
http://git-wip-us.apache.org/repos/asf/hbase/blob/128fc306/hbase-native-client/core/time-range-test.cc
----------------------------------------------------------------------
diff --git a/hbase-native-client/core/time-range-test.cc b/hbase-native-client/core/time-range-test.cc
deleted file mode 100644
index 136ab54..0000000
--- a/hbase-native-client/core/time-range-test.cc
+++ /dev/null
@@ -1,48 +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.
- *
- */
-
-#include "core/time-range.h"
-
-#include <glog/logging.h>
-#include <gtest/gtest.h>
-
-using namespace hbase;
-
-TEST(TimeRange, DefaultObject) {
- TimeRange *timerange_def = nullptr;
- ASSERT_NO_THROW(timerange_def = new TimeRange());
-
- EXPECT_EQ(0, timerange_def->MinTimeStamp());
- EXPECT_EQ(std::numeric_limits<int64_t>::max(), timerange_def->MaxTimeStamp());
- EXPECT_NE(1000, timerange_def->MinTimeStamp());
- EXPECT_NE(2000, timerange_def->MaxTimeStamp());
- delete timerange_def;
- timerange_def = nullptr;
-}
-
-TEST(TimeRange, Exception) {
- // Negative Min TS
- ASSERT_THROW(TimeRange(-1000, 2000), std::runtime_error);
-
- // Negative Max TS
- ASSERT_THROW(TimeRange(1000, -2000), std::runtime_error);
-
- // Min TS > Max TS
- ASSERT_THROW(TimeRange(10000, 2000), std::runtime_error);
-}
http://git-wip-us.apache.org/repos/asf/hbase/blob/128fc306/hbase-native-client/core/time-range.cc
----------------------------------------------------------------------
diff --git a/hbase-native-client/core/time-range.cc b/hbase-native-client/core/time-range.cc
deleted file mode 100644
index e6b789b..0000000
--- a/hbase-native-client/core/time-range.cc
+++ /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.
- *
- */
-
-#include "core/time-range.h"
-#include <limits>
-#include <stdexcept>
-#include <string>
-
-namespace hbase {
-
-TimeRange::TimeRange()
- : min_timestamp_(0L), max_timestamp_(std::numeric_limits<int64_t>::max()), all_time_(true) {}
-
-TimeRange::TimeRange(const TimeRange &tr) {
- this->all_time_ = tr.all_time_;
- this->max_timestamp_ = tr.max_timestamp_;
- this->min_timestamp_ = tr.min_timestamp_;
-}
-
-TimeRange &TimeRange::operator=(const TimeRange &tr) {
- this->all_time_ = tr.all_time_;
- this->max_timestamp_ = tr.max_timestamp_;
- this->min_timestamp_ = tr.min_timestamp_;
- return *this;
-}
-
-TimeRange::~TimeRange() {}
-
-TimeRange::TimeRange(int64_t min_timestamp) {
- this->min_timestamp_ = min_timestamp;
- this->max_timestamp_ = std::numeric_limits<int64_t>::max();
- this->all_time_ = false;
-}
-
-TimeRange::TimeRange(int64_t min_timestamp, int64_t max_timestamp) {
- if (min_timestamp < 0 || max_timestamp < 0) {
- throw std::runtime_error("Timestamp cannot be negative. min_timestamp: " +
- std::to_string(min_timestamp) + ", max_timestamp:" +
- std::to_string(max_timestamp));
- }
- if (max_timestamp < min_timestamp) {
- throw std::runtime_error("max_timestamp [" + std::to_string(max_timestamp) +
- "] should be greater than min_timestamp [" +
- std::to_string(min_timestamp) + "]");
- }
-
- this->min_timestamp_ = min_timestamp;
- this->max_timestamp_ = max_timestamp;
- this->all_time_ = false;
-}
-
-int64_t TimeRange::MinTimeStamp() const { return this->min_timestamp_; }
-
-int64_t TimeRange::MaxTimeStamp() const { return this->max_timestamp_; }
-
-bool TimeRange::IsAllTime() const { return this->all_time_; }
-} // namespace hbase
http://git-wip-us.apache.org/repos/asf/hbase/blob/128fc306/hbase-native-client/core/time-range.h
----------------------------------------------------------------------
diff --git a/hbase-native-client/core/time-range.h b/hbase-native-client/core/time-range.h
deleted file mode 100644
index d645ecd..0000000
--- a/hbase-native-client/core/time-range.h
+++ /dev/null
@@ -1,58 +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.
- *
- */
-
-#pragma once
-
-#include <cstdint>
-
-namespace hbase {
-class TimeRange {
- public:
- /**
- * @brief Default constructor. Represents interval [0,
- * std::numeric_limits<int64_t>::max())
- * (allTime)
- */
- TimeRange();
- TimeRange(const TimeRange &tr);
- TimeRange &operator=(const TimeRange &tr);
- /**
- * @brief Represents interval [minStamp, std::numeric_limits<int64_t>::max())
- * @param minStamp the minimum timestamp value, inclusive
- */
- explicit TimeRange(int64_t min_timestamp);
- /**
- * @brief Represents interval [minStamp, maxStamp)
- * @param minStamp the minimum timestamp, inclusive
- * @param maxStamp the maximum timestamp, exclusive
- * @throws std::runtime_error if min_timestamp < 0 or max_timestamp < 0 or
- * max_timestamp < min_timestamp
- */
- TimeRange(int64_t min_timestamp, int64_t max_timestamp);
- int64_t MinTimeStamp() const;
- int64_t MaxTimeStamp() const;
- bool IsAllTime() const;
- ~TimeRange();
-
- private:
- int64_t min_timestamp_;
- int64_t max_timestamp_;
- bool all_time_;
-};
-} // namespace hbase
http://git-wip-us.apache.org/repos/asf/hbase/blob/128fc306/hbase-native-client/core/zk-util-test.cc
----------------------------------------------------------------------
diff --git a/hbase-native-client/core/zk-util-test.cc b/hbase-native-client/core/zk-util-test.cc
deleted file mode 100644
index b0cefdc..0000000
--- a/hbase-native-client/core/zk-util-test.cc
+++ /dev/null
@@ -1,50 +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.
- *
- */
-#include <gtest/gtest.h>
-
-#include "core/zk-util.h"
-
-using hbase::Configuration;
-using hbase::ZKUtil;
-
-TEST(ZKUtilTest, ParseZooKeeperQuorum) {
- Configuration conf{};
- conf.Set(ZKUtil::kHBaseZookeeperQuorum_, "s1");
- conf.SetInt(ZKUtil::kHBaseZookeeperClientPort_, 100);
-
- ASSERT_EQ("s1:100", ZKUtil::ParseZooKeeperQuorum(conf));
-
- conf.Set(ZKUtil::kHBaseZookeeperQuorum_, "s1:42");
-
- ASSERT_EQ("s1:42", ZKUtil::ParseZooKeeperQuorum(conf));
-
- conf.Set(ZKUtil::kHBaseZookeeperQuorum_, "s1,s2,s3");
- ASSERT_EQ("s1:100,s2:100,s3:100", ZKUtil::ParseZooKeeperQuorum(conf));
-
- conf.Set(ZKUtil::kHBaseZookeeperQuorum_, "s1:42,s2:42,s3:42");
- ASSERT_EQ("s1:42,s2:42,s3:42", ZKUtil::ParseZooKeeperQuorum(conf));
-}
-
-TEST(ZKUtilTest, MetaZNode) {
- Configuration conf{};
- ASSERT_EQ("/hbase/meta-region-server", ZKUtil::MetaZNode(conf));
-
- conf.Set(ZKUtil::kHBaseZnodeParent_, "/hbase-secure");
- ASSERT_EQ("/hbase-secure/meta-region-server", ZKUtil::MetaZNode(conf));
-}
http://git-wip-us.apache.org/repos/asf/hbase/blob/128fc306/hbase-native-client/core/zk-util.cc
----------------------------------------------------------------------
diff --git a/hbase-native-client/core/zk-util.cc b/hbase-native-client/core/zk-util.cc
deleted file mode 100644
index d29c8c3..0000000
--- a/hbase-native-client/core/zk-util.cc
+++ /dev/null
@@ -1,62 +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.
- *
- */
-
-#include "core/zk-util.h"
-
-#include <folly/Conv.h>
-#include <boost/algorithm/string.hpp>
-
-#include <vector>
-
-namespace hbase {
-
-/**
- * Returns a "proper" zookeeper quorum string, from hbase's broken quorum string formats. In
- * hbase.zookeeper.quorum, the ports are not listed explicitly per server (eg. s1,s2,s3),
- * however ZooKeeper expects the string of the format s1:2181,s2:2181,s3:2181. This code
- * appends the "clientPort" to each node in the quorum string if not there.
- */
-std::string ZKUtil::ParseZooKeeperQuorum(const hbase::Configuration& conf) {
- auto zk_quorum = conf.Get(kHBaseZookeeperQuorum_, kDefHBaseZookeeperQuorum_);
- auto zk_port = conf.GetInt(kHBaseZookeeperClientPort_, kDefHBaseZookeeperClientPort_);
-
- std::vector<std::string> zk_quorum_parts;
- boost::split(zk_quorum_parts, zk_quorum, boost::is_any_of(","), boost::token_compress_on);
- std::vector<std::string> servers;
- for (auto server : zk_quorum_parts) {
- if (boost::contains(server, ":")) {
- servers.push_back(server);
- } else {
- servers.push_back(server + ":" + folly::to<std::string>(zk_port));
- }
- }
- return boost::join(servers, ",");
-}
-
-std::string ZKUtil::MetaZNode(const hbase::Configuration& conf) {
- std::string zk_node = conf.Get(kHBaseZnodeParent_, kDefHBaseZnodeParent_) + "/";
- zk_node += kHBaseMetaRegionServer_;
- return zk_node;
-}
-
-int32_t ZKUtil::SessionTimeout(const hbase::Configuration& conf) {
- return conf.GetInt(kHBaseZookeeperSessionTimeout_, kDefHBaseZookeeperSessionTimeout_);
-}
-
-} // namespace hbase
http://git-wip-us.apache.org/repos/asf/hbase/blob/128fc306/hbase-native-client/core/zk-util.h
----------------------------------------------------------------------
diff --git a/hbase-native-client/core/zk-util.h b/hbase-native-client/core/zk-util.h
deleted file mode 100644
index 403fbe4..0000000
--- a/hbase-native-client/core/zk-util.h
+++ /dev/null
@@ -1,46 +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.
- *
- */
-#pragma once
-
-#include <cstdlib>
-#include <string>
-#include "core/configuration.h"
-
-namespace hbase {
-
-class ZKUtil {
- public:
- static constexpr const char* kHBaseZookeeperQuorum_ = "hbase.zookeeper.quorum";
- static constexpr const char* kDefHBaseZookeeperQuorum_ = "localhost:2181";
- static constexpr const char* kHBaseZookeeperClientPort_ = "hbase.zookeeper.property.clientPort";
- static constexpr const int32_t kDefHBaseZookeeperClientPort_ = 2181;
- static constexpr const char* kHBaseZnodeParent_ = "zookeeper.znode.parent";
- static constexpr const char* kDefHBaseZnodeParent_ = "/hbase";
- static constexpr const char* kHBaseMetaRegionServer_ = "meta-region-server";
-
- static constexpr const char* kHBaseZookeeperSessionTimeout_ = "zookeeper.session.timeout";
- static constexpr const int32_t kDefHBaseZookeeperSessionTimeout_ = 90000;
-
- static std::string ParseZooKeeperQuorum(const hbase::Configuration& conf);
-
- static std::string MetaZNode(const hbase::Configuration& conf);
-
- static int32_t SessionTimeout(const hbase::Configuration& conf);
-};
-} // namespace hbase
http://git-wip-us.apache.org/repos/asf/hbase/blob/128fc306/hbase-native-client/exceptions/BUCK
----------------------------------------------------------------------
diff --git a/hbase-native-client/exceptions/BUCK b/hbase-native-client/exceptions/BUCK
deleted file mode 100644
index 3d66d72..0000000
--- a/hbase-native-client/exceptions/BUCK
+++ /dev/null
@@ -1,39 +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.
-
-cxx_library(
- name="exceptions",
- exported_headers=[
- "exception.h",
- ],
- srcs=[
- "exception.cc",
- ],
- deps=[
- "//third-party:folly",
- ],
- compiler_flags=['-Weffc++'],
- visibility=['//core/...', '//connection/...'],)
-cxx_test(
- name="exception-test",
- srcs=[
- "exception-test.cc",
- ],
- deps=[
- ":exceptions",
- ],
- run_test_separately=True,)
http://git-wip-us.apache.org/repos/asf/hbase/blob/128fc306/hbase-native-client/exceptions/exception-test.cc
----------------------------------------------------------------------
diff --git a/hbase-native-client/exceptions/exception-test.cc b/hbase-native-client/exceptions/exception-test.cc
deleted file mode 100644
index 583240e..0000000
--- a/hbase-native-client/exceptions/exception-test.cc
+++ /dev/null
@@ -1,64 +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.
- *
- */
-#include <gtest/gtest.h>
-
-#include "exceptions/exception.h"
-
-#include "folly/ExceptionWrapper.h"
-
-using hbase::ExceptionUtil;
-using hbase::IOException;
-using hbase::RemoteException;
-
-TEST(ExceptionUtilTest, IOExceptionShouldRetry) {
- IOException ex{};
- EXPECT_TRUE(ExceptionUtil::ShouldRetry(ex));
-
- ex.set_do_not_retry(true);
- EXPECT_FALSE(ExceptionUtil::ShouldRetry(ex));
-
- ex.set_do_not_retry(false);
- EXPECT_TRUE(ExceptionUtil::ShouldRetry(ex));
-
- IOException ex2{"description", true};
- EXPECT_FALSE(ExceptionUtil::ShouldRetry(ex2));
-
- IOException ex3{"description", std::runtime_error("ex"), true};
- EXPECT_FALSE(ExceptionUtil::ShouldRetry(ex3));
-}
-
-TEST(ExceptionUtilTest, RemoteExceptionShouldRetry) {
- RemoteException ex{};
- EXPECT_TRUE(ExceptionUtil::ShouldRetry(ex));
-
- ex.set_do_not_retry(true);
- EXPECT_FALSE(ExceptionUtil::ShouldRetry(ex));
-
- ex.set_do_not_retry(false);
- EXPECT_TRUE(ExceptionUtil::ShouldRetry(ex));
-
- ex.set_exception_class_name("org.apache.hadoop.hbase.FooException");
- EXPECT_TRUE(ExceptionUtil::ShouldRetry(ex));
-
- ex.set_exception_class_name("org.apache.hadoop.hbase.NotServingRegionException");
- EXPECT_TRUE(ExceptionUtil::ShouldRetry(ex));
-
- ex.set_exception_class_name("org.apache.hadoop.hbase.UnknownRegionException");
- EXPECT_FALSE(ExceptionUtil::ShouldRetry(ex));
-}
http://git-wip-us.apache.org/repos/asf/hbase/blob/128fc306/hbase-native-client/exceptions/exception.cc
----------------------------------------------------------------------
diff --git a/hbase-native-client/exceptions/exception.cc b/hbase-native-client/exceptions/exception.cc
deleted file mode 100644
index c25acb4..0000000
--- a/hbase-native-client/exceptions/exception.cc
+++ /dev/null
@@ -1,128 +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.
- *
- */
-#include "exceptions/exception.h"
-
-namespace hbase {
-const std::vector<const char*> ExceptionUtil::kAllDoNotRetryIOExceptions = {
- kDoNotRetryIOException,
- kTableNotFoundException,
- kTableNotEnabledException,
- kCoprocessorException,
- kBypassCoprocessorException,
- kInvalidFamilyOperationException,
- kServerTooBusyException,
- kFailedSanityCheckException,
- kCorruptHFileException,
- kLabelAlreadyExistsException,
- kFatalConnectionException,
- kUnsupportedCryptoException,
- kUnsupportedCellCodecException,
- kEmptyServiceNameException,
- kUnknownServiceException,
- kWrongVersionException,
- kBadAuthException,
- kUnsupportedCompressionCodecException,
- kDoNotRetryRegionException,
- kRowTooBigException,
- kRowTooBigExceptionDeprecated,
- kUnknownRegionException,
- kMergeRegionException,
- kNoServerForRegionException,
- kQuotaExceededException,
- kSpaceLimitingException,
- kThrottlingException,
- kAccessDeniedException,
- kUnknownProtocolException,
- kRequestTooBigException,
- kNotAllMetaRegionsOnlineException,
- kConstraintException,
- kNoSuchColumnFamilyException,
- kLeaseException,
- kInvalidLabelException,
- kUnknownScannerException,
- kScannerResetException,
- kOutOfOrderScannerNextException};
-
-bool ExceptionUtil::ShouldRetry(const folly::exception_wrapper& error) {
- bool do_not_retry = false;
- error.with_exception(
- [&](const IOException& ioe) { do_not_retry = do_not_retry || ioe.do_not_retry(); });
- error.with_exception([&](const RemoteException& remote_ex) {
- do_not_retry = do_not_retry || IsJavaDoNotRetryException(remote_ex.exception_class_name());
- });
- return !do_not_retry;
-}
-
-/**
- * Returns whether the java exception class extends DoNotRetryException.
- * In the java side, we just have a hierarchy of Exception classes that we use
- * both client side and server side. On the client side, we rethrow the server
- * side exception by un-wrapping the exception from a RemoteException or a ServiceException
- * (see ConnectionUtils.translateException() in Java).
- * Since this object-hierarchy info is not available in C++ side, we are doing a
- * very fragile catch-all list of all exception types in Java that extend the
- * DoNotRetryException class type.
- */
-bool ExceptionUtil::IsJavaDoNotRetryException(const std::string& java_class_name) {
- for (auto exception : kAllDoNotRetryIOExceptions) {
- if (java_class_name == exception) {
- return true;
- }
- }
- return false;
-}
-
-/**
- * Returns whether the scanner is closed when the client received the
- * remote exception.
- * Since the object-hierarchy info is not available in C++ side, we are doing a
- * very fragile catch-all list of all exception types in Java that extend these
- * three base classes: UnknownScannerException, NotServingRegionException,
- * RegionServerStoppedException
- */
-bool ExceptionUtil::IsScannerClosed(const folly::exception_wrapper& exception) {
- bool scanner_closed = false;
- exception.with_exception([&](const RemoteException& remote_ex) {
- auto java_class = remote_ex.exception_class_name();
- if (java_class == kUnknownScannerException || java_class == kNotServingRegionException ||
- java_class == kRegionInRecoveryException || java_class == kRegionOpeningException ||
- java_class == kRegionMovedException || java_class == kRegionServerStoppedException ||
- java_class == kRegionServerAbortedException) {
- scanner_closed = true;
- }
- });
- return scanner_closed;
-}
-
-/**
- * Returns whether the wrapped exception is a java exception of type OutOfOrderScannerNextException
- * or ScannerResetException. These two exception types are thrown from the server side when the
- * scanner on the server side is closed.
- */
-bool ExceptionUtil::IsScannerOutOfOrder(const folly::exception_wrapper& exception) {
- bool scanner_out_of_order = false;
- exception.with_exception([&](const RemoteException& remote_ex) {
- auto java_class = remote_ex.exception_class_name();
- if (java_class == kOutOfOrderScannerNextException || java_class == kScannerResetException) {
- scanner_out_of_order = true;
- }
- });
- return scanner_out_of_order;
-}
-} // namespace hbase
http://git-wip-us.apache.org/repos/asf/hbase/blob/128fc306/hbase-native-client/exceptions/exception.h
----------------------------------------------------------------------
diff --git a/hbase-native-client/exceptions/exception.h b/hbase-native-client/exceptions/exception.h
deleted file mode 100644
index bc3b291..0000000
--- a/hbase-native-client/exceptions/exception.h
+++ /dev/null
@@ -1,328 +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.
- *
- */
-#pragma once
-
-#include <folly/ExceptionWrapper.h>
-#include <folly/io/IOBuf.h>
-#include <exception>
-#include <memory>
-#include <string>
-#include <vector>
-
-namespace hbase {
-
-class ThrowableWithExtraContext {
- public:
- ThrowableWithExtraContext(folly::exception_wrapper cause, const int64_t& when)
- : cause_(cause), when_(when), extras_("") {}
-
- ThrowableWithExtraContext(folly::exception_wrapper cause, const int64_t& when,
- const std::string& extras)
- : cause_(cause), when_(when), extras_(extras) {}
-
- virtual std::string ToString() {
- // TODO:
- // return new Date(this.when).toString() + ", " + extras + ", " + t.toString();
- return extras_ + ", " + cause_.what().toStdString();
- }
-
- virtual folly::exception_wrapper cause() { return cause_; }
-
- private:
- folly::exception_wrapper cause_;
- int64_t when_;
- std::string extras_;
-};
-
-class IOException : public std::logic_error {
- public:
- IOException() : logic_error(""), do_not_retry_(false) {}
-
- explicit IOException(const std::string& what) : logic_error(what), do_not_retry_(false) {}
-
- IOException(const std::string& what, bool do_not_retry)
- : logic_error(what), do_not_retry_(do_not_retry) {}
-
- IOException(const std::string& what, const folly::exception_wrapper& cause)
- : logic_error(what), cause_(cause), do_not_retry_(false) {}
-
- IOException(const std::string& what, folly::exception_wrapper cause, bool do_not_retry)
- : logic_error(what), cause_(cause), do_not_retry_(do_not_retry) {}
-
- virtual ~IOException() = default;
-
- virtual folly::exception_wrapper cause() const { return cause_; }
-
- bool do_not_retry() const { return do_not_retry_; }
-
- IOException* set_do_not_retry(bool value) {
- do_not_retry_ = value;
- return this;
- }
-
- private:
- folly::exception_wrapper cause_;
- // In case the exception is a RemoteException, do_not_retry information can come from
- // the PB field in the RPC response, or it can be deduced from the Java-exception
- // hierarchy in ExceptionUtil::ShouldRetry(). In case this is a client-side exception
- // raised from the C++ internals, set this field so that the retrying callers can
- // re-throw the exception without retrying.
- bool do_not_retry_;
-};
-
-class RetriesExhaustedException : public IOException {
- public:
- RetriesExhaustedException(const int& num_retries,
- std::shared_ptr<std::vector<ThrowableWithExtraContext>> exceptions)
- : IOException(GetMessage(num_retries, exceptions),
- exceptions->empty() ? folly::exception_wrapper{}
- : (*exceptions)[exceptions->size() - 1].cause()),
- num_retries_(num_retries) {}
- virtual ~RetriesExhaustedException() = default;
-
- int32_t num_retries() const { return num_retries_; }
-
- private:
- std::string GetMessage(const int& num_retries,
- std::shared_ptr<std::vector<ThrowableWithExtraContext>> exceptions) {
- std::string buffer("Failed after attempts=");
- buffer.append(std::to_string(num_retries + 1));
- buffer.append(", exceptions:\n");
- for (auto it = exceptions->begin(); it != exceptions->end(); it++) {
- buffer.append(it->ToString());
- buffer.append("\n");
- }
- return buffer;
- }
-
- private:
- int32_t num_retries_;
-};
-
-class ConnectionException : public IOException {
- public:
- ConnectionException() {}
-
- ConnectionException(const std::string& what) : IOException(what) {}
-
- ConnectionException(const folly::exception_wrapper& cause) : IOException("", cause) {}
-
- ConnectionException(const std::string& what, const folly::exception_wrapper& cause)
- : IOException(what, cause) {}
-};
-
-class RemoteException : public IOException {
- public:
- RemoteException() : IOException(), port_(0) {}
-
- explicit RemoteException(const std::string& what) : IOException(what), port_(0) {}
-
- RemoteException(const std::string& what, folly::exception_wrapper cause)
- : IOException(what, cause), port_(0) {}
-
- virtual ~RemoteException() = default;
-
- std::string exception_class_name() const { return exception_class_name_; }
-
- RemoteException* set_exception_class_name(const std::string& value) {
- exception_class_name_ = value;
- return this;
- }
-
- std::string stack_trace() const { return stack_trace_; }
-
- RemoteException* set_stack_trace(const std::string& value) {
- stack_trace_ = value;
- return this;
- }
-
- std::string hostname() const { return hostname_; }
-
- RemoteException* set_hostname(const std::string& value) {
- hostname_ = value;
- return this;
- }
-
- int port() const { return port_; }
-
- RemoteException* set_port(int value) {
- port_ = value;
- return this;
- }
-
- private:
- std::string exception_class_name_;
- std::string stack_trace_;
- std::string hostname_;
- int port_;
-};
-
-/**
- * Raised from the client side if we cannot find the table (does not have anything to
- * do with the Java exception of the same name).
- */
-class TableNotFoundException : public IOException {
- public:
- explicit TableNotFoundException(const std::string& table_name)
- : IOException("Table cannot be found:" + table_name, true) {}
-
- virtual ~TableNotFoundException() = default;
-};
-
-/**
- * List of known exceptions from Java side, and Java-specific exception logic
- */
-class ExceptionUtil {
- private:
- // unknown scanner and sub-classes
- static constexpr const char* kUnknownScannerException =
- "org.apache.hadoop.hbase.UnknownScannerException";
-
- // not serving region and sub-classes
- static constexpr const char* kNotServingRegionException =
- "org.apache.hadoop.hbase.NotServingRegionException";
- static constexpr const char* kRegionInRecoveryException =
- "org.apache.hadoop.hbase.exceptions.RegionInRecoveryException";
- static constexpr const char* kRegionOpeningException =
- "org.apache.hadoop.hbase.exceptions.RegionOpeningException";
- static constexpr const char* kRegionMovedException =
- "org.apache.hadoop.hbase.exceptions.RegionMovedException";
-
- // Region server stopped and sub-classes
- static constexpr const char* kRegionServerStoppedException =
- "org.apache.hadoop.hbase.regionserver.RegionServerStoppedException";
- static constexpr const char* kRegionServerAbortedException =
- "org.apache.hadoop.hbase.regionserver.RegionServerAbortedException";
-
- // other scanner related exceptions
- static constexpr const char* kOutOfOrderScannerNextException =
- "org.apache.hadoop.hbase.exceptions.OutOfOrderScannerNextException";
- static constexpr const char* kScannerResetException =
- "org.apache.hadoop.hbase.exceptions.ScannerResetException";
-
- // All other DoNotRetryIOExceptions
- static constexpr const char* kDoNotRetryIOException =
- "org.apache.hadoop.hbase.DoNotRetryIOException";
- static constexpr const char* kTableNotFoundException =
- "org.apache.hadoop.hbase.TableNotFoundException";
- static constexpr const char* kTableNotEnabledException =
- "org.apache.hadoop.hbase.TableNotEnabledException";
- static constexpr const char* kCoprocessorException =
- "org.apache.hadoop.hbase.coprocessor.CoprocessorException";
- static constexpr const char* kBypassCoprocessorException =
- "org.apache.hadoop.hbase.coprocessor.BypassCoprocessorException";
- static constexpr const char* kInvalidFamilyOperationException =
- "org.apache.hadoop.hbase.InvalidFamilyOperationException";
- static constexpr const char* kServerTooBusyException =
- "org.apache.hadoop.hbase.ipc.ServerTooBusyException"; // This should NOT be DNRIOE?
- static constexpr const char* kFailedSanityCheckException =
- "org.apache.hadoop.hbase.exceptions.FailedSanityCheckException";
- static constexpr const char* kCorruptHFileException =
- "org.apache.hadoop.hbase.io.hfile.CorruptHFileException";
- static constexpr const char* kLabelAlreadyExistsException =
- "org.apache.hadoop.hbase.security.visibility.LabelAlreadyExistsException";
- static constexpr const char* kFatalConnectionException =
- "org.apache.hadoop.hbase.ipc.FatalConnectionException";
- static constexpr const char* kUnsupportedCryptoException =
- "org.apache.hadoop.hbase.ipc.UnsupportedCryptoException";
- static constexpr const char* kUnsupportedCellCodecException =
- "org.apache.hadoop.hbase.ipc.UnsupportedCellCodecException";
- static constexpr const char* kEmptyServiceNameException =
- "org.apache.hadoop.hbase.ipc.EmptyServiceNameException";
- static constexpr const char* kUnknownServiceException =
- "org.apache.hadoop.hbase.ipc.UnknownServiceException";
- static constexpr const char* kWrongVersionException =
- "org.apache.hadoop.hbase.ipc.WrongVersionException";
- static constexpr const char* kBadAuthException = "org.apache.hadoop.hbase.ipc.BadAuthException";
- static constexpr const char* kUnsupportedCompressionCodecException =
- "org.apache.hadoop.hbase.ipc.UnsupportedCompressionCodecException";
- static constexpr const char* kDoNotRetryRegionException =
- "org.apache.hadoop.hbase.client.DoNotRetryRegionException";
- static constexpr const char* kRowTooBigException =
- "org.apache.hadoop.hbase.client.RowTooBigException";
- static constexpr const char* kRowTooBigExceptionDeprecated =
- "org.apache.hadoop.hbase.regionserver.RowTooBigException";
- static constexpr const char* kUnknownRegionException =
- "org.apache.hadoop.hbase.UnknownRegionException";
- static constexpr const char* kMergeRegionException =
- "org.apache.hadoop.hbase.exceptions.MergeRegionException";
- static constexpr const char* kNoServerForRegionException =
- "org.apache.hadoop.hbase.client.NoServerForRegionException";
- static constexpr const char* kQuotaExceededException =
- "org.apache.hadoop.hbase.quotas.QuotaExceededException";
- static constexpr const char* kSpaceLimitingException =
- "org.apache.hadoop.hbase.quotas.SpaceLimitingException";
- static constexpr const char* kThrottlingException =
- "org.apache.hadoop.hbase.quotas.ThrottlingException";
- static constexpr const char* kAccessDeniedException =
- "org.apache.hadoop.hbase.security.AccessDeniedException";
- static constexpr const char* kUnknownProtocolException =
- "org.apache.hadoop.hbase.exceptions.UnknownProtocolException";
- static constexpr const char* kRequestTooBigException =
- "org.apache.hadoop.hbase.exceptions.RequestTooBigException";
- static constexpr const char* kNotAllMetaRegionsOnlineException =
- "org.apache.hadoop.hbase.NotAllMetaRegionsOnlineException";
- static constexpr const char* kConstraintException =
- "org.apache.hadoop.hbase.constraint.ConstraintException";
- static constexpr const char* kNoSuchColumnFamilyException =
- "org.apache.hadoop.hbase.regionserver.NoSuchColumnFamilyException";
- static constexpr const char* kLeaseException =
- "org.apache.hadoop.hbase.regionserver.LeaseException";
- static constexpr const char* kInvalidLabelException =
- "org.apache.hadoop.hbase.security.visibility.InvalidLabelException";
-
- // TODO:
- // These exceptions are not thrown in the regular read / write paths, although they are
- // DoNotRetryIOExceptions. Add these to the list below in case we start doing Admin/DDL ops
- // ReplicationPeerNotFoundException, XXXSnapshotException, NamespaceExistException,
- // NamespaceNotFoundException, TableExistsException, TableNotDisabledException,
- static const std::vector<const char*> kAllDoNotRetryIOExceptions;
-
- public:
- /**
- * Returns whether or not the exception should be retried by looking at the
- * client-side IOException, or RemoteException coming from server side.
- */
- static bool ShouldRetry(const folly::exception_wrapper& error);
-
- /**
- * Returns whether the java exception class extends DoNotRetryException.
- * In the java side, we just have a hierarchy of Exception classes that we use
- * both client side and server side. On the client side, we rethrow the server
- * side exception by un-wrapping the exception from a RemoteException or a ServiceException
- * (see ConnectionUtils.translateException() in Java).
- * Since this object-hierarchy info is not available in C++ side, we are doing a
- * very fragile catch-all list of all exception types in Java that extend the
- * DoNotRetryException class type.
- */
- static bool IsJavaDoNotRetryException(const std::string& java_class_name);
-
- /**
- * Returns whether the scanner is closed when the client received the
- * remote exception.
- * Since the object-hierarchy info is not available in C++ side, we are doing a
- * very fragile catch-all list of all exception types in Java that extend these
- * three base classes: UnknownScannerException, NotServingRegionException,
- * RegionServerStoppedException
- */
- static bool IsScannerClosed(const folly::exception_wrapper& exception);
-
- static bool IsScannerOutOfOrder(const folly::exception_wrapper& exception);
-};
-} // namespace hbase
http://git-wip-us.apache.org/repos/asf/hbase/blob/128fc306/hbase-native-client/if/AccessControl.proto
----------------------------------------------------------------------
diff --git a/hbase-native-client/if/AccessControl.proto b/hbase-native-client/if/AccessControl.proto
deleted file mode 100644
index e67540b..0000000
--- a/hbase-native-client/if/AccessControl.proto
+++ /dev/null
@@ -1,123 +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 hbase.pb;
-
-option java_package = "org.apache.hadoop.hbase.protobuf.generated";
-option java_outer_classname = "AccessControlProtos";
-option java_generic_services = true;
-option java_generate_equals_and_hash = true;
-option optimize_for = SPEED;
-
-import "HBase.proto";
-
-message Permission {
- enum Action {
- READ = 0;
- WRITE = 1;
- EXEC = 2;
- CREATE = 3;
- ADMIN = 4;
- }
- enum Type {
- Global = 1;
- Namespace = 2;
- Table = 3;
- }
- required Type type = 1;
- optional GlobalPermission global_permission = 2;
- optional NamespacePermission namespace_permission = 3;
- optional TablePermission table_permission = 4;
-}
-
-message TablePermission {
- optional TableName table_name = 1;
- optional bytes family = 2;
- optional bytes qualifier = 3;
- repeated Permission.Action action = 4;
-}
-
-message NamespacePermission {
- optional bytes namespace_name = 1;
- repeated Permission.Action action = 2;
-}
-
-message GlobalPermission {
- repeated Permission.Action action = 1;
-}
-
-message UserPermission {
- required bytes user = 1;
- required Permission permission = 3;
-}
-
-/**
- * Content of the /hbase/acl/<table or namespace> znode.
- */
-message UsersAndPermissions {
- message UserPermissions {
- required bytes user = 1;
- repeated Permission permissions = 2;
- }
-
- repeated UserPermissions user_permissions = 1;
-}
-
-message GrantRequest {
- required UserPermission user_permission = 1;
-}
-
-message GrantResponse {
-}
-
-message RevokeRequest {
- required UserPermission user_permission = 1;
-}
-
-message RevokeResponse {
-}
-
-message GetUserPermissionsRequest {
- optional Permission.Type type = 1;
- optional TableName table_name = 2;
- optional bytes namespace_name = 3;
-}
-
-message GetUserPermissionsResponse {
- repeated UserPermission user_permission = 1;
-}
-
-message CheckPermissionsRequest {
- repeated Permission permission = 1;
-}
-
-message CheckPermissionsResponse {
-}
-
-service AccessControlService {
- rpc Grant(GrantRequest)
- returns (GrantResponse);
-
- rpc Revoke(RevokeRequest)
- returns (RevokeResponse);
-
- rpc GetUserPermissions(GetUserPermissionsRequest)
- returns (GetUserPermissionsResponse);
-
- rpc CheckPermissions(CheckPermissionsRequest)
- returns (CheckPermissionsResponse);
-}
http://git-wip-us.apache.org/repos/asf/hbase/blob/128fc306/hbase-native-client/if/Admin.proto
----------------------------------------------------------------------
diff --git a/hbase-native-client/if/Admin.proto b/hbase-native-client/if/Admin.proto
deleted file mode 100644
index a1905a4..0000000
--- a/hbase-native-client/if/Admin.proto
+++ /dev/null
@@ -1,310 +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.
- */
-
-// This file contains protocol buffers that are used for Admin service.
-package hbase.pb;
-
-option java_package = "org.apache.hadoop.hbase.protobuf.generated";
-option java_outer_classname = "AdminProtos";
-option java_generic_services = true;
-option java_generate_equals_and_hash = true;
-option optimize_for = SPEED;
-
-import "Client.proto";
-import "HBase.proto";
-import "WAL.proto";
-
-message GetRegionInfoRequest {
- required RegionSpecifier region = 1;
- optional bool compaction_state = 2;
-}
-
-message GetRegionInfoResponse {
- required RegionInfo region_info = 1;
- optional CompactionState compaction_state = 2;
- optional bool isRecovering = 3;
-
- enum CompactionState {
- NONE = 0;
- MINOR = 1;
- MAJOR = 2;
- MAJOR_AND_MINOR = 3;
- }
-}
-
-/**
- * Get a list of store files for a set of column families in a particular region.
- * If no column family is specified, get the store files for all column families.
- */
-message GetStoreFileRequest {
- required RegionSpecifier region = 1;
- repeated bytes family = 2;
-}
-
-message GetStoreFileResponse {
- repeated string store_file = 1;
-}
-
-message GetOnlineRegionRequest {
-}
-
-message GetOnlineRegionResponse {
- repeated RegionInfo region_info = 1;
-}
-
-message OpenRegionRequest {
- repeated RegionOpenInfo open_info = 1;
- // the intended server for this RPC.
- optional uint64 serverStartCode = 2;
- // wall clock time from master
- optional uint64 master_system_time = 5;
-
- message RegionOpenInfo {
- required RegionInfo region = 1;
- optional uint32 version_of_offline_node = 2;
- repeated ServerName favored_nodes = 3;
- // open region for distributedLogReplay
- optional bool openForDistributedLogReplay = 4;
- }
-}
-
-message OpenRegionResponse {
- repeated RegionOpeningState opening_state = 1;
-
- enum RegionOpeningState {
- OPENED = 0;
- ALREADY_OPENED = 1;
- FAILED_OPENING = 2;
- }
-}
-
-message WarmupRegionRequest {
-
- required RegionInfo regionInfo = 1;
-}
-
-message WarmupRegionResponse {
-}
-
-/**
- * Closes the specified region and will use or not use ZK during the close
- * according to the specified flag.
- */
-message CloseRegionRequest {
- required RegionSpecifier region = 1;
- optional uint32 version_of_closing_node = 2;
- optional bool transition_in_ZK = 3 [default = true];
- optional ServerName destination_server = 4;
- // the intended server for this RPC.
- optional uint64 serverStartCode = 5;
-}
-
-message CloseRegionResponse {
- required bool closed = 1;
-}
-
-/**
- * Flushes the MemStore of the specified region.
- * <p>
- * This method is synchronous.
- */
-message FlushRegionRequest {
- required RegionSpecifier region = 1;
- optional uint64 if_older_than_ts = 2;
- optional bool write_flush_wal_marker = 3; // whether to write a marker to WAL even if not flushed
-}
-
-message FlushRegionResponse {
- required uint64 last_flush_time = 1;
- optional bool flushed = 2;
- optional bool wrote_flush_wal_marker = 3;
-}
-
-/**
- * Splits the specified region.
- * <p>
- * This method currently flushes the region and then forces a compaction which
- * will then trigger a split. The flush is done synchronously but the
- * compaction is asynchronous.
- */
-message SplitRegionRequest {
- required RegionSpecifier region = 1;
- optional bytes split_point = 2;
-}
-
-message SplitRegionResponse {
-}
-
-/**
- * Compacts the specified region. Performs a major compaction if specified.
- * <p>
- * This method is asynchronous.
- */
-message CompactRegionRequest {
- required RegionSpecifier region = 1;
- optional bool major = 2;
- optional bytes family = 3;
-}
-
-message CompactRegionResponse {
-}
-
-message UpdateFavoredNodesRequest {
- repeated RegionUpdateInfo update_info = 1;
-
- message RegionUpdateInfo {
- required RegionInfo region = 1;
- repeated ServerName favored_nodes = 2;
- }
-}
-
-message UpdateFavoredNodesResponse {
- optional uint32 response = 1;
-}
-
-/**
- * Merges the specified regions.
- * <p>
- * This method currently closes the regions and then merges them
- */
-message MergeRegionsRequest {
- required RegionSpecifier region_a = 1;
- required RegionSpecifier region_b = 2;
- optional bool forcible = 3 [default = false];
- // wall clock time from master
- optional uint64 master_system_time = 4;
-}
-
-message MergeRegionsResponse {
-}
-
-// Protocol buffer version of WAL for replication
-message WALEntry {
- required WALKey key = 1;
- // Following may be null if the KVs/Cells are carried along the side in a cellblock (See
- // RPC for more on cellblocks). If Cells/KVs are in a cellblock, this next field is null
- // and associated_cell_count has count of Cells associated w/ this WALEntry
- repeated bytes key_value_bytes = 2;
- // If Cell data is carried alongside in a cellblock, this is count of Cells in the cellblock.
- optional int32 associated_cell_count = 3;
-}
-
-/**
- * Replicates the given entries. The guarantee is that the given entries
- * will be durable on the slave cluster if this method returns without
- * any exception. hbase.replication has to be set to true for this to work.
- */
-message ReplicateWALEntryRequest {
- repeated WALEntry entry = 1;
- optional string replicationClusterId = 2;
- optional string sourceBaseNamespaceDirPath = 3;
- optional string sourceHFileArchiveDirPath = 4;
-}
-
-message ReplicateWALEntryResponse {
-}
-
-message RollWALWriterRequest {
-}
-
-/*
- * Roll request responses no longer include regions to flush
- * this list will always be empty when talking to a 1.0 server
- */
-message RollWALWriterResponse {
- // A list of encoded name of regions to flush
- repeated bytes region_to_flush = 1;
-}
-
-message StopServerRequest {
- required string reason = 1;
-}
-
-message StopServerResponse {
-}
-
-message GetServerInfoRequest {
-}
-
-message ServerInfo {
- required ServerName server_name = 1;
- optional uint32 webui_port = 2;
-}
-
-message GetServerInfoResponse {
- required ServerInfo server_info = 1;
-}
-
-message UpdateConfigurationRequest {
-}
-
-message UpdateConfigurationResponse {
-}
-
-service AdminService {
- rpc GetRegionInfo(GetRegionInfoRequest)
- returns(GetRegionInfoResponse);
-
- rpc GetStoreFile(GetStoreFileRequest)
- returns(GetStoreFileResponse);
-
- rpc GetOnlineRegion(GetOnlineRegionRequest)
- returns(GetOnlineRegionResponse);
-
- rpc OpenRegion(OpenRegionRequest)
- returns(OpenRegionResponse);
-
- rpc WarmupRegion(WarmupRegionRequest)
- returns(WarmupRegionResponse);
-
- rpc CloseRegion(CloseRegionRequest)
- returns(CloseRegionResponse);
-
- rpc FlushRegion(FlushRegionRequest)
- returns(FlushRegionResponse);
-
- rpc SplitRegion(SplitRegionRequest)
- returns(SplitRegionResponse);
-
- rpc CompactRegion(CompactRegionRequest)
- returns(CompactRegionResponse);
-
- rpc MergeRegions(MergeRegionsRequest)
- returns(MergeRegionsResponse);
-
- rpc ReplicateWALEntry(ReplicateWALEntryRequest)
- returns(ReplicateWALEntryResponse);
-
- rpc Replay(ReplicateWALEntryRequest)
- returns(ReplicateWALEntryResponse);
-
- rpc RollWALWriter(RollWALWriterRequest)
- returns(RollWALWriterResponse);
-
- rpc GetServerInfo(GetServerInfoRequest)
- returns(GetServerInfoResponse);
-
- rpc StopServer(StopServerRequest)
- returns(StopServerResponse);
-
- rpc UpdateFavoredNodes(UpdateFavoredNodesRequest)
- returns(UpdateFavoredNodesResponse);
-
- rpc UpdateConfiguration(UpdateConfigurationRequest)
- returns(UpdateConfigurationResponse);
-}
http://git-wip-us.apache.org/repos/asf/hbase/blob/128fc306/hbase-native-client/if/Aggregate.proto
----------------------------------------------------------------------
diff --git a/hbase-native-client/if/Aggregate.proto b/hbase-native-client/if/Aggregate.proto
deleted file mode 100644
index 4d32e70..0000000
--- a/hbase-native-client/if/Aggregate.proto
+++ /dev/null
@@ -1,63 +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 hbase.pb;
-
-option java_package = "org.apache.hadoop.hbase.protobuf.generated";
-option java_outer_classname = "AggregateProtos";
-option java_generic_services = true;
-option java_generate_equals_and_hash = true;
-option optimize_for = SPEED;
-
-import "Client.proto";
-
-message AggregateRequest {
- /** The request passed to the AggregateService consists of three parts
- * (1) the (canonical) classname of the ColumnInterpreter implementation
- * (2) the Scan query
- * (3) any bytes required to construct the ColumnInterpreter object
- * properly
- */
- required string interpreter_class_name = 1;
- required Scan scan = 2;
- optional bytes interpreter_specific_bytes = 3;
-}
-
-message AggregateResponse {
- /**
- * The AggregateService methods all have a response that either is a Pair
- * or a simple object. When it is a Pair both first_part and second_part
- * have defined values (and the second_part is not present in the response
- * when the response is not a pair). Refer to the AggregateImplementation
- * class for an overview of the AggregateResponse object constructions.
- */
- repeated bytes first_part = 1;
- optional bytes second_part = 2;
-}
-
-/** Refer to the AggregateImplementation class for an overview of the
- * AggregateService method implementations and their functionality.
- */
-service AggregateService {
- rpc GetMax (AggregateRequest) returns (AggregateResponse);
- rpc GetMin (AggregateRequest) returns (AggregateResponse);
- rpc GetSum (AggregateRequest) returns (AggregateResponse);
- rpc GetRowNum (AggregateRequest) returns (AggregateResponse);
- rpc GetAvg (AggregateRequest) returns (AggregateResponse);
- rpc GetStd (AggregateRequest) returns (AggregateResponse);
- rpc GetMedian (AggregateRequest) returns (AggregateResponse);
-}
http://git-wip-us.apache.org/repos/asf/hbase/blob/128fc306/hbase-native-client/if/Authentication.proto
----------------------------------------------------------------------
diff --git a/hbase-native-client/if/Authentication.proto b/hbase-native-client/if/Authentication.proto
deleted file mode 100644
index 2f64799..0000000
--- a/hbase-native-client/if/Authentication.proto
+++ /dev/null
@@ -1,82 +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 hbase.pb;
-
-option java_package = "org.apache.hadoop.hbase.protobuf.generated";
-option java_outer_classname = "AuthenticationProtos";
-option java_generic_services = true;
-option java_generate_equals_and_hash = true;
-option optimize_for = SPEED;
-
-message AuthenticationKey {
- required int32 id = 1;
- required int64 expiration_date = 2;
- required bytes key = 3;
-}
-
-
-message TokenIdentifier {
- enum Kind {
- HBASE_AUTH_TOKEN = 0;
- }
- required Kind kind = 1;
- required bytes username = 2;
- required int32 key_id = 3;
- optional int64 issue_date = 4;
- optional int64 expiration_date = 5;
- optional int64 sequence_number = 6;
-}
-
-
-// Serialization of the org.apache.hadoop.security.token.Token class
-// Note that this is a Hadoop class, so fields may change!
-message Token {
- // the TokenIdentifier in serialized form
- // Note: we can't use the protobuf directly because the Hadoop Token class
- // only stores the serialized bytes
- optional bytes identifier = 1;
- optional bytes password = 2;
- optional bytes service = 3;
-}
-
-
-// RPC request & response messages
-message GetAuthenticationTokenRequest {
-}
-
-message GetAuthenticationTokenResponse {
- optional Token token = 1;
-}
-
-message WhoAmIRequest {
-}
-
-message WhoAmIResponse {
- optional string username = 1;
- optional string auth_method = 2;
-}
-
-
-// RPC service
-service AuthenticationService {
- rpc GetAuthenticationToken(GetAuthenticationTokenRequest)
- returns (GetAuthenticationTokenResponse);
-
- rpc WhoAmI(WhoAmIRequest)
- returns (WhoAmIResponse);
-}
http://git-wip-us.apache.org/repos/asf/hbase/blob/128fc306/hbase-native-client/if/BUCK
----------------------------------------------------------------------
diff --git a/hbase-native-client/if/BUCK b/hbase-native-client/if/BUCK
deleted file mode 100644
index 1a9721d..0000000
--- a/hbase-native-client/if/BUCK
+++ /dev/null
@@ -1,48 +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.
-
-PROTO_SRCS = glob(['*.proto'])
-HEADER_FILENAMES = [x.replace('.proto', '.pb.h') for x in PROTO_SRCS]
-CC_FILENAMES = [x.replace('.proto', '.pb.cc') for x in PROTO_SRCS]
-
-genrule(
- name='generate-proto-sources',
- srcs=PROTO_SRCS,
- cmd='mkdir -p $OUT && pwd && protoc --proto_path=. --cpp_out=$OUT *.proto',
- out='output', )
-
-for header_filename in HEADER_FILENAMES:
- genrule(name=header_filename,
- cmd='mkdir -p `dirname $OUT` '
- ' && cp $(location :generate-proto-sources)/{} $OUT'.format(
- header_filename),
- out=header_filename, )
-for cc_filename in CC_FILENAMES:
- genrule(
- name=cc_filename,
- cmd='mkdir -p `dirname $OUT` '
- ' && cp $(location :generate-proto-sources)/*.cc `dirname $OUT` '
- ' && cp $(location :generate-proto-sources)/*.h `dirname $OUT`'.format(
- cc_filename),
- out=cc_filename, )
-
-cxx_library(name='if',
- exported_headers=[':' + x for x in HEADER_FILENAMES],
- srcs=[':' + x for x in CC_FILENAMES],
- deps=['//third-party:protobuf'],
- visibility=['PUBLIC', ],
- exported_deps=['//third-party:protobuf'])
http://git-wip-us.apache.org/repos/asf/hbase/blob/128fc306/hbase-native-client/if/Cell.proto
----------------------------------------------------------------------
diff --git a/hbase-native-client/if/Cell.proto b/hbase-native-client/if/Cell.proto
deleted file mode 100644
index 2c61035..0000000
--- a/hbase-native-client/if/Cell.proto
+++ /dev/null
@@ -1,67 +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.
- */
-
-// Cell and KeyValue protos
-package hbase.pb;
-
-option java_package = "org.apache.hadoop.hbase.protobuf.generated";
-option java_outer_classname = "CellProtos";
-option java_generate_equals_and_hash = true;
-option optimize_for = SPEED;
-
-/**
- * The type of the key in a Cell
- */
-enum CellType {
- MINIMUM = 0;
- PUT = 4;
-
- DELETE = 8;
- DELETE_COLUMN = 12;
- DELETE_FAMILY = 14;
-
- // MAXIMUM is used when searching; you look from maximum on down.
- MAXIMUM = 255;
-}
-
-/**
- * Protocol buffer version of Cell.
- */
-message Cell {
- optional bytes row = 1;
- optional bytes family = 2;
- optional bytes qualifier = 3;
- optional uint64 timestamp = 4;
- optional CellType cell_type = 5;
- optional bytes value = 6;
- optional bytes tags = 7;
-}
-
-/**
- * Protocol buffer version of KeyValue.
- * It doesn't have those transient parameters
- */
-message KeyValue {
- required bytes row = 1;
- required bytes family = 2;
- required bytes qualifier = 3;
- optional uint64 timestamp = 4;
- optional CellType key_type = 5;
- optional bytes value = 6;
- optional bytes tags = 7;
-}
http://git-wip-us.apache.org/repos/asf/hbase/blob/128fc306/hbase-native-client/if/Client.proto
----------------------------------------------------------------------
diff --git a/hbase-native-client/if/Client.proto b/hbase-native-client/if/Client.proto
deleted file mode 100644
index 8a4d459..0000000
--- a/hbase-native-client/if/Client.proto
+++ /dev/null
@@ -1,478 +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.
- */
-
-// This file contains protocol buffers that are used for Client service.
-package hbase.pb;
-
-option java_package = "org.apache.hadoop.hbase.protobuf.generated";
-option java_outer_classname = "ClientProtos";
-option java_generic_services = true;
-option java_generate_equals_and_hash = true;
-option optimize_for = SPEED;
-
-import "HBase.proto";
-import "Filter.proto";
-import "Cell.proto";
-import "Comparator.proto";
-import "MapReduce.proto";
-
-/**
- * The protocol buffer version of Authorizations.
- */
-message Authorizations {
- repeated string label = 1;
-}
-
-/**
- * The protocol buffer version of CellVisibility.
- */
-message CellVisibility {
- required string expression = 1;
-}
-
-/**
- * Container for a list of column qualifier names of a family.
- */
-message Column {
- required bytes family = 1;
- repeated bytes qualifier = 2;
-}
-
-/**
- * Consistency defines the expected consistency level for an operation.
- */
-enum Consistency {
- STRONG = 0;
- TIMELINE = 1;
-}
-
-/**
- * The protocol buffer version of Get.
- * Unless existence_only is specified, return all the requested data
- * for the row that matches exactly.
- */
-message Get {
- required bytes row = 1;
- repeated Column column = 2;
- repeated NameBytesPair attribute = 3;
- optional Filter filter = 4;
- optional TimeRange time_range = 5;
- optional uint32 max_versions = 6 [default = 1];
- optional bool cache_blocks = 7 [default = true];
- optional uint32 store_limit = 8;
- optional uint32 store_offset = 9;
-
- // The result isn't asked for, just check for
- // the existence.
- optional bool existence_only = 10 [default = false];
-
- optional Consistency consistency = 12 [default = STRONG];
- repeated ColumnFamilyTimeRange cf_time_range = 13;
-}
-
-message Result {
- // Result includes the Cells or else it just has a count of Cells
- // that are carried otherwise.
- repeated Cell cell = 1;
- // The below count is set when the associated cells are
- // not part of this protobuf message; they are passed alongside
- // and then this Message is just a placeholder with metadata.
- // The count is needed to know how many to peel off the block of Cells as
- // ours. NOTE: This is different from the pb managed cell_count of the
- // 'cell' field above which is non-null when the cells are pb'd.
- optional int32 associated_cell_count = 2;
-
- // used for Get to check existence only. Not set if existence_only was not set to true
- // in the query.
- optional bool exists = 3;
-
- // Whether or not the results are coming from possibly stale data
- optional bool stale = 4 [default = false];
-
- // Whether or not the entire result could be returned. Results will be split when
- // the RPC chunk size limit is reached. Partial results contain only a subset of the
- // cells for a row and must be combined with a result containing the remaining cells
- // to form a complete result
- optional bool partial = 5 [default = false];
-}
-
-/**
- * The get request. Perform a single Get operation.
- */
-message GetRequest {
- required RegionSpecifier region = 1;
- required Get get = 2;
-}
-
-message GetResponse {
- optional Result result = 1;
-}
-
-/**
- * Condition to check if the value of a given cell (row,
- * family, qualifier) matches a value via a given comparator.
- *
- * Condition is used in check and mutate operations.
- */
-message Condition {
- required bytes row = 1;
- required bytes family = 2;
- required bytes qualifier = 3;
- required CompareType compare_type = 4;
- required Comparator comparator = 5;
-}
-
-
-/**
- * A specific mutation inside a mutate request.
- * It can be an append, increment, put or delete based
- * on the mutation type. It can be fully filled in or
- * only metadata present because data is being carried
- * elsewhere outside of pb.
- */
-message MutationProto {
- optional bytes row = 1;
- optional MutationType mutate_type = 2;
- repeated ColumnValue column_value = 3;
- optional uint64 timestamp = 4;
- repeated NameBytesPair attribute = 5;
- optional Durability durability = 6 [default = USE_DEFAULT];
-
- // For some mutations, a result may be returned, in which case,
- // time range can be specified for potential performance gain
- optional TimeRange time_range = 7;
- // The below count is set when the associated cells are NOT
- // part of this protobuf message; they are passed alongside
- // and then this Message is a placeholder with metadata. The
- // count is needed to know how many to peel off the block of Cells as
- // ours. NOTE: This is different from the pb managed cell_count of the
- // 'cell' field above which is non-null when the cells are pb'd.
- optional int32 associated_cell_count = 8;
-
- optional uint64 nonce = 9;
-
- enum Durability {
- USE_DEFAULT = 0;
- SKIP_WAL = 1;
- ASYNC_WAL = 2;
- SYNC_WAL = 3;
- FSYNC_WAL = 4;
- }
-
- enum MutationType {
- APPEND = 0;
- INCREMENT = 1;
- PUT = 2;
- DELETE = 3;
- }
-
- enum DeleteType {
- DELETE_ONE_VERSION = 0;
- DELETE_MULTIPLE_VERSIONS = 1;
- DELETE_FAMILY = 2;
- DELETE_FAMILY_VERSION = 3;
- }
-
- message ColumnValue {
- required bytes family = 1;
- repeated QualifierValue qualifier_value = 2;
-
- message QualifierValue {
- optional bytes qualifier = 1;
- optional bytes value = 2;
- optional uint64 timestamp = 3;
- optional DeleteType delete_type = 4;
- optional bytes tags = 5;
- }
- }
-}
-
-/**
- * The mutate request. Perform a single Mutate operation.
- *
- * Optionally, you can specify a condition. The mutate
- * will take place only if the condition is met. Otherwise,
- * the mutate will be ignored. In the response result,
- * parameter processed is used to indicate if the mutate
- * actually happened.
- */
-message MutateRequest {
- required RegionSpecifier region = 1;
- required MutationProto mutation = 2;
- optional Condition condition = 3;
- optional uint64 nonce_group = 4;
-}
-
-message MutateResponse {
- optional Result result = 1;
-
- // used for mutate to indicate processed only
- optional bool processed = 2;
-}
-
-/**
- * Instead of get from a table, you can scan it with optional filters.
- * You can specify the row key range, time range, the columns/families
- * to scan and so on.
- *
- * This scan is used the first time in a scan request. The response of
- * the initial scan will return a scanner id, which should be used to
- * fetch result batches later on before it is closed.
- */
-message Scan {
- repeated Column column = 1;
- repeated NameBytesPair attribute = 2;
- optional bytes start_row = 3;
- optional bytes stop_row = 4;
- optional Filter filter = 5;
- optional TimeRange time_range = 6;
- optional uint32 max_versions = 7 [default = 1];
- optional bool cache_blocks = 8 [default = true];
- optional uint32 batch_size = 9;
- optional uint64 max_result_size = 10;
- optional uint32 store_limit = 11;
- optional uint32 store_offset = 12;
- optional bool load_column_families_on_demand = 13; /* DO NOT add defaults to load_column_families_on_demand. */
- optional bool small = 14;
- optional bool reversed = 15 [default = false];
- optional Consistency consistency = 16 [default = STRONG];
- optional uint32 caching = 17;
- optional bool allow_partial_results = 18;
- repeated ColumnFamilyTimeRange cf_time_range = 19;
-}
-
-/**
- * A scan request. Initially, it should specify a scan. Later on, you
- * can use the scanner id returned to fetch result batches with a different
- * scan request.
- *
- * The scanner will remain open if there are more results, and it's not
- * asked to be closed explicitly.
- *
- * You can fetch the results and ask the scanner to be closed to save
- * a trip if you are not interested in remaining results.
- */
-message ScanRequest {
- optional RegionSpecifier region = 1;
- optional Scan scan = 2;
- optional uint64 scanner_id = 3;
- optional uint32 number_of_rows = 4;
- optional bool close_scanner = 5;
- optional uint64 next_call_seq = 6;
- optional bool client_handles_partials = 7;
- optional bool client_handles_heartbeats = 8;
- optional bool track_scan_metrics = 9;
- optional bool renew = 10 [default = false];
-}
-
-/**
- * The scan response. If there are no more results, more_results will
- * be false. If it is not specified, it means there are more.
- */
-message ScanResponse {
- // This field is filled in if we are doing cellblocks. A cellblock is made up
- // of all Cells serialized out as one cellblock BUT responses from a server
- // have their Cells grouped by Result. So we can reconstitute the
- // Results on the client-side, this field is a list of counts of Cells
- // in each Result that makes up the response. For example, if this field
- // has 3, 3, 3 in it, then we know that on the client, we are to make
- // three Results each of three Cells each.
- repeated uint32 cells_per_result = 1;
-
- optional uint64 scanner_id = 2;
- optional bool more_results = 3;
- optional uint32 ttl = 4;
- // If cells are not carried in an accompanying cellblock, then they are pb'd here.
- // This field is mutually exclusive with cells_per_result (since the Cells will
- // be inside the pb'd Result)
- repeated Result results = 5;
- optional bool stale = 6;
-
- // This field is filled in if we are doing cellblocks. In the event that a row
- // could not fit all of its cells into a single RPC chunk, the results will be
- // returned as partials, and reconstructed into a complete result on the client
- // side. This field is a list of flags indicating whether or not the result
- // that the cells belong to is a partial result. For example, if this field
- // has false, false, true in it, then we know that on the client side, we need to
- // make another RPC request since the last result was only a partial.
- repeated bool partial_flag_per_result = 7;
-
- // A server may choose to limit the number of results returned to the client for
- // reasons such as the size in bytes or quantity of results accumulated. This field
- // will true when more results exist in the current region.
- optional bool more_results_in_region = 8;
-
- // This field is filled in if the server is sending back a heartbeat message.
- // Heartbeat messages are sent back to the client to prevent the scanner from
- // timing out. Seeing a heartbeat message communicates to the Client that the
- // server would have continued to scan had the time limit not been reached.
- optional bool heartbeat_message = 9;
-
- // This field is filled in if the client has requested that scan metrics be tracked.
- // The metrics tracked here are sent back to the client to be tracked together with
- // the existing client side metrics.
- optional ScanMetrics scan_metrics = 10;
-}
-
-/**
- * Atomically bulk load multiple HFiles (say from different column families)
- * into an open region.
- */
-message BulkLoadHFileRequest {
- required RegionSpecifier region = 1;
- repeated FamilyPath family_path = 2;
- optional bool assign_seq_num = 3;
-
- message FamilyPath {
- required bytes family = 1;
- required string path = 2;
- }
-}
-
-message BulkLoadHFileResponse {
- required bool loaded = 1;
-}
-
-message CoprocessorServiceCall {
- required bytes row = 1;
- required string service_name = 2;
- required string method_name = 3;
- required bytes request = 4;
-}
-
-message CoprocessorServiceResult {
- optional NameBytesPair value = 1;
-}
-
-message CoprocessorServiceRequest {
- required RegionSpecifier region = 1;
- required CoprocessorServiceCall call = 2;
-}
-
-message CoprocessorServiceResponse {
- required RegionSpecifier region = 1;
- required NameBytesPair value = 2;
-}
-
-// Either a Get or a Mutation
-message Action {
- // If part of a multi action, useful aligning
- // result with what was originally submitted.
- optional uint32 index = 1;
- optional MutationProto mutation = 2;
- optional Get get = 3;
- optional CoprocessorServiceCall service_call = 4;
-}
-
-/**
- * Actions to run against a Region.
- */
-message RegionAction {
- required RegionSpecifier region = 1;
- // When set, run mutations as atomic unit.
- optional bool atomic = 2;
- repeated Action action = 3;
-}
-
-/*
-* Statistics about the current load on the region
-*/
-message RegionLoadStats {
- // Percent load on the memstore. Guaranteed to be positive, between 0 and 100.
- optional int32 memstoreLoad = 1 [default = 0];
- // Percent JVM heap occupancy. Guaranteed to be positive, between 0 and 100.
- // We can move this to "ServerLoadStats" should we develop them.
- optional int32 heapOccupancy = 2 [default = 0];
- // Compaction pressure. Guaranteed to be positive, between 0 and 100.
- optional int32 compactionPressure = 3 [default = 0];
-}
-
-message MultiRegionLoadStats{
- repeated RegionSpecifier region = 1;
- repeated RegionLoadStats stat = 2;
-}
-
-/**
- * Either a Result or an Exception NameBytesPair (keyed by
- * exception name whose value is the exception stringified)
- * or maybe empty if no result and no exception.
- */
-message ResultOrException {
- // If part of a multi call, save original index of the list of all
- // passed so can align this response w/ original request.
- optional uint32 index = 1;
- optional Result result = 2;
- optional NameBytesPair exception = 3;
- // result if this was a coprocessor service call
- optional CoprocessorServiceResult service_result = 4;
- // current load on the region
- optional RegionLoadStats loadStats = 5 [deprecated=true];
-}
-
-/**
- * The result of a RegionAction.
- */
-message RegionActionResult {
- repeated ResultOrException resultOrException = 1;
- // If the operation failed globally for this region, this exception is set
- optional NameBytesPair exception = 2;
-}
-
-/**
- * Execute a list of actions on a given region in order.
- * Nothing prevents a request to contains a set of RegionAction on the same region.
- * For this reason, the matching between the MultiRequest and the MultiResponse is not
- * done by the region specifier but by keeping the order of the RegionActionResult vs.
- * the order of the RegionAction.
- */
-message MultiRequest {
- repeated RegionAction regionAction = 1;
- optional uint64 nonceGroup = 2;
- optional Condition condition = 3;
-}
-
-message MultiResponse {
- repeated RegionActionResult regionActionResult = 1;
- // used for mutate to indicate processed only
- optional bool processed = 2;
- optional MultiRegionLoadStats regionStatistics = 3;
-}
-
-
-service ClientService {
- rpc Get(GetRequest)
- returns(GetResponse);
-
- rpc Mutate(MutateRequest)
- returns(MutateResponse);
-
- rpc Scan(ScanRequest)
- returns(ScanResponse);
-
- rpc BulkLoadHFile(BulkLoadHFileRequest)
- returns(BulkLoadHFileResponse);
-
- rpc ExecService(CoprocessorServiceRequest)
- returns(CoprocessorServiceResponse);
-
- rpc ExecRegionServerService(CoprocessorServiceRequest)
- returns(CoprocessorServiceResponse);
-
- rpc Multi(MultiRequest)
- returns(MultiResponse);
-}
http://git-wip-us.apache.org/repos/asf/hbase/blob/128fc306/hbase-native-client/if/ClusterId.proto
----------------------------------------------------------------------
diff --git a/hbase-native-client/if/ClusterId.proto b/hbase-native-client/if/ClusterId.proto
deleted file mode 100644
index aed8cfc..0000000
--- a/hbase-native-client/if/ClusterId.proto
+++ /dev/null
@@ -1,34 +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.
- */
-
-// This file contains protocol buffers that are shared throughout HBase
-package hbase.pb;
-
-option java_package = "org.apache.hadoop.hbase.protobuf.generated";
-option java_outer_classname = "ClusterIdProtos";
-option java_generate_equals_and_hash = true;
-option optimize_for = SPEED;
-
-/**
- * Content of the '/hbase/hbaseid', cluster id, znode.
- * Also cluster of the ${HBASE_ROOTDIR}/hbase.id file.
- */
-message ClusterId {
- // This is the cluster id, a uuid as a String
- required string cluster_id = 1;
-}
http://git-wip-us.apache.org/repos/asf/hbase/blob/128fc306/hbase-native-client/if/ClusterStatus.proto
----------------------------------------------------------------------
diff --git a/hbase-native-client/if/ClusterStatus.proto b/hbase-native-client/if/ClusterStatus.proto
deleted file mode 100644
index 54bc0c3..0000000
--- a/hbase-native-client/if/ClusterStatus.proto
+++ /dev/null
@@ -1,227 +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.
- */
-
-// This file contains protocol buffers that are used for ClustStatus
-package hbase.pb;
-
-option java_package = "org.apache.hadoop.hbase.protobuf.generated";
-option java_outer_classname = "ClusterStatusProtos";
-option java_generate_equals_and_hash = true;
-option optimize_for = SPEED;
-
-import "HBase.proto";
-import "ClusterId.proto";
-import "FS.proto";
-
-message RegionState {
- required RegionInfo region_info = 1;
- required State state = 2;
- optional uint64 stamp = 3;
- enum State {
- OFFLINE = 0; // region is in an offline state
- PENDING_OPEN = 1; // sent rpc to server to open but has not begun
- OPENING = 2; // server has begun to open but not yet done
- OPEN = 3; // server opened region and updated meta
- PENDING_CLOSE = 4; // sent rpc to server to close but has not begun
- CLOSING = 5; // server has begun to close but not yet done
- CLOSED = 6; // server closed region and updated meta
- SPLITTING = 7; // server started split of a region
- SPLIT = 8; // server completed split of a region
- FAILED_OPEN = 9; // failed to open, and won't retry any more
- FAILED_CLOSE = 10; // failed to close, and won't retry any more
- MERGING = 11; // server started merge a region
- MERGED = 12; // server completed merge of a region
- SPLITTING_NEW = 13; // new region to be created when RS splits a parent
- // region but hasn't be created yet, or master doesn't
- // know it's already created
- MERGING_NEW = 14; // new region to be created when RS merges two
- // daughter regions but hasn't be created yet, or
- // master doesn't know it's already created
- }
-}
-
-message RegionInTransition {
- required RegionSpecifier spec = 1;
- required RegionState region_state = 2;
-}
-
-/**
- * sequence Id of a store
- */
-message StoreSequenceId {
- required bytes family_name = 1;
- required uint64 sequence_id = 2;
-}
-
-/**
- * contains a sequence id of a region which should be the minimum of its store sequence ids and
- * list of sequence ids of the region's stores
- */
-message RegionStoreSequenceIds {
- required uint64 last_flushed_sequence_id = 1;
- repeated StoreSequenceId store_sequence_id = 2;
-}
-
-message RegionLoad {
- /** the region specifier */
- required RegionSpecifier region_specifier = 1;
-
- /** the number of stores for the region */
- optional uint32 stores = 2;
-
- /** the number of storefiles for the region */
- optional uint32 storefiles = 3;
-
- /** the total size of the store files for the region, uncompressed, in MB */
- optional uint32 store_uncompressed_size_MB = 4;
-
- /** the current total size of the store files for the region, in MB */
- optional uint32 storefile_size_MB = 5;
-
- /** the current size of the memstore for the region, in MB */
- optional uint32 memstore_size_MB = 6;
-
- /**
- * The current total size of root-level store file indexes for the region,
- * in MB. The same as {@link #rootIndexSizeKB} but in MB.
- */
- optional uint32 storefile_index_size_MB = 7;
-
- /** the current total read requests made to region */
- optional uint64 read_requests_count = 8;
-
- /** the current total write requests made to region */
- optional uint64 write_requests_count = 9;
-
- /** the total compacting key values in currently running compaction */
- optional uint64 total_compacting_KVs = 10;
-
- /** the completed count of key values in currently running compaction */
- optional uint64 current_compacted_KVs = 11;
-
- /** The current total size of root-level indexes for the region, in KB. */
- optional uint32 root_index_size_KB = 12;
-
- /** The total size of all index blocks, not just the root level, in KB. */
- optional uint32 total_static_index_size_KB = 13;
-
- /**
- * The total size of all Bloom filter blocks, not just loaded into the
- * block cache, in KB.
- */
- optional uint32 total_static_bloom_size_KB = 14;
-
- /** the most recent sequence Id from cache flush */
- optional uint64 complete_sequence_id = 15;
-
- /** The current data locality for region in the regionserver */
- optional float data_locality = 16;
-
- optional uint64 last_major_compaction_ts = 17 [default = 0];
-
- /** the most recent sequence Id of store from cache flush */
- repeated StoreSequenceId store_complete_sequence_id = 18;
-
- /** the current total filtered read requests made to region */
- optional uint64 filtered_read_requests_count = 19;
-}
-
-/* Server-level protobufs */
-
-message ReplicationLoadSink {
- required uint64 ageOfLastAppliedOp = 1;
- required uint64 timeStampsOfLastAppliedOp = 2;
-}
-
-message ReplicationLoadSource {
- required string peerID = 1;
- required uint64 ageOfLastShippedOp = 2;
- required uint32 sizeOfLogQueue = 3;
- required uint64 timeStampOfLastShippedOp = 4;
- required uint64 replicationLag = 5;
-}
-
-message ServerLoad {
- /** Number of requests since last report. */
- optional uint64 number_of_requests = 1;
-
- /** Total Number of requests from the start of the region server. */
- optional uint64 total_number_of_requests = 2;
-
- /** the amount of used heap, in MB. */
- optional uint32 used_heap_MB = 3;
-
- /** the maximum allowable size of the heap, in MB. */
- optional uint32 max_heap_MB = 4;
-
- /** Information on the load of individual regions. */
- repeated RegionLoad region_loads = 5;
-
- /**
- * Regionserver-level coprocessors, e.g., WALObserver implementations.
- * Region-level coprocessors, on the other hand, are stored inside RegionLoad
- * objects.
- */
- repeated Coprocessor coprocessors = 6;
-
- /**
- * Time when incremental (non-total) counts began being calculated (e.g. number_of_requests)
- * time is measured as the difference, measured in milliseconds, between the current time
- * and midnight, January 1, 1970 UTC.
- */
- optional uint64 report_start_time = 7;
-
- /**
- * Time when report was generated.
- * time is measured as the difference, measured in milliseconds, between the current time
- * and midnight, January 1, 1970 UTC.
- */
- optional uint64 report_end_time = 8;
-
- /**
- * The port number that this region server is hosing an info server on.
- */
- optional uint32 info_server_port = 9;
-
- /**
- * The replicationLoadSource for the replication Source status of this region server.
- */
- repeated ReplicationLoadSource replLoadSource = 10;
-
- /**
- * The replicationLoadSink for the replication Sink status of this region server.
- */
- optional ReplicationLoadSink replLoadSink = 11;
-}
-
-message LiveServerInfo {
- required ServerName server = 1;
- required ServerLoad server_load = 2;
-}
-
-message ClusterStatus {
- optional HBaseVersionFileContent hbase_version = 1;
- repeated LiveServerInfo live_servers = 2;
- repeated ServerName dead_servers = 3;
- repeated RegionInTransition regions_in_transition = 4;
- optional ClusterId cluster_id = 5;
- repeated Coprocessor master_coprocessors = 6;
- optional ServerName master = 7;
- repeated ServerName backup_masters = 8;
- optional bool balancer_on = 9;
-}