You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by ad...@apache.org on 2018/11/02 21:07:22 UTC
kudu git commit: move HashAlgorithm from common.proto to hash.proto
Repository: kudu
Updated Branches:
refs/heads/master 137775bdd -> 6548ea5b2
move HashAlgorithm from common.proto to hash.proto
Commit 8af288a26 added a dependency from the bloom filter code onto common,
creating a circular dependency. Normally that's caught by cmake, but the
commit didn't actually establish the util->common dependency in cmake, which
meant that the underlying parallelism of the build (and whether it was a
clean or incremental build) dictated whether common.pb.h was present on-disk
at the time that bloom_filter.h was included.
This patch resolves the circular dependency by moving the HashAlgorithm enum
out of common.proto and into a new hash.proto within util. An alternative
would be to move the bloom filter code itself into common, but as it isn't
specific to Kudu, I think util is a better home for it.
Change-Id: I2b0a4077335de75dfed6aa1c6d78d9e197250976
Reviewed-on: http://gerrit.cloudera.org:8080/11865
Reviewed-by: Grant Henke <gr...@apache.org>
Reviewed-by: Andrew Wong <aw...@cloudera.com>
Tested-by: Adar Dembo <ad...@cloudera.com>
Project: http://git-wip-us.apache.org/repos/asf/kudu/repo
Commit: http://git-wip-us.apache.org/repos/asf/kudu/commit/6548ea5b
Tree: http://git-wip-us.apache.org/repos/asf/kudu/tree/6548ea5b
Diff: http://git-wip-us.apache.org/repos/asf/kudu/diff/6548ea5b
Branch: refs/heads/master
Commit: 6548ea5b22dee052cee80f328f1afdbdf0ab15f4
Parents: 137775b
Author: Adar Dembo <ad...@cloudera.com>
Authored: Fri Nov 2 11:45:16 2018 -0700
Committer: Adar Dembo <ad...@cloudera.com>
Committed: Fri Nov 2 21:06:57 2018 +0000
----------------------------------------------------------------------
src/kudu/common/CMakeLists.txt | 8 ++++----
src/kudu/common/common.proto | 8 +-------
src/kudu/util/CMakeLists.txt | 29 ++++++++++++++++++++++-------
src/kudu/util/bloom_filter.h | 2 +-
src/kudu/util/hash.proto | 27 +++++++++++++++++++++++++++
5 files changed, 55 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/kudu/blob/6548ea5b/src/kudu/common/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/src/kudu/common/CMakeLists.txt b/src/kudu/common/CMakeLists.txt
index 1517f19..fd8d64f 100644
--- a/src/kudu/common/CMakeLists.txt
+++ b/src/kudu/common/CMakeLists.txt
@@ -22,7 +22,7 @@ PROTOBUF_GENERATE_CPP(
PROTO_FILES common.proto)
ADD_EXPORTABLE_LIBRARY(kudu_common_proto
SRCS ${COMMON_PROTO_SRCS}
- DEPS pb_util_proto protobuf util_compression_proto
+ DEPS hash_proto pb_util_proto protobuf util_compression_proto
NONLINK_DEPS ${COMMON_PROTO_TGTS})
PROTOBUF_GENERATE_CPP(
@@ -68,11 +68,11 @@ if ("${COMPILER_FAMILY}" STREQUAL "clang")
endif()
set(COMMON_LIBS
- kudu_common_proto
consensus_metadata_proto
- wire_protocol_proto
+ gutil
+ kudu_common_proto
kudu_util
- gutil)
+ wire_protocol_proto)
ADD_EXPORTABLE_LIBRARY(kudu_common
SRCS ${COMMON_SRCS}
http://git-wip-us.apache.org/repos/asf/kudu/blob/6548ea5b/src/kudu/common/common.proto
----------------------------------------------------------------------
diff --git a/src/kudu/common/common.proto b/src/kudu/common/common.proto
index f0e9a33..ceb281d 100644
--- a/src/kudu/common/common.proto
+++ b/src/kudu/common/common.proto
@@ -29,6 +29,7 @@ package kudu;
option java_package = "org.apache.kudu";
import "kudu/util/compression/compression.proto";
+import "kudu/util/hash.proto";
import "kudu/util/pb_util.proto";
// If you add a new type keep in mind to add it to the end
@@ -285,13 +286,6 @@ enum ReplicaSelection {
CLOSEST_REPLICA = 2;
}
-// The hash algorithm used in bloom filter and hash bucket.
-enum HashAlgorithm {
- UNKNOWN_HASH = 0;
- MURMUR_HASH_2 = 1;
- CITY_HASH = 2;
-}
-
// The serialized format of a Kudu table partition schema.
message PartitionSchemaPB {
http://git-wip-us.apache.org/repos/asf/kudu/blob/6548ea5b/src/kudu/util/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/src/kudu/util/CMakeLists.txt b/src/kudu/util/CMakeLists.txt
index 105b7ff..bf66dd8 100644
--- a/src/kudu/util/CMakeLists.txt
+++ b/src/kudu/util/CMakeLists.txt
@@ -30,6 +30,20 @@ ADD_EXPORTABLE_LIBRARY(util_compression_proto
NONLINK_DEPS ${UTIL_COMPRESSION_PROTO_TGTS})
#######################################
+# hash_proto
+#######################################
+
+PROTOBUF_GENERATE_CPP(
+ HASH_PROTO_SRCS HASH_PROTO_HDRS HASH_PROTO_TGTS
+ SOURCE_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/../..
+ BINARY_ROOT ${CMAKE_CURRENT_BINARY_DIR}/../..
+ PROTO_FILES hash.proto)
+ADD_EXPORTABLE_LIBRARY(hash_proto
+ SRCS ${HASH_PROTO_SRCS}
+ DEPS protobuf
+ NONLINK_DEPS ${HASH_PROTO_TGTS})
+
+#######################################
# histogram_proto
#######################################
@@ -48,14 +62,14 @@ ADD_EXPORTABLE_LIBRARY(histogram_proto
#######################################
PROTOBUF_GENERATE_CPP(
- MAINTENANCE_MANAGER_PROTO_SRCS MAINTENANCE_MANAGER_PROTO_HDRS MAINTENANCE_MANAGER_PROTO_TGTS
- SOURCE_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/../..
- BINARY_ROOT ${CMAKE_CURRENT_BINARY_DIR}/../..
- PROTO_FILES maintenance_manager.proto)
+ MAINTENANCE_MANAGER_PROTO_SRCS MAINTENANCE_MANAGER_PROTO_HDRS MAINTENANCE_MANAGER_PROTO_TGTS
+ SOURCE_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/../..
+ BINARY_ROOT ${CMAKE_CURRENT_BINARY_DIR}/../..
+ PROTO_FILES maintenance_manager.proto)
ADD_EXPORTABLE_LIBRARY(maintenance_manager_proto
- SRCS ${MAINTENANCE_MANAGER_PROTO_SRCS}
- DEPS protobuf
- NONLINK_DEPS ${MAINTENANCE_MANAGER_PROTO_TGTS})
+ SRCS ${MAINTENANCE_MANAGER_PROTO_SRCS}
+ DEPS protobuf
+ NONLINK_DEPS ${MAINTENANCE_MANAGER_PROTO_TGTS})
#######################################
# pb_util_proto
@@ -220,6 +234,7 @@ set(UTIL_LIBS
gflags
glog
gutil
+ hash_proto
histogram_proto
libev
maintenance_manager_proto
http://git-wip-us.apache.org/repos/asf/kudu/blob/6548ea5b/src/kudu/util/bloom_filter.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/bloom_filter.h b/src/kudu/util/bloom_filter.h
index 0905fda..d395646 100644
--- a/src/kudu/util/bloom_filter.h
+++ b/src/kudu/util/bloom_filter.h
@@ -20,12 +20,12 @@
#include <cstddef>
#include <cstdint>
-#include "kudu/common/common.pb.h"
#include "kudu/gutil/gscoped_ptr.h"
#include "kudu/gutil/hash/city.h"
#include "kudu/gutil/macros.h"
#include "kudu/gutil/port.h"
#include "kudu/util/bitmap.h"
+#include "kudu/util/hash.pb.h"
#include "kudu/util/hash_util.h"
#include "kudu/util/slice.h"
http://git-wip-us.apache.org/repos/asf/kudu/blob/6548ea5b/src/kudu/util/hash.proto
----------------------------------------------------------------------
diff --git a/src/kudu/util/hash.proto b/src/kudu/util/hash.proto
new file mode 100644
index 0000000..8a4ea28
--- /dev/null
+++ b/src/kudu/util/hash.proto
@@ -0,0 +1,27 @@
+// 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.
+syntax = "proto2";
+package kudu;
+
+option java_package = "org.apache.kudu";
+
+// Implemented hash algorithms.
+enum HashAlgorithm {
+ UNKNOWN_HASH = 0;
+ MURMUR_HASH_2 = 1;
+ CITY_HASH = 2;
+}