You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by al...@apache.org on 2017/08/21 21:03:53 UTC

[06/14] kudu git commit: [iwyu] first pass

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/security/tls_socket.h
----------------------------------------------------------------------
diff --git a/src/kudu/security/tls_socket.h b/src/kudu/security/tls_socket.h
index dec55ec..761e5a5 100644
--- a/src/kudu/security/tls_socket.h
+++ b/src/kudu/security/tls_socket.h
@@ -17,12 +17,16 @@
 
 #pragma once
 
-#include "kudu/security/openssl_util.h"
+#include <cstdint>
+#include <memory>
+
+#include "kudu/gutil/port.h"
+#include "kudu/security/openssl_util.h" // IWYU pragma: keep
 #include "kudu/util/net/socket.h"
 #include "kudu/util/status.h"
 
-struct ssl_st;
-typedef ssl_st SSL;
+struct iovec;
+typedef struct ssl_st SSL;
 
 namespace kudu {
 namespace security {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/security/token-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/security/token-test.cc b/src/kudu/security/token-test.cc
index 564587e..173b81b 100644
--- a/src/kudu/security/token-test.cc
+++ b/src/kudu/security/token-test.cc
@@ -27,6 +27,8 @@
 #include "kudu/security/token_signer.h"
 #include "kudu/security/token_signing_key.h"
 #include "kudu/security/token_verifier.h"
+#include "kudu/util/make_shared.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 DECLARE_int32(tsk_num_rsa_bits);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/security/token_signer.cc
----------------------------------------------------------------------
diff --git a/src/kudu/security/token_signer.cc b/src/kudu/security/token_signer.cc
index a60d116..fd1f017 100644
--- a/src/kudu/security/token_signer.cc
+++ b/src/kudu/security/token_signer.cc
@@ -18,6 +18,7 @@
 #include "kudu/security/token_signer.h"
 
 #include <algorithm>
+#include <cstdint>
 #include <map>
 #include <memory>
 #include <mutex>
@@ -26,10 +27,12 @@
 #include <vector>
 
 #include <gflags/gflags.h>
+#include <glog/logging.h>
 
+#include "kudu/gutil/integral_types.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/gutil/walltime.h"
-#include "kudu/security/openssl_util.h"
+#include "kudu/security/crypto.h"
 #include "kudu/security/token.pb.h"
 #include "kudu/security/token_signing_key.h"
 #include "kudu/security/token_verifier.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/security/token_signer.h
----------------------------------------------------------------------
diff --git a/src/kudu/security/token_signer.h b/src/kudu/security/token_signer.h
index 3714b90..df1e3eb 100644
--- a/src/kudu/security/token_signer.h
+++ b/src/kudu/security/token_signer.h
@@ -25,6 +25,7 @@
 #include <gtest/gtest_prod.h>
 
 #include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
 #include "kudu/util/rw_mutex.h"
 
 namespace kudu {
@@ -32,10 +33,8 @@ class Status;
 
 namespace security {
 class SignedTokenPB;
-class TokenSigner;
 class TokenSigningPrivateKey;
 class TokenSigningPrivateKeyPB;
-class TokenSigningPublicKeyPB;
 class TokenVerifier;
 
 // Class responsible for managing Token Signing Keys (TSKs) and signing tokens.

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/security/token_signing_key.cc
----------------------------------------------------------------------
diff --git a/src/kudu/security/token_signing_key.cc b/src/kudu/security/token_signing_key.cc
index 3808cc8..38d49c6 100644
--- a/src/kudu/security/token_signing_key.cc
+++ b/src/kudu/security/token_signing_key.cc
@@ -24,6 +24,7 @@
 #include <glog/logging.h>
 
 #include "kudu/security/crypto.h"
+#include "kudu/security/openssl_util.h"
 #include "kudu/security/token.pb.h"
 #include "kudu/util/status.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/security/token_signing_key.h
----------------------------------------------------------------------
diff --git a/src/kudu/security/token_signing_key.h b/src/kudu/security/token_signing_key.h
index 3a85b33..67ecf95 100644
--- a/src/kudu/security/token_signing_key.h
+++ b/src/kudu/security/token_signing_key.h
@@ -16,14 +16,15 @@
 // under the License.
 #pragma once
 
+#include <cstdint>
 #include <memory>
 #include <string>
 
 #include <gtest/gtest_prod.h>
 
 #include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
 #include "kudu/security/crypto.h"
-#include "kudu/security/openssl_util.h"
 #include "kudu/security/token.pb.h"
 #include "kudu/util/status.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/security/token_verifier.cc
----------------------------------------------------------------------
diff --git a/src/kudu/security/token_verifier.cc b/src/kudu/security/token_verifier.cc
index 8f3d5ad..50ddef0 100644
--- a/src/kudu/security/token_verifier.cc
+++ b/src/kudu/security/token_verifier.cc
@@ -18,8 +18,11 @@
 #include "kudu/security/token_verifier.h"
 
 #include <algorithm>
+#include <iterator>
 #include <mutex>
+#include <ostream>
 #include <string>
+#include <utility>
 #include <vector>
 
 #include "kudu/gutil/map-util.h"
@@ -28,6 +31,7 @@
 #include "kudu/security/token_signing_key.h"
 #include "kudu/util/locks.h"
 #include "kudu/util/logging.h"
+#include "kudu/util/status.h"
 
 using std::lock_guard;
 using std::string;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/security/token_verifier.h
----------------------------------------------------------------------
diff --git a/src/kudu/security/token_verifier.h b/src/kudu/security/token_verifier.h
index be7936c..8b07f4c 100644
--- a/src/kudu/security/token_verifier.h
+++ b/src/kudu/security/token_verifier.h
@@ -16,13 +16,19 @@
 // under the License.
 #pragma once
 
+#include <cstdint>
 #include <map>
+#include <memory>
 #include <vector>
 
 #include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
 #include "kudu/util/rw_mutex.h"
 
 namespace kudu {
+
+class Status;
+
 namespace security {
 
 class SignedTokenPB;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/security/x509_check_host.cc
----------------------------------------------------------------------
diff --git a/src/kudu/security/x509_check_host.cc b/src/kudu/security/x509_check_host.cc
index ce59138..4f54ca1 100644
--- a/src/kudu/security/x509_check_host.cc
+++ b/src/kudu/security/x509_check_host.cc
@@ -11,14 +11,12 @@
 // of the functions are for the most part the same except where mentioned in special
 // comments. Explicit casts were also added to bypass compilation errors.
 
-#include <stdio.h>
-#include <ctype.h>
 #include <string.h>
-#include <strings.h>
 
-#include <openssl/bn.h>
-#include <openssl/conf.h>
-#include <openssl/err.h>
+#include <openssl/asn1.h>
+#include <openssl/crypto.h>
+#include <openssl/obj_mac.h>
+#include <openssl/x509.h>
 #include <openssl/x509v3.h>
 
 #include "kudu/security/x509_check_host.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/security/x509_check_host.h
----------------------------------------------------------------------
diff --git a/src/kudu/security/x509_check_host.h b/src/kudu/security/x509_check_host.h
index e388b11..d2d5af9 100644
--- a/src/kudu/security/x509_check_host.h
+++ b/src/kudu/security/x509_check_host.h
@@ -13,8 +13,10 @@
 #define X509_CHECK_HOST_H
 
 #include <stdlib.h>
+// IWYU pragma: no_include <openssl/x509.h>
+// IWYU pragma: no_include "openssl/x509.h"
 
-#include <openssl/x509.h>
+typedef struct x509_st X509;
 
 /* Flags for X509_check_* functions */
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/server/default-path-handlers.cc
----------------------------------------------------------------------
diff --git a/src/kudu/server/default-path-handlers.cc b/src/kudu/server/default-path-handlers.cc
index 5090d84..1d53456 100644
--- a/src/kudu/server/default-path-handlers.cc
+++ b/src/kudu/server/default-path-handlers.cc
@@ -19,7 +19,10 @@
 
 #include <sys/stat.h>
 
+#include <cstddef>
+#include <cstdint>
 #include <fstream>
+#include <map>
 #include <memory>
 #include <sstream>
 #include <string>
@@ -27,11 +30,17 @@
 
 #include <boost/algorithm/string.hpp>
 #include <boost/algorithm/string/predicate.hpp>
-#include <boost/bind.hpp>
+#include <boost/bind.hpp> // IWYU pragma: keep
+#include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
 #include <gperftools/malloc_extension.h>
 
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/stringprintf.h"
 #include "kudu/gutil/strings/human_readable.h"
+#include "kudu/gutil/strings/numbers.h"
 #include "kudu/gutil/strings/split.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/server/pprof-path-handlers.h"
@@ -39,12 +48,13 @@
 #include "kudu/util/easy_json.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/flags.h"
-#include "kudu/util/histogram.pb.h"
 #include "kudu/util/jsonwriter.h"
 #include "kudu/util/logging.h"
 #include "kudu/util/mem_tracker.h"
 #include "kudu/util/metrics.h"
 #include "kudu/util/process_memory.h"
+#include "kudu/util/status.h"
+#include "kudu/util/web_callback_registry.h"
 
 using std::ifstream;
 using std::string;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/server/default-path-handlers.h
----------------------------------------------------------------------
diff --git a/src/kudu/server/default-path-handlers.h b/src/kudu/server/default-path-handlers.h
index 818f068..82f3e2b 100644
--- a/src/kudu/server/default-path-handlers.h
+++ b/src/kudu/server/default-path-handlers.h
@@ -18,8 +18,6 @@
 #ifndef KUDU_SERVER_DEFAULT_PATH_HANDLERS_H
 #define KUDU_SERVER_DEFAULT_PATH_HANDLERS_H
 
-#include <string>
-
 namespace kudu {
 
 class MetricRegistry;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/server/generic_service.cc
----------------------------------------------------------------------
diff --git a/src/kudu/server/generic_service.cc b/src/kudu/server/generic_service.cc
index e7b8e9c..cb74c3d 100644
--- a/src/kudu/server/generic_service.cc
+++ b/src/kudu/server/generic_service.cc
@@ -17,19 +17,26 @@
 
 #include "kudu/server/generic_service.h"
 
-#include <gflags/gflags.h>
 #include <string>
+#include <ostream>
 #include <unordered_set>
 
+#include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
+
 #include "kudu/clock/clock.h"
 #include "kudu/clock/hybrid_clock.h"
 #include "kudu/clock/mock_ntp.h"
+#include "kudu/clock/time_service.h"
+#include "kudu/common/timestamp.h"
+#include "kudu/gutil/casts.h"
 #include "kudu/gutil/map-util.h"
-#include "kudu/rpc/remote_user.h"
 #include "kudu/rpc/rpc_context.h"
 #include "kudu/server/server_base.h"
+#include "kudu/server/server_base.pb.h"
 #include "kudu/util/debug-util.h"
-#include "kudu/util/debug/leak_annotations.h"
+#include "kudu/util/debug/leak_annotations.h" // IWYU pragma: keep
 #include "kudu/util/flag_tags.h"
 
 DECLARE_string(time_source);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/server/generic_service.h
----------------------------------------------------------------------
diff --git a/src/kudu/server/generic_service.h b/src/kudu/server/generic_service.h
index d3038f2..bfc8704 100644
--- a/src/kudu/server/generic_service.h
+++ b/src/kudu/server/generic_service.h
@@ -18,12 +18,36 @@
 #define KUDU_SERVER_GENERIC_SERVICE_H
 
 #include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
 #include "kudu/server/server_base.service.h"
 
+namespace google {
+namespace protobuf {
+class Message;
+}
+}
+
 namespace kudu {
+
+namespace rpc {
+class RpcContext;
+}
+
 namespace server {
 
+class CheckLeaksRequestPB;
+class CheckLeaksResponsePB;
+class FlushCoverageRequestPB;
+class FlushCoverageResponsePB;
+class GetStatusRequestPB;
+class GetStatusResponsePB;
 class ServerBase;
+class ServerClockRequestPB;
+class ServerClockResponsePB;
+class SetFlagRequestPB;
+class SetFlagResponsePB;
+class SetServerWallClockForTestsRequestPB;
+class SetServerWallClockForTestsResponsePB;
 
 class GenericServiceImpl : public GenericServiceIf {
  public:

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/server/glog_metrics.cc
----------------------------------------------------------------------
diff --git a/src/kudu/server/glog_metrics.cc b/src/kudu/server/glog_metrics.cc
index 6294227..9eed622 100644
--- a/src/kudu/server/glog_metrics.cc
+++ b/src/kudu/server/glog_metrics.cc
@@ -16,9 +16,10 @@
 // under the License.
 #include "kudu/server/glog_metrics.h"
 
+#include <cstddef>
 #include <glog/logging.h>
 
-#include "kudu/gutil/once.h"
+#include "kudu/gutil/port.h"
 #include "kudu/util/metrics.h"
 
 METRIC_DEFINE_counter(server, glog_info_messages,
@@ -33,6 +34,8 @@ METRIC_DEFINE_counter(server, glog_error_messages,
                       "ERROR-level Log Messages", kudu::MetricUnit::kMessages,
                       "Number of ERROR-level log messages emitted by the application.");
 
+struct tm;
+
 namespace kudu {
 
 class MetricsSink : public google::LogSink {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/server/glog_metrics.h
----------------------------------------------------------------------
diff --git a/src/kudu/server/glog_metrics.h b/src/kudu/server/glog_metrics.h
index e9e81a3..9a7bf32 100644
--- a/src/kudu/server/glog_metrics.h
+++ b/src/kudu/server/glog_metrics.h
@@ -17,7 +17,6 @@
 #ifndef KUDU_SERVER_GLOG_METRICS_H
 #define KUDU_SERVER_GLOG_METRICS_H
 
-#include "kudu/gutil/macros.h"
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/ref_counted.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/server/pprof-path-handlers.cc
----------------------------------------------------------------------
diff --git a/src/kudu/server/pprof-path-handlers.cc b/src/kudu/server/pprof-path-handlers.cc
index 7b479af..1efb909 100644
--- a/src/kudu/server/pprof-path-handlers.cc
+++ b/src/kudu/server/pprof-path-handlers.cc
@@ -17,12 +17,17 @@
 
 #include "kudu/server/pprof-path-handlers.h"
 
-#include <sys/stat.h>
+#include <unistd.h>
 
+#include <cstdint>
+#include <cstdlib>
 #include <fstream>
+#include <map>
 #include <string>
+#include <utility>
 #include <vector>
 
+#include <gflags/gflags_declare.h>
 #include <glog/logging.h>
 #include <gperftools/heap-profiler.h>
 #include <gperftools/malloc_extension.h>
@@ -32,14 +37,16 @@
 #include "kudu/gutil/strings/numbers.h"
 #include "kudu/gutil/strings/split.h"
 #include "kudu/gutil/strings/stringpiece.h"
+#include "kudu/gutil/strings/strip.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/gutil/sysinfo.h"
 #include "kudu/server/webserver.h"
 #include "kudu/util/env.h"
-#include "kudu/util/logging.h"
+#include "kudu/util/faststring.h"
 #include "kudu/util/monotime.h"
 #include "kudu/util/spinlock_profiling.h"
 #include "kudu/util/status.h"
+#include "kudu/util/web_callback_registry.h"
 
 DECLARE_bool(enable_process_lifetime_heap_profiling);
 DECLARE_string(heap_profile_path);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/server/rpc_server-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/server/rpc_server-test.cc b/src/kudu/server/rpc_server-test.cc
index 2d26791..f6b8a76 100644
--- a/src/kudu/server/rpc_server-test.cc
+++ b/src/kudu/server/rpc_server-test.cc
@@ -24,6 +24,7 @@
 #include "kudu/rpc/messenger.h"
 #include "kudu/server/rpc_server.h"
 #include "kudu/util/net/sockaddr.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 using std::shared_ptr;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/server/rpc_server.cc
----------------------------------------------------------------------
diff --git a/src/kudu/server/rpc_server.cc b/src/kudu/server/rpc_server.cc
index a4069f0..8836958 100644
--- a/src/kudu/server/rpc_server.cc
+++ b/src/kudu/server/rpc_server.cc
@@ -15,17 +15,23 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <list>
+#include <algorithm>
+#include <ostream>
 #include <string>
+#include <type_traits>
 #include <vector>
 
 #include <gflags/gflags.h>
+#include <glog/logging.h>
 
 #include "kudu/gutil/casts.h"
 #include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/move.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/rpc/acceptor_pool.h"
 #include "kudu/rpc/messenger.h"
+#include "kudu/rpc/rpc_service.h"
 #include "kudu/rpc/service_if.h"
 #include "kudu/rpc/service_pool.h"
 #include "kudu/server/rpc_server.h"
@@ -137,10 +143,10 @@ Status RpcServer::Init(const shared_ptr<Messenger>& messenger) {
 Status RpcServer::RegisterService(gscoped_ptr<rpc::ServiceIf> service) {
   CHECK(server_state_ == INITIALIZED ||
         server_state_ == BOUND) << "bad state: " << server_state_;
-  const scoped_refptr<MetricEntity>& metric_entity = messenger_->metric_entity();
   string service_name = service->service_name();
   scoped_refptr<rpc::ServicePool> service_pool =
-    new rpc::ServicePool(std::move(service), metric_entity, options_.service_queue_length);
+    new rpc::ServicePool(std::move(service), messenger_->metric_entity(),
+                         options_.service_queue_length);
   RETURN_NOT_OK(service_pool->Init(options_.num_service_threads));
   RETURN_NOT_OK(messenger_->RegisterService(service_name, service_pool));
   return Status::OK();

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/server/rpc_server.h
----------------------------------------------------------------------
diff --git a/src/kudu/server/rpc_server.h b/src/kudu/server/rpc_server.h
index 8a65825..91c65d7 100644
--- a/src/kudu/server/rpc_server.h
+++ b/src/kudu/server/rpc_server.h
@@ -17,13 +17,15 @@
 #ifndef KUDU_RPC_SERVER_H
 #define KUDU_RPC_SERVER_H
 
+#include <cstddef>
+#include <cstdint>
 #include <memory>
 #include <string>
 #include <vector>
 
 #include "kudu/gutil/gscoped_ptr.h"
-#include "kudu/gutil/ref_counted.h"
-#include "kudu/rpc/service_pool.h"
+#include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
 #include "kudu/util/net/sockaddr.h"
 #include "kudu/util/status.h"
 
@@ -33,6 +35,7 @@ namespace rpc {
 class AcceptorPool;
 class Messenger;
 class ServiceIf;
+class ServicePool;
 } // namespace rpc
 
 struct RpcServerOptions {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/server/rpcz-path-handler.cc
----------------------------------------------------------------------
diff --git a/src/kudu/server/rpcz-path-handler.cc b/src/kudu/server/rpcz-path-handler.cc
index 373d3e8..48c4f5d 100644
--- a/src/kudu/server/rpcz-path-handler.cc
+++ b/src/kudu/server/rpcz-path-handler.cc
@@ -17,11 +17,12 @@
 
 #include "kudu/server/rpcz-path-handler.h"
 
+#include <map>
 #include <memory>
 #include <sstream>
 #include <string>
 
-#include <boost/bind.hpp>
+#include <boost/bind.hpp> // IWYU pragma: keep
 
 #include "kudu/gutil/map-util.h"
 #include "kudu/gutil/strings/numbers.h"
@@ -29,6 +30,8 @@
 #include "kudu/rpc/rpc_introspection.pb.h"
 #include "kudu/rpc/rpcz_store.h"
 #include "kudu/server/webserver.h"
+#include "kudu/util/jsonwriter.h"
+#include "kudu/util/web_callback_registry.h"
 
 using kudu::rpc::DumpRunningRpcsRequestPB;
 using kudu::rpc::DumpRunningRpcsResponsePB;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/server/server_base.cc
----------------------------------------------------------------------
diff --git a/src/kudu/server/server_base.cc b/src/kudu/server/server_base.cc
index 47c9777..86c3263 100644
--- a/src/kudu/server/server_base.cc
+++ b/src/kudu/server/server_base.cc
@@ -14,32 +14,41 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
+
 #include "kudu/server/server_base.h"
 
+#include <algorithm>
+#include <cstdint>
 #include <sstream>
 #include <string>
+#include <type_traits>
 #include <vector>
 
 #include <boost/algorithm/string/predicate.hpp>
-#include <boost/optional.hpp>
+#include <boost/optional/optional.hpp>
 #include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
 
+#include "kudu/clock/clock.h"
 #include "kudu/clock/hybrid_clock.h"
 #include "kudu/clock/logical_clock.h"
 #include "kudu/codegen/compilation_manager.h"
+#include "kudu/common/timestamp.h"
 #include "kudu/common/wire_protocol.h"
 #include "kudu/common/wire_protocol.pb.h"
 #include "kudu/fs/fs_manager.h"
 #include "kudu/fs/fs_report.h"
-#include "kudu/gutil/strings/split.h"
+#include "kudu/gutil/move.h"
 #include "kudu/gutil/strings/strcat.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/gutil/walltime.h"
 #include "kudu/rpc/messenger.h"
 #include "kudu/rpc/remote_user.h"
+#include "kudu/rpc/result_tracker.h"
 #include "kudu/rpc/rpc_context.h"
+#include "kudu/rpc/service_if.h"
 #include "kudu/security/init.h"
-#include "kudu/security/kerberos_util.h"
 #include "kudu/server/default-path-handlers.h"
 #include "kudu/server/generic_service.h"
 #include "kudu/server/glog_metrics.h"
@@ -63,6 +72,7 @@
 #include "kudu/util/net/sockaddr.h"
 #include "kudu/util/pb_util.h"
 #include "kudu/util/rolling_log.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/spinlock_profiling.h"
 #include "kudu/util/thread.h"
 #include "kudu/util/user.h"
@@ -108,6 +118,9 @@ using std::vector;
 using strings::Substitute;
 
 namespace kudu {
+
+class HostPortPB;
+
 namespace server {
 
 namespace {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/server/server_base.h
----------------------------------------------------------------------
diff --git a/src/kudu/server/server_base.h b/src/kudu/server/server_base.h
index 7e81c12..11f40c6 100644
--- a/src/kudu/server/server_base.h
+++ b/src/kudu/server/server_base.h
@@ -17,6 +17,7 @@
 #ifndef KUDU_SERVER_SERVER_BASE_H
 #define KUDU_SERVER_SERVER_BASE_H
 
+#include <cstdint>
 #include <memory>
 #include <string>
 
@@ -24,14 +25,13 @@
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/rpc/messenger.h"
-#include "kudu/rpc/service_if.h"
 #include "kudu/security/simple_acl.h"
 #include "kudu/server/server_base_options.h"
+#include "kudu/util/countdown_latch.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
 
-class Env;
 class FsManager;
 class MemTracker;
 class MetricEntity;
@@ -49,7 +49,9 @@ class Clock;
 } // namespace clock
 
 namespace rpc {
+class ResultTracker;
 class RpcContext;
+class ServiceIf;
 } // namespace rpc
 
 namespace security {
@@ -58,7 +60,6 @@ class TokenVerifier;
 } // namespace security
 
 namespace server {
-struct ServerBaseOptions;
 class ServerStatusPB;
 
 // Base class for tablet server and master.

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/server/server_base_options.cc
----------------------------------------------------------------------
diff --git a/src/kudu/server/server_base_options.cc b/src/kudu/server/server_base_options.cc
index af70488..06a0c93 100644
--- a/src/kudu/server/server_base_options.cc
+++ b/src/kudu/server/server_base_options.cc
@@ -19,7 +19,9 @@
 
 #include <gflags/gflags.h>
 
+#include "kudu/gutil/macros.h"
 #include "kudu/util/flag_tags.h"
+#include "kudu/util/env.h"
 
 DEFINE_string(server_dump_info_path, "",
               "Path into which the server information will be "

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/server/server_base_options.h
----------------------------------------------------------------------
diff --git a/src/kudu/server/server_base_options.h b/src/kudu/server/server_base_options.h
index 7c665d7..5b13180 100644
--- a/src/kudu/server/server_base_options.h
+++ b/src/kudu/server/server_base_options.h
@@ -17,8 +17,8 @@
 #ifndef KUDU_SERVER_SERVER_BASE_OPTIONS_H
 #define KUDU_SERVER_SERVER_BASE_OPTIONS_H
 
+#include <cstdint>
 #include <string>
-#include <vector>
 
 #include "kudu/fs/fs_manager.h"
 #include "kudu/server/webserver_options.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/server/tcmalloc_metrics.cc
----------------------------------------------------------------------
diff --git a/src/kudu/server/tcmalloc_metrics.cc b/src/kudu/server/tcmalloc_metrics.cc
index e700d2f..d6722b6 100644
--- a/src/kudu/server/tcmalloc_metrics.cc
+++ b/src/kudu/server/tcmalloc_metrics.cc
@@ -16,10 +16,15 @@
 // under the License.
 #include "kudu/server/tcmalloc_metrics.h"
 
-#include <boost/bind.hpp>
+#include <cstddef>
+#include <cstdint>
+#include <ostream>
+
 #include <glog/logging.h>
 #include <gperftools/malloc_extension.h>
 
+#include "kudu/gutil/bind.h"
+#include "kudu/gutil/bind_helpers.h"
 #include "kudu/util/metrics.h"
 
 #ifndef TCMALLOC_ENABLED

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/server/tracing-path-handlers.cc
----------------------------------------------------------------------
diff --git a/src/kudu/server/tracing-path-handlers.cc b/src/kudu/server/tracing-path-handlers.cc
index dc3269c..6d8c3a2 100644
--- a/src/kudu/server/tracing-path-handlers.cc
+++ b/src/kudu/server/tracing-path-handlers.cc
@@ -18,20 +18,23 @@
 
 #include <map>
 #include <memory>
-#include <string.h>
+#include <ostream>
 #include <string>
 #include <utility>
 #include <vector>
 
-#include <boost/bind.hpp>
+
+#include <boost/bind.hpp> // IWYU pragma: keep
+#include <glog/logging.h>
 #include <rapidjson/document.h>
-#include <rapidjson/prettywriter.h>
-#include <rapidjson/rapidjson.h>
-#include <rapidjson/stringbuffer.h>
 
 #include "kudu/gutil/strings/escaping.h"
+#include "kudu/server/webserver.h"
 #include "kudu/util/debug/trace_event_impl.h"
 #include "kudu/util/jsonwriter.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/status.h"
+#include "kudu/util/web_callback_registry.h"
 #include "kudu/util/zlib.h"
 
 using std::map;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/server/tracing-path-handlers.h
----------------------------------------------------------------------
diff --git a/src/kudu/server/tracing-path-handlers.h b/src/kudu/server/tracing-path-handlers.h
index 402b77e..7e1feef 100644
--- a/src/kudu/server/tracing-path-handlers.h
+++ b/src/kudu/server/tracing-path-handlers.h
@@ -18,10 +18,11 @@
 #define KUDU_SERVER_TRACING_PATH_HANDLERS_H
 
 #include "kudu/gutil/macros.h"
-#include "kudu/server/webserver.h"
-#include "kudu/util/status.h"
 
 namespace kudu {
+
+class Webserver;
+
 namespace server {
 
 // Web handlers for Chromium tracing.

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/server/webserver-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/server/webserver-test.cc b/src/kudu/server/webserver-test.cc
index 5ea1da9..d8b3ef4 100644
--- a/src/kudu/server/webserver-test.cc
+++ b/src/kudu/server/webserver-test.cc
@@ -17,21 +17,32 @@
 
 #include <memory>
 #include <string>
+#include <vector>
 
 #include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
 #include <gtest/gtest.h>
 
+#include "kudu/gutil/integral_types.h"
+#include "kudu/gutil/macros.h"
+#include "kudu/gutil/stringprintf.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/gutil/strings/util.h"
-#include "kudu/gutil/stringprintf.h"
 #include "kudu/security/test/test_certs.h"
 #include "kudu/security/test/test_pass.h"
 #include "kudu/server/default-path-handlers.h"
 #include "kudu/server/webserver.h"
+#include "kudu/server/webserver_options.h"
 #include "kudu/util/curl_util.h"
+#include "kudu/util/env.h"
+#include "kudu/util/faststring.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/logging.h"
 #include "kudu/util/net/sockaddr.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 using std::string;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/server/webserver.cc
----------------------------------------------------------------------
diff --git a/src/kudu/server/webserver.cc b/src/kudu/server/webserver.cc
index b4733c9..9127a10 100644
--- a/src/kudu/server/webserver.cc
+++ b/src/kudu/server/webserver.cc
@@ -14,33 +14,36 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-#include "kudu/server/webserver.h"
 
-#include <cstdio>
-#include <signal.h>
+#include "kudu/server/webserver.h"
 
 #include <algorithm>
+#include <csignal>
+#include <cstdint>
+#include <cstdlib>
+#include <cstring>
 #include <functional>
 #include <map>
+#include <memory>
 #include <mutex>
 #include <sstream>
 #include <string>
+#include <utility>
 #include <vector>
 
-#include <boost/algorithm/string.hpp>
+#include <boost/algorithm/string.hpp> // IWYU pragma: keep
 #include <gflags/gflags.h>
 #include <glog/logging.h>
 #include <mustache.h>
 #include <squeasel.h>
 
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/map-util.h"
 #include "kudu/gutil/stl_util.h"
-#include "kudu/gutil/stringprintf.h"
 #include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/numbers.h"
 #include "kudu/gutil/strings/split.h"
 #include "kudu/gutil/strings/stringpiece.h"
-#include "kudu/gutil/strings/strip.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/security/openssl_util.h"
 #include "kudu/util/easy_json.h"
@@ -48,11 +51,12 @@
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/locks.h"
 #include "kudu/util/net/net_util.h"
-#include "kudu/util/path_util.h"
-#include "kudu/util/subprocess.h"
+#include "kudu/util/net/sockaddr.h"
 #include "kudu/util/url-coding.h"
 #include "kudu/util/version_info.h"
 
+struct sockaddr_in;
+
 #if defined(__APPLE__)
 typedef sig_t sighandler_t;
 #endif

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/server/webserver.h
----------------------------------------------------------------------
diff --git a/src/kudu/server/webserver.h b/src/kudu/server/webserver.h
index 71201a7..6b7092f 100644
--- a/src/kudu/server/webserver.h
+++ b/src/kudu/server/webserver.h
@@ -17,23 +17,27 @@
 #ifndef KUDU_UTIL_WEBSERVER_H
 #define KUDU_UTIL_WEBSERVER_H
 
+#include <algorithm>
 #include <iosfwd>
 #include <map>
 #include <string>
 #include <vector>
 
+#include "kudu/gutil/port.h"
 #include "kudu/server/webserver_options.h"
 #include "kudu/util/net/sockaddr.h"
 #include "kudu/util/rw_mutex.h"
 #include "kudu/util/status.h"
 #include "kudu/util/web_callback_registry.h"
 
-struct sq_connection;
-struct sq_request_info;
-struct sq_context;
+struct sq_connection; // IWYU pragma: keep
+struct sq_request_info; // IWYU pragma: keep
+struct sq_context; // IWYU pragma: keep
 
 namespace kudu {
 
+class EasyJson;
+
 // Wrapper class for the Mongoose web server library. Clients may register callback
 // methods which produce output for a given URL path
 class Webserver : public WebCallbackRegistry {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/server/webserver_options.cc
----------------------------------------------------------------------
diff --git a/src/kudu/server/webserver_options.cc b/src/kudu/server/webserver_options.cc
index 81662ef..e25ea2a 100644
--- a/src/kudu/server/webserver_options.cc
+++ b/src/kudu/server/webserver_options.cc
@@ -17,12 +17,14 @@
 
 #include "kudu/server/webserver_options.h"
 
-#include <cstring>
 #include <cstdlib>
+#include <ostream>
 #include <string>
 
 #include <gflags/gflags.h>
+#include <glog/logging.h>
 
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/flag_validators.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/server/webui_util.cc
----------------------------------------------------------------------
diff --git a/src/kudu/server/webui_util.cc b/src/kudu/server/webui_util.cc
index 8d5b44a..9b61b70 100644
--- a/src/kudu/server/webui_util.cc
+++ b/src/kudu/server/webui_util.cc
@@ -20,11 +20,14 @@
 #include <sstream>
 #include <string>
 
-#include "kudu/gutil/strings/join.h"
-#include "kudu/gutil/map-util.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/schema.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/strings/human_readable.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/server/monitored_task.h"
+#include "kudu/util/compression/compression.pb.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/url-coding.h"
 
 using std::string;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/server/webui_util.h
----------------------------------------------------------------------
diff --git a/src/kudu/server/webui_util.h b/src/kudu/server/webui_util.h
index 8bfbd27..e8761b0 100644
--- a/src/kudu/server/webui_util.h
+++ b/src/kudu/server/webui_util.h
@@ -21,8 +21,8 @@
 #include <string>
 #include <vector>
 
-#include "kudu/common/schema.h"
-#include "kudu/gutil/ref_counted.h"
+template <class T>
+class scoped_refptr;
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/cbtree-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/cbtree-test.cc b/src/kudu/tablet/cbtree-test.cc
index db5243f..7e1c376 100644
--- a/src/kudu/tablet/cbtree-test.cc
+++ b/src/kudu/tablet/cbtree-test.cc
@@ -15,20 +15,28 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <glog/logging.h>
-#include <gtest/gtest.h>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+#include <string>
 #include <thread>
 #include <unordered_set>
+#include <vector>
+
+#include <glog/logging.h>
+#include <gtest/gtest.h>
 
 #include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/stringprintf.h"
 #include "kudu/tablet/concurrent_btree.h"
 #include "kudu/util/barrier.h"
 #include "kudu/util/debug/sanitizer_scopes.h"
+#include "kudu/util/faststring.h"
 #include "kudu/util/hexdump.h"
-#include "kudu/util/memory/memory.h"
+#include "kudu/util/memory/arena.h"
 #include "kudu/util/memory/overwrite.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/stopwatch.h"
-#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 using std::string;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/cfile_set-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/cfile_set-test.cc b/src/kudu/tablet/cfile_set-test.cc
index 4cb3923..7a55c8b 100644
--- a/src/kudu/tablet/cfile_set-test.cc
+++ b/src/kudu/tablet/cfile_set-test.cc
@@ -15,16 +15,44 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <cstddef>
+#include <cstdint>
 #include <memory>
+#include <ostream>
+#include <string>
+#include <vector>
+
+#include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
 #include <gtest/gtest.h>
 #include <glog/logging.h>
 
+#include "kudu/common/column_materialization_context.h"
+#include "kudu/common/column_predicate.h"
+#include "kudu/common/columnblock.h"
+#include "kudu/common/common.pb.h"
 #include "kudu/common/generic_iterators.h"
+#include "kudu/common/iterator.h"
+#include "kudu/common/iterator_stats.h"
+#include "kudu/common/row.h"
+#include "kudu/common/rowblock.h"
+#include "kudu/common/rowid.h"
+#include "kudu/common/scan_spec.h"
+#include "kudu/common/schema.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/integral_types.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/stringprintf.h"
+#include "kudu/gutil/strings/stringpiece.h"
 #include "kudu/tablet/cfile_set.h"
-#include "kudu/tablet/diskrowset-test-base.h"
-#include "kudu/tablet/tablet-test-base.h"
+#include "kudu/tablet/diskrowset.h"
+#include "kudu/tablet/tablet-test-util.h"
+#include "kudu/util/auto_release_pool.h"
+#include "kudu/util/bloom_filter.h"
 #include "kudu/util/mem_tracker.h"
-#include "kudu/util/test_util.h"
+#include "kudu/util/memory/arena.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 
 DECLARE_int32(cfile_default_block_size);
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/cfile_set.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/cfile_set.cc b/src/kudu/tablet/cfile_set.cc
index d3715fc..2ac9126 100644
--- a/src/kudu/tablet/cfile_set.cc
+++ b/src/kudu/tablet/cfile_set.cc
@@ -17,27 +17,42 @@
 
 #include <algorithm>
 #include <memory>
+#include <ostream>
+#include <utility>
 
+#include <boost/optional/optional.hpp>
 #include <gflags/gflags.h>
 #include <glog/logging.h>
 
 #include "kudu/cfile/bloomfile.h"
 #include "kudu/cfile/cfile_util.h"
-#include "kudu/cfile/cfile_writer.h"
-#include "kudu/common/scan_spec.h"
 #include "kudu/common/column_materialization_context.h"
+#include "kudu/common/columnblock.h"
+#include "kudu/common/encoded_key.h"
+#include "kudu/common/iterator_stats.h"
+#include "kudu/common/rowblock.h"
+#include "kudu/common/scan_spec.h"
+#include "kudu/fs/block_manager.h"
+#include "kudu/fs/fs_manager.h"
 #include "kudu/gutil/dynamic_annotations.h"
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/stringprintf.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/tablet/diskrowset.h"
 #include "kudu/tablet/cfile_set.h"
+#include "kudu/tablet/diskrowset.h"
+#include "kudu/tablet/rowset.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/logging.h"
+#include "kudu/util/slice.h"
 
 DEFINE_bool(consult_bloom_filters, true, "Whether to consult bloom filters on row presence checks");
 TAG_FLAG(consult_bloom_filters, hidden);
 
 namespace kudu {
+
+class BlockId;
+class MemTracker;
+
 namespace tablet {
 
 using cfile::BloomFileReader;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/cfile_set.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/cfile_set.h b/src/kudu/tablet/cfile_set.h
index 394054e..db05476 100644
--- a/src/kudu/tablet/cfile_set.h
+++ b/src/kudu/tablet/cfile_set.h
@@ -17,30 +17,51 @@
 #ifndef KUDU_TABLET_LAYER_BASEDATA_H
 #define KUDU_TABLET_LAYER_BASEDATA_H
 
+#include <algorithm>
+#include <cstddef>
+#include <cstdint>
 #include <memory>
 #include <string>
 #include <vector>
 
 #include <boost/container/flat_map.hpp>
-#include <boost/optional.hpp>
+#include <boost/container/vector.hpp>
+#include <glog/logging.h>
 #include <gtest/gtest_prod.h>
 
-#include "kudu/cfile/bloomfile.h"
 #include "kudu/cfile/cfile_reader.h"
 #include "kudu/common/iterator.h"
+#include "kudu/common/rowid.h"
 #include "kudu/common/schema.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/map-util.h"
-#include "kudu/tablet/memrowset.h"
+#include "kudu/gutil/port.h"
 #include "kudu/tablet/rowset_metadata.h"
-#include "kudu/util/env.h"
-#include "kudu/util/memory/arena.h"
-#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
+
+namespace boost {
+template <class T>
+class optional;
+}
 
 namespace kudu {
 
+class ColumnMaterializationContext;
+class MemTracker;
+class ScanSpec;
+class SelectionVector;
+struct IteratorStats;
+
+namespace cfile {
+class BloomFileReader;
+}
+
 namespace tablet {
 
+class RowSetKeyProbe;
+struct ProbeStats;
+
 // Set of CFiles which make up the base data for a single rowset
 //
 // All of these files have the same number of rows, and thus the positional

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/compaction-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/compaction-test.cc b/src/kudu/tablet/compaction-test.cc
index fd9ae83..a6e1c6a 100644
--- a/src/kudu/tablet/compaction-test.cc
+++ b/src/kudu/tablet/compaction-test.cc
@@ -16,25 +16,63 @@
 // under the License.
 
 #include <algorithm>
+#include <cstdint>
+#include <cstdio>
+#include <cstdlib>
 #include <memory>
+#include <numeric>
+#include <ostream>
+#include <string>
+#include <vector>
 
 #include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
 #include <glog/logging.h>
 #include <gtest/gtest.h>
 
 #include "kudu/clock/logical_clock.h"
+#include "kudu/common/common.pb.h"
 #include "kudu/common/partial_row.h"
+#include "kudu/common/row.h"
+#include "kudu/common/row_changelist.h"
+#include "kudu/common/rowblock.h"
+#include "kudu/common/rowid.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/timestamp.h"
 #include "kudu/consensus/log_anchor_registry.h"
+#include "kudu/consensus/opid.pb.h"
 #include "kudu/consensus/opid_util.h"
+#include "kudu/fs/block_id.h"
+#include "kudu/fs/block_manager.h"
 #include "kudu/fs/fs_manager.h"
 #include "kudu/fs/log_block_manager.h"
+#include "kudu/gutil/casts.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/gutil/strings/util.h"
 #include "kudu/tablet/compaction.h"
+#include "kudu/tablet/diskrowset.h"
 #include "kudu/tablet/local_tablet_writer.h"
+#include "kudu/tablet/memrowset.h"
+#include "kudu/tablet/mutation.h"
+#include "kudu/tablet/mvcc.h"
+#include "kudu/tablet/rowset.h"
+#include "kudu/tablet/rowset_metadata.h"
+#include "kudu/tablet/tablet-harness.h"
 #include "kudu/tablet/tablet-test-util.h"
+#include "kudu/tablet/tablet.h"
+#include "kudu/tablet/tablet.pb.h"
 #include "kudu/tablet/tablet_mem_trackers.h"
+#include "kudu/tablet/tablet_metadata.h"
+#include "kudu/util/env.h"
+#include "kudu/util/faststring.h"
+#include "kudu/util/make_shared.h"
+#include "kudu/util/memory/arena.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
 #include "kudu/util/stopwatch.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 DEFINE_string(merge_benchmark_input_dir, "",

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/compaction.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/compaction.cc b/src/kudu/tablet/compaction.cc
index 8619c8d..6b5d9eb 100644
--- a/src/kudu/tablet/compaction.cc
+++ b/src/kudu/tablet/compaction.cc
@@ -17,27 +17,46 @@
 
 #include "kudu/tablet/compaction.h"
 
+#include <cstdint>
 #include <deque>
-#include <glog/logging.h>
 #include <memory>
+#include <ostream>
 #include <string>
+#include <type_traits>
 #include <unordered_set>
 #include <vector>
 
+#include <glog/logging.h>
+
 #include "kudu/clock/hybrid_clock.h"
-#include "kudu/common/wire_protocol.h"
+#include "kudu/common/generic_iterators.h"
+#include "kudu/common/iterator.h"
+#include "kudu/common/row.h"
+#include "kudu/common/row_changelist.h"
+#include "kudu/common/rowid.h"
+#include "kudu/common/scan_spec.h"
+#include "kudu/common/schema.h"
+#include "kudu/consensus/opid.pb.h"
 #include "kudu/consensus/opid_util.h"
+#include "kudu/gutil/casts.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/move.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/tablet/cfile_set.h"
 #include "kudu/tablet/delta_store.h"
 #include "kudu/tablet/delta_tracker.h"
 #include "kudu/tablet/diskrowset.h"
+#include "kudu/tablet/memrowset.h"
+#include "kudu/tablet/mutation.h"
+#include "kudu/tablet/mvcc.h"
 #include "kudu/tablet/tablet.pb.h"
-#include "kudu/tablet/transactions/write_transaction.h"
 #include "kudu/util/debug/trace_event.h"
+#include "kudu/util/faststring.h"
+#include "kudu/util/make_shared.h"
+#include "kudu/util/memory/arena.h"
 
 using kudu::clock::HybridClock;
 using std::deque;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/compaction.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/compaction.h b/src/kudu/tablet/compaction.h
index 24ea328..38b82f0 100644
--- a/src/kudu/tablet/compaction.h
+++ b/src/kudu/tablet/compaction.h
@@ -17,20 +17,34 @@
 #ifndef KUDU_TABLET_COMPACTION_H
 #define KUDU_TABLET_COMPACTION_H
 
+#include <algorithm>
+#include <cstddef>
 #include <memory>
 #include <mutex>
 #include <string>
 #include <vector>
 
-#include "kudu/common/generic_iterators.h"
-#include "kudu/common/iterator.h"
-#include "kudu/tablet/diskrowset.h"
-#include "kudu/tablet/memrowset.h"
+#include <glog/logging.h>
+
+#include "kudu/common/rowblock.h"
+#include "kudu/common/timestamp.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/tablet/rowset.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
+
+class Arena;
+class Schema;
+
 namespace tablet {
+
+class DiskRowSet;
+class MemRowSet;
+class Mutation;
+class MvccSnapshot;
+class RollingDiskRowSetWriter;
 struct CompactionInputRow;
-class WriteTransactionState;
 
 // Options related to tablet history garbage collection.
 class HistoryGcOpts {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/compaction_policy-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/compaction_policy-test.cc b/src/kudu/tablet/compaction_policy-test.cc
index ecc9f3f..587d2f4 100644
--- a/src/kudu/tablet/compaction_policy-test.cc
+++ b/src/kudu/tablet/compaction_policy-test.cc
@@ -15,21 +15,30 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <glog/stl_logging.h>
-#include <gtest/gtest.h>
+#include <algorithm>
 #include <memory>
-#include <unordered_set>
+#include <ostream>
 #include <string>
+#include <unordered_set>
+#include <vector>
+
+#include <glog/logging.h>
+#include <glog/stl_logging.h>
+#include <gtest/gtest.h>
 
 #include "kudu/gutil/strings/numbers.h"
 #include "kudu/gutil/strings/split.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/util/stopwatch.h"
-#include "kudu/util/test_util.h"
+#include "kudu/tablet/compaction_policy.h"
 #include "kudu/tablet/mock-rowsets.h"
 #include "kudu/tablet/rowset.h"
 #include "kudu/tablet/rowset_tree.h"
-#include "kudu/tablet/compaction_policy.h"
+#include "kudu/util/env.h"
+#include "kudu/util/faststring.h"
+#include "kudu/util/path_util.h"
+#include "kudu/util/status.h"
+#include "kudu/util/stopwatch.h"
+#include "kudu/util/test_macros.h"
 
 using std::shared_ptr;
 using std::unordered_set;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/compaction_policy.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/compaction_policy.cc b/src/kudu/tablet/compaction_policy.cc
index 93fb7b2..1e7dbf4 100644
--- a/src/kudu/tablet/compaction_policy.cc
+++ b/src/kudu/tablet/compaction_policy.cc
@@ -17,22 +17,23 @@
 
 #include "kudu/tablet/compaction_policy.h"
 
-#include <glog/logging.h>
-
 #include <algorithm>
-#include <utility>
+#include <ostream>
+#include <queue>
 #include <string>
+#include <unordered_set>
+#include <utility>
 #include <vector>
 
+#include <gflags/gflags.h>
+#include <glog/logging.h>
+
 #include "kudu/gutil/map-util.h"
 #include "kudu/gutil/mathlimits.h"
-#include "kudu/tablet/rowset.h"
 #include "kudu/tablet/rowset_info.h"
-#include "kudu/tablet/rowset_tree.h"
 #include "kudu/tablet/svg_dump.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/knapsack_solver.h"
-#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
 
 using std::vector;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/compaction_policy.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/compaction_policy.h b/src/kudu/tablet/compaction_policy.h
index 9b7fcb8..fb0890a 100644
--- a/src/kudu/tablet/compaction_policy.h
+++ b/src/kudu/tablet/compaction_policy.h
@@ -17,21 +17,22 @@
 #ifndef KUDU_TABLET_COMPACTION_POLICY_H
 #define KUDU_TABLET_COMPACTION_POLICY_H
 
+#include <cstddef>
+#include <cstdint>
 #include <string>
 #include <unordered_set>
 #include <vector>
 
 #include "kudu/gutil/macros.h"
-#include "kudu/util/slice.h"
+#include "kudu/gutil/port.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
 namespace tablet {
 
 class RowSet;
-class RowSetTree;
-
 class RowSetInfo;
+class RowSetTree;
 
 // A Compaction Policy is responsible for picking which files in a tablet
 // should be compacted together.

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/composite-pushdown-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/composite-pushdown-test.cc b/src/kudu/tablet/composite-pushdown-test.cc
index 19fd3da..7d164da 100644
--- a/src/kudu/tablet/composite-pushdown-test.cc
+++ b/src/kudu/tablet/composite-pushdown-test.cc
@@ -15,14 +15,34 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <algorithm>
+#include <cstdint>
+#include <memory>
+#include <string>
+#include <unordered_map>
+#include <vector>
+
+#include <boost/optional/optional.hpp>
 #include <glog/logging.h>
 #include <gtest/gtest.h>
 
+#include "kudu/common/column_predicate.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/iterator.h"
+#include "kudu/common/partial_row.h"
+#include "kudu/common/scan_spec.h"
 #include "kudu/common/schema.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/stringprintf.h"
+#include "kudu/tablet/local_tablet_writer.h"
+#include "kudu/tablet/tablet-test-util.h"
 #include "kudu/tablet/tablet.h"
-#include "kudu/tablet/tablet-test-base.h"
+#include "kudu/util/memory/arena.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
+#include "kudu/util/stopwatch.h"
 #include "kudu/util/test_macros.h"
-#include "kudu/util/test_util.h"
 
 using std::string;
 using std::vector;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/delta_applier.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/delta_applier.cc b/src/kudu/tablet/delta_applier.cc
index a968122..64cf57a 100644
--- a/src/kudu/tablet/delta_applier.cc
+++ b/src/kudu/tablet/delta_applier.cc
@@ -17,11 +17,14 @@
 
 #include "kudu/tablet/delta_applier.h"
 
+#include <algorithm>
+#include <ostream>
 #include <string>
 #include <vector>
 
+#include <glog/logging.h>
+
 #include "kudu/common/column_materialization_context.h"
-#include "kudu/common/iterator.h"
 #include "kudu/tablet/delta_store.h"
 #include "kudu/util/status.h"
 
@@ -30,6 +33,12 @@ using std::string;
 using std::unique_ptr;
 
 namespace kudu {
+
+class ScanSpec;
+class Schema;
+class SelectionVector;
+struct IteratorStats;
+
 namespace tablet {
 
   // Construct. The base_iter and delta_iter should not be Initted.

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/delta_applier.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/delta_applier.h b/src/kudu/tablet/delta_applier.h
index 1f2cb01..27e8041 100644
--- a/src/kudu/tablet/delta_applier.h
+++ b/src/kudu/tablet/delta_applier.h
@@ -17,6 +17,7 @@
 #ifndef KUDU_TABLET_DELTA_APPLIER_H
 #define KUDU_TABLET_DELTA_APPLIER_H
 
+#include <cstddef>
 #include <string>
 #include <memory>
 #include <vector>
@@ -24,12 +25,19 @@
 #include <gtest/gtest_prod.h>
 
 #include "kudu/common/iterator.h"
-#include "kudu/common/schema.h"
 #include "kudu/gutil/macros.h"
-#include "kudu/util/status.h"
+#include "kudu/gutil/port.h"
 #include "kudu/tablet/cfile_set.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
+
+class ColumnMaterializationContext;
+class ScanSpec;
+class Schema;
+class SelectionVector;
+struct IteratorStats;
+
 namespace tablet {
 
 class DeltaIterator;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/delta_compaction-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/delta_compaction-test.cc b/src/kudu/tablet/delta_compaction-test.cc
index c1b500e..2c22955 100644
--- a/src/kudu/tablet/delta_compaction-test.cc
+++ b/src/kudu/tablet/delta_compaction-test.cc
@@ -15,6 +15,10 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <algorithm>
+#include <cstddef>
+#include <cstdint>
+#include <memory>
 #include <string>
 #include <vector>
 
@@ -23,19 +27,27 @@
 #include <gtest/gtest.h>
 
 #include "kudu/cfile/cfile_util.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/row_changelist.h"
 #include "kudu/common/schema.h"
-#include "kudu/tablet/deltafile.h"
-#include "kudu/tablet/delta_compaction.h"
+#include "kudu/common/timestamp.h"
+#include "kudu/common/types.h"
+#include "kudu/fs/block_id.h"
+#include "kudu/fs/block_manager.h"
+#include "kudu/fs/fs_manager.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/port.h"
 #include "kudu/tablet/delta_iterator_merger.h"
-#include "kudu/gutil/strings/util.h"
+#include "kudu/tablet/delta_key.h"
+#include "kudu/tablet/delta_stats.h"
+#include "kudu/tablet/delta_store.h"
+#include "kudu/tablet/deltafile.h"
+#include "kudu/tablet/mvcc.h"
+#include "kudu/util/faststring.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
 #include "kudu/util/test_macros.h"
-#include "kudu/util/stopwatch.h"
 #include "kudu/util/test_util.h"
-#include "kudu/util/env.h"
-#include "kudu/util/env_util.h"
-#include "kudu/util/path_util.h"
-#include "kudu/util/status.h"
-#include "kudu/util/auto_release_pool.h"
 
 DEFINE_int32(num_rows, 2100, "the first row to update");
 DEFINE_int32(num_delta_files, 3, "number of delta files");

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/delta_compaction.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/delta_compaction.cc b/src/kudu/tablet/delta_compaction.cc
index ee110af..bdefa0a 100644
--- a/src/kudu/tablet/delta_compaction.cc
+++ b/src/kudu/tablet/delta_compaction.cc
@@ -17,24 +17,37 @@
 
 #include "kudu/tablet/delta_compaction.h"
 
-#include <algorithm>
 #include <map>
+#include <ostream>
 #include <string>
+#include <utility>
 #include <vector>
 
+#include <glog/logging.h>
+
 #include "kudu/common/generic_iterators.h"
-#include "kudu/gutil/stl_util.h"
-#include "kudu/gutil/strings/join.h"
+#include "kudu/common/iterator.h"
+#include "kudu/common/row.h"
+#include "kudu/common/row_changelist.h"
+#include "kudu/common/rowblock.h"
+#include "kudu/common/rowid.h"
+#include "kudu/common/scan_spec.h"
+#include "kudu/fs/block_manager.h"
+#include "kudu/fs/fs_manager.h"
+#include "kudu/gutil/casts.h"
+#include "kudu/gutil/map-util.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/gutil/strings/strcat.h"
-#include "kudu/common/columnblock.h"
-#include "kudu/cfile/cfile_reader.h"
 #include "kudu/tablet/cfile_set.h"
 #include "kudu/tablet/compaction.h"
 #include "kudu/tablet/delta_key.h"
-#include "kudu/tablet/deltamemstore.h"
+#include "kudu/tablet/delta_stats.h"
+#include "kudu/tablet/delta_tracker.h"
+#include "kudu/tablet/deltafile.h"
 #include "kudu/tablet/multi_column_writer.h"
+#include "kudu/tablet/mutation.h"
 #include "kudu/tablet/mvcc.h"
+#include "kudu/tablet/rowset_metadata.h"
+#include "kudu/util/memory/arena.h"
 
 using std::shared_ptr;
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/delta_compaction.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/delta_compaction.h b/src/kudu/tablet/delta_compaction.h
index 6f0b788..4397804 100644
--- a/src/kudu/tablet/delta_compaction.h
+++ b/src/kudu/tablet/delta_compaction.h
@@ -17,24 +17,29 @@
 #ifndef KUDU_TABLET_DELTA_COMPACTION_H
 #define KUDU_TABLET_DELTA_COMPACTION_H
 
+#include <cstddef>
 #include <memory>
 #include <string>
-#include <unordered_map>
-#include <utility>
 #include <vector>
 
-#include "kudu/cfile/cfile_writer.h"
+#include "kudu/common/schema.h"
+#include "kudu/fs/block_id.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/tablet/compaction.h"
-#include "kudu/tablet/deltafile.h"
+#include "kudu/tablet/delta_store.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 
+class FsManager;
+
 namespace tablet {
 
 class CFileSet;
-class DeltaMemStore;
-class DeltaKey;
+class DeltaFileWriter;
+class DeltaTracker;
 class MultiColumnWriter;
+class RowSetMetadataUpdate;
 
 // Handles major delta compaction: applying deltas to specific columns
 // of a DiskRowSet, writing out an updated DiskRowSet without re-writing the

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/delta_iterator_merger.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/delta_iterator_merger.cc b/src/kudu/tablet/delta_iterator_merger.cc
index d19aa62..b287fda 100644
--- a/src/kudu/tablet/delta_iterator_merger.cc
+++ b/src/kudu/tablet/delta_iterator_merger.cc
@@ -19,14 +19,22 @@
 
 #include <algorithm>
 
-#include "kudu/gutil/strings/join.h"
-#include "kudu/gutil/strings/strcat.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/tablet/deltafile.h"
+#include "kudu/tablet/delta_key.h"
 
 namespace kudu {
+
+class Arena;
+class ColumnBlock;
+class Schema;
+class SelectionVector;
+struct ColumnId;
+
 namespace tablet {
 
+class Mutation;
+class MvccSnapshot;
+
 using std::shared_ptr;
 using std::string;
 using std::unique_ptr;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/delta_iterator_merger.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/delta_iterator_merger.h b/src/kudu/tablet/delta_iterator_merger.h
index 139cdd4..2d77400 100644
--- a/src/kudu/tablet/delta_iterator_merger.h
+++ b/src/kudu/tablet/delta_iterator_merger.h
@@ -17,18 +17,30 @@
 #ifndef KUDU_TABLET_DELTA_ITERATOR_MERGER_H
 #define KUDU_TABLET_DELTA_ITERATOR_MERGER_H
 
+#include <cstddef>
 #include <string>
 #include <memory>
 #include <vector>
 
+#include "kudu/common/rowid.h"
+#include "kudu/gutil/port.h"
 #include "kudu/tablet/delta_store.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 
+class Arena;
+class ColumnBlock;
 class ScanSpec;
+class Schema;
+class SelectionVector;
+struct ColumnId;
 
 namespace tablet {
 
+class Mutation;
+class MvccSnapshot;
+
 // DeltaIterator that simply combines together other DeltaIterators,
 // applying deltas from each in order.
 class DeltaIteratorMerger : public DeltaIterator {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/delta_key.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/delta_key.cc b/src/kudu/tablet/delta_key.cc
index 879e4bd..0fed0c8 100644
--- a/src/kudu/tablet/delta_key.cc
+++ b/src/kudu/tablet/delta_key.cc
@@ -15,10 +15,13 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include "kudu/tablet/delta_key.h"
+#include <ostream>
 
 #include <glog/logging.h>
 
+#include "kudu/tablet/delta_key.h"
+#include "kudu/util/logging.h"
+
 namespace kudu {
 namespace tablet {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/delta_key.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/delta_key.h b/src/kudu/tablet/delta_key.h
index 68ca198..1beddc1 100644
--- a/src/kudu/tablet/delta_key.h
+++ b/src/kudu/tablet/delta_key.h
@@ -20,13 +20,16 @@
 #include <string>
 
 #include "kudu/common/rowid.h"
-#include "kudu/gutil/endian.h"
+#include "kudu/common/timestamp.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/tablet/mvcc.h"
-#include "kudu/util/logging.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
+
+class faststring;
+
 namespace tablet {
 
 // The type of the delta.

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/delta_stats.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/delta_stats.cc b/src/kudu/tablet/delta_stats.cc
index a3ffbee..0db1343 100644
--- a/src/kudu/tablet/delta_stats.cc
+++ b/src/kudu/tablet/delta_stats.cc
@@ -16,13 +16,18 @@
 // under the License.
 #include "kudu/tablet/delta_stats.h"
 
+#include <cstdint>
+#include <ostream>
 #include <utility>
 #include <vector>
 
+#include <glog/logging.h>
+
+#include "kudu/common/row_changelist.h"
+#include "kudu/common/schema.h"
 #include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/tablet/tablet.pb.h"
-#include "kudu/util/bitmap.h"
 
 using strings::Substitute;
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/delta_stats.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/delta_stats.h b/src/kudu/tablet/delta_stats.h
index a5213c0..1d5a134 100644
--- a/src/kudu/tablet/delta_stats.h
+++ b/src/kudu/tablet/delta_stats.h
@@ -17,21 +17,20 @@
 #ifndef KUDU_TABLET_DELTA_STATS_H
 #define KUDU_TABLET_DELTA_STATS_H
 
-#include <glog/logging.h>
-#include <boost/function.hpp>
-
+#include <cstdint>
 #include <set>
-#include <stdint.h>
 #include <string>
 #include <unordered_map>
 
-#include "kudu/gutil/atomicops.h"
+#include "kudu/common/schema.h" // IWYU pragma: keep
+#include "kudu/common/timestamp.h"
 #include "kudu/gutil/map-util.h"
-#include "kudu/common/row_changelist.h"
-#include "kudu/tablet/mvcc.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 
+class RowChangeList;
+
 namespace tablet {
 
 class DeltaStatsPB;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/delta_store.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/delta_store.cc b/src/kudu/tablet/delta_store.cc
index 6eaa307..8c9f0a3 100644
--- a/src/kudu/tablet/delta_store.cc
+++ b/src/kudu/tablet/delta_store.cc
@@ -18,10 +18,20 @@
 #include "kudu/tablet/delta_store.h"
 
 #include <algorithm>
+#include <cstdlib>
 
+#include <glog/logging.h>
+
+#include "kudu/common/row_changelist.h"
+#include "kudu/common/scan_spec.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/timestamp.h"
+#include "kudu/gutil/stringprintf.h"
 #include "kudu/gutil/strings/strcat.h"
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/tablet/delta_stats.h"
 #include "kudu/tablet/deltafile.h"
+#include "kudu/util/memory/arena.h"
 
 namespace kudu {
 namespace tablet {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/delta_store.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/delta_store.h b/src/kudu/tablet/delta_store.h
index 564d33f..9f5416b 100644
--- a/src/kudu/tablet/delta_store.h
+++ b/src/kudu/tablet/delta_store.h
@@ -17,28 +17,33 @@
 #ifndef KUDU_TABLET_DELTA_STORE_H
 #define KUDU_TABLET_DELTA_STORE_H
 
+#include <cstddef>
+#include <cstdint>
 #include <memory>
 #include <string>
 #include <vector>
 
-#include "kudu/common/columnblock.h"
-#include "kudu/common/schema.h"
-#include "kudu/util/status.h"
-#include "kudu/tablet/mutation.h"
-#include "kudu/tablet/mvcc.h"
+#include "kudu/common/rowid.h"
 #include "kudu/tablet/delta_key.h"
-#include "kudu/tablet/delta_stats.h"
-#include "kudu/tablet/tablet_metadata.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 
+class Arena;
+class ColumnBlock;
 class ScanSpec;
+class Schema;
 class SelectionVector;
+struct ColumnId;
 
 namespace tablet {
 
-class DeltaIterator;
 class DeltaFileWriter;
+class DeltaIterator;
+class DeltaStats;
+class Mutation;
+class MvccSnapshot;
 
 // Interface for the pieces of the system that track deltas/updates.
 // This is implemented by DeltaMemStore and by DeltaFileReader.

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/delta_tracker.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/delta_tracker.cc b/src/kudu/tablet/delta_tracker.cc
index cbaaff2..6e3fa88 100644
--- a/src/kudu/tablet/delta_tracker.cc
+++ b/src/kudu/tablet/delta_tracker.cc
@@ -17,25 +17,47 @@
 
 #include "kudu/tablet/delta_tracker.h"
 
-#include <boost/range/adaptor/reversed.hpp>
-#include <glog/stl_logging.h>
+#include <algorithm>
 #include <mutex>
+#include <ostream>
 #include <set>
-#include <utility>
+#include <string>
 
+#include <boost/range/adaptor/reversed.hpp>
+#include <glog/logging.h>
+#include <glog/stl_logging.h>
+
+#include "kudu/cfile/cfile_util.h"
+#include "kudu/common/iterator.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/timestamp.h"
+#include "kudu/fs/block_id.h"
+#include "kudu/fs/block_manager.h"
+#include "kudu/fs/fs_manager.h"
+#include "kudu/gutil/basictypes.h"
+#include "kudu/gutil/casts.h"
 #include "kudu/gutil/strings/join.h"
-#include "kudu/gutil/strings/strip.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/tablet/delta_applier.h"
-#include "kudu/tablet/delta_compaction.h"
 #include "kudu/tablet/delta_iterator_merger.h"
+#include "kudu/tablet/delta_stats.h"
 #include "kudu/tablet/delta_store.h"
 #include "kudu/tablet/deltafile.h"
-#include "kudu/tablet/diskrowset.h"
+#include "kudu/tablet/deltamemstore.h"
+#include "kudu/tablet/mvcc.h"
+#include "kudu/tablet/rowset.h"
+#include "kudu/tablet/rowset_metadata.h"
 #include "kudu/tablet/tablet.pb.h"
+#include "kudu/tablet/tablet_metadata.h"
+#include "kudu/util/logging.h"
 #include "kudu/util/status.h"
+#include "kudu/util/make_shared.h"
+#include "kudu/util/monotime.h"
 
 namespace kudu {
+
+class RowChangeList;
+
 namespace tablet {
 
 using cfile::ReaderOptions;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/delta_tracker.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/delta_tracker.h b/src/kudu/tablet/delta_tracker.h
index 3c66230..b576011 100644
--- a/src/kudu/tablet/delta_tracker.h
+++ b/src/kudu/tablet/delta_tracker.h
@@ -17,39 +17,56 @@
 #ifndef KUDU_TABLET_DELTATRACKER_H
 #define KUDU_TABLET_DELTATRACKER_H
 
-#include <gtest/gtest_prod.h>
+#include <cstddef>
+#include <cstdint>
 #include <memory>
 #include <string>
 #include <vector>
 
-#include "kudu/common/iterator.h"
+#include <gtest/gtest_prod.h>
+
 #include "kudu/common/rowid.h"
-#include "kudu/consensus/metadata.pb.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/tablet/cfile_set.h"
+#include "kudu/tablet/delta_key.h"
 #include "kudu/tablet/delta_store.h"
 #include "kudu/tablet/tablet_mem_trackers.h"
 #include "kudu/util/atomic.h"
+#include "kudu/util/locks.h"
+#include "kudu/util/mutex.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
 
-class MemTracker;
+class BlockId;
+class ColumnwiseIterator;
+class MonoTime;
+class RowChangeList;
+class Schema;
+class Timestamp;
+struct ColumnId;
 
 namespace consensus {
 class OpId;
 }
 
+namespace fs {
+class WritableBlock;
+}
+
 namespace log {
 class LogAnchorRegistry;
 }
 
 namespace tablet {
 
-class DeltaMemStore;
 class DeltaFileReader;
+class DeltaMemStore;
+class MvccSnapshot;
 class OperationResultPB;
-class MemStoreTargetPB;
+class RowSetMetadata;
+class RowSetMetadataUpdate;
 struct ProbeStats;
 
 // The DeltaTracker is the part of a DiskRowSet which is responsible for

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/deltafile-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/deltafile-test.cc b/src/kudu/tablet/deltafile-test.cc
index 6bedbb1..ab524a6 100644
--- a/src/kudu/tablet/deltafile-test.cc
+++ b/src/kudu/tablet/deltafile-test.cc
@@ -15,18 +15,43 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <algorithm>
+#include <cstddef>
+#include <cstdint>
 #include <memory>
+#include <ostream>
+#include <string>
+#include <vector>
 
 #include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
 #include <gtest/gtest.h>
 
 #include "kudu/cfile/cfile_util.h"
+#include "kudu/common/columnblock.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/row_changelist.h"
+#include "kudu/common/rowblock.h"
+#include "kudu/common/rowid.h"
 #include "kudu/common/schema.h"
+#include "kudu/common/timestamp.h"
+#include "kudu/fs/block_id.h"
+#include "kudu/fs/block_manager.h"
 #include "kudu/fs/fs-test-util.h"
-#include "kudu/gutil/strings/strcat.h"
+#include "kudu/fs/fs_manager.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/port.h"
+#include "kudu/tablet/delta_key.h"
+#include "kudu/tablet/delta_stats.h"
 #include "kudu/tablet/delta_store.h"
-#include "kudu/tablet/delta_tracker.h"
 #include "kudu/tablet/deltafile.h"
+#include "kudu/tablet/mutation.h"
+#include "kudu/tablet/mvcc.h"
+#include "kudu/util/faststring.h"
+#include "kudu/util/memory/arena.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 DECLARE_int32(deltafile_default_block_size);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/deltafile.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/deltafile.cc b/src/kudu/tablet/deltafile.cc
index f96903e..9a822fa 100644
--- a/src/kudu/tablet/deltafile.cc
+++ b/src/kudu/tablet/deltafile.cc
@@ -17,24 +17,38 @@
 
 #include "kudu/tablet/deltafile.h"
 
-#include <arpa/inet.h>
+#include <algorithm>
 #include <memory>
+#include <ostream>
 #include <string>
 
-#include "kudu/common/wire_protocol.h"
+#include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
+
 #include "kudu/cfile/binary_plain_block.h"
-#include "kudu/cfile/block_encodings.h"
 #include "kudu/cfile/block_handle.h"
 #include "kudu/cfile/cfile_reader.h"
+#include "kudu/cfile/cfile_util.h"
 #include "kudu/cfile/cfile_writer.h"
+#include "kudu/common/columnblock.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/row_changelist.h"
+#include "kudu/common/rowblock.h"
+#include "kudu/common/scan_spec.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/timestamp.h"
+#include "kudu/common/types.h"
+#include "kudu/fs/block_manager.h"
+#include "kudu/fs/fs_manager.h"
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/mathlimits.h"
+#include "kudu/gutil/stringprintf.h"
 #include "kudu/tablet/mutation.h"
 #include "kudu/tablet/mvcc.h"
-#include "kudu/util/coding-inl.h"
+#include "kudu/tablet/tablet.pb.h"
 #include "kudu/util/compression/compression_codec.h"
 #include "kudu/util/flag_tags.h"
-#include "kudu/util/hexdump.h"
+#include "kudu/util/memory/arena.h"
 #include "kudu/util/pb_util.h"
 #include "kudu/util/trace.h"
 
@@ -55,6 +69,8 @@ using std::vector;
 
 namespace kudu {
 
+class MemTracker;
+
 using cfile::BinaryPlainBlockDecoder;
 using cfile::BlockPointer;
 using cfile::CFileReader;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/deltafile.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/deltafile.h b/src/kudu/tablet/deltafile.h
index ada35a5..43c5301 100644
--- a/src/kudu/tablet/deltafile.h
+++ b/src/kudu/tablet/deltafile.h
@@ -17,37 +17,61 @@
 #ifndef KUDU_TABLET_DELTAFILE_H
 #define KUDU_TABLET_DELTAFILE_H
 
+#include <cstddef>
+#include <cstdint>
 #include <deque>
 #include <memory>
 #include <string>
 #include <vector>
 
+#include <glog/logging.h>
+
+#include "kudu/cfile/binary_plain_block.h"
 #include "kudu/cfile/block_handle.h"
+#include "kudu/cfile/block_pointer.h"
 #include "kudu/cfile/cfile_reader.h"
 #include "kudu/cfile/cfile_writer.h"
 #include "kudu/cfile/index_btree.h"
-#include "kudu/common/columnblock.h"
-#include "kudu/common/schema.h"
-#include "kudu/fs/block_id.h"
+#include "kudu/common/rowid.h"
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
-#include "kudu/tablet/deltamemstore.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/strings/substitute.h"
 #include "kudu/tablet/delta_key.h"
-#include "kudu/tablet/tablet.pb.h"
+#include "kudu/tablet/delta_stats.h"
+#include "kudu/tablet/delta_store.h"
+#include "kudu/tablet/mvcc.h"
+#include "kudu/util/faststring.h"
 #include "kudu/util/once.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 
+class Arena;
+class BlockId;
+class ColumnBlock;
+class FsManager;
+class MemTracker;
+class RowChangeList;
 class ScanSpec;
+class Schema;
+class SelectionVector;
+struct ColumnId;
 
 namespace cfile {
-class BinaryPlainBlockDecoder;
+struct ReaderOptions;
 } // namespace cfile
 
+namespace fs {
+class ReadableBlock;
+class ScopedWritableBlockCloser;
+class WritableBlock;
+} // namespace fs
+
 namespace tablet {
 
-class DeltaFileIterator;
-class DeltaKey;
+class Mutation;
 template<DeltaType Type>
 struct ApplyingVisitor;
 template<DeltaType Type>

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/deltamemstore-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/deltamemstore-test.cc b/src/kudu/tablet/deltamemstore-test.cc
index a523c31..6b77da6 100644
--- a/src/kudu/tablet/deltamemstore-test.cc
+++ b/src/kudu/tablet/deltamemstore-test.cc
@@ -15,21 +15,50 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <gtest/gtest.h>
+#include <algorithm>
+#include <cstdint>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
 #include <memory>
-#include <stdlib.h>
+#include <ostream>
+#include <string>
 #include <unordered_set>
+#include <utility>
+#include <vector>
+
+#include <gflags/gflags.h>
+#include <glog/logging.h>
+#include <gtest/gtest.h>
 
+#include "kudu/clock/clock.h"
 #include "kudu/clock/logical_clock.h"
+#include "kudu/common/columnblock.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/row_changelist.h"
 #include "kudu/common/schema.h"
-#include "kudu/consensus/consensus.pb.h"
+#include "kudu/common/timestamp.h"
+#include "kudu/common/types.h"
+#include "kudu/consensus/log_anchor_registry.h"
+#include "kudu/consensus/opid.pb.h"
 #include "kudu/consensus/opid_util.h"
+#include "kudu/fs/block_manager.h"
+#include "kudu/fs/fs_manager.h"
 #include "kudu/gutil/casts.h"
 #include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
+#include "kudu/tablet/delta_stats.h"
+#include "kudu/tablet/delta_store.h"
 #include "kudu/tablet/deltafile.h"
 #include "kudu/tablet/deltamemstore.h"
 #include "kudu/tablet/mutation.h"
+#include "kudu/tablet/mvcc.h"
+#include "kudu/util/faststring.h"
 #include "kudu/util/mem_tracker.h"
+#include "kudu/util/memory/arena.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
 #include "kudu/util/stopwatch.h"
 #include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/deltamemstore.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/deltamemstore.cc b/src/kudu/tablet/deltamemstore.cc
index 3cd9939..d929fa8 100644
--- a/src/kudu/tablet/deltamemstore.cc
+++ b/src/kudu/tablet/deltamemstore.cc
@@ -15,17 +15,29 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <cstring>
+#include <ostream>
 #include <utility>
 
-#include "kudu/consensus/consensus.pb.h"
+#include <glog/logging.h>
+
+#include "kudu/common/columnblock.h"
+#include "kudu/common/row.h"
+#include "kudu/common/row_changelist.h"
+#include "kudu/common/rowblock.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/timestamp.h"
+#include "kudu/common/types.h"
+#include "kudu/consensus/opid.pb.h"
 #include "kudu/gutil/port.h"
+#include "kudu/gutil/strings/substitute.h"
 #include "kudu/tablet/deltafile.h"
 #include "kudu/tablet/deltamemstore.h"
-#include "kudu/tablet/delta_tracker.h"
+#include "kudu/tablet/mutation.h"
 #include "kudu/tablet/mvcc.h"
-#include "kudu/tablet/tablet.h"
-#include "kudu/util/hexdump.h"
-#include "kudu/util/mem_tracker.h"
+#include "kudu/util/debug-util.h"
+#include "kudu/util/memcmpable_varint.h"
+#include "kudu/util/memory/memory.h"
 #include "kudu/util/status.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/deltamemstore.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/deltamemstore.h b/src/kudu/tablet/deltamemstore.h
index 240f3c6..228e6a5 100644
--- a/src/kudu/tablet/deltamemstore.h
+++ b/src/kudu/tablet/deltamemstore.h
@@ -17,37 +17,51 @@
 #ifndef KUDU_TABLET_DELTAMEMSTORE_H
 #define KUDU_TABLET_DELTAMEMSTORE_H
 
+#include <cstddef>
+#include <cstdint>
 #include <deque>
-#include <gtest/gtest_prod.h>
 #include <memory>
 #include <string>
 #include <vector>
 
-#include "kudu/common/columnblock.h"
-#include "kudu/common/rowblock.h"
-#include "kudu/common/schema.h"
+#include <gtest/gtest_prod.h>
+
+#include "kudu/common/rowid.h"
 #include "kudu/consensus/log_anchor_registry.h"
 #include "kudu/gutil/atomicops.h"
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
 #include "kudu/tablet/concurrent_btree.h"
 #include "kudu/tablet/delta_key.h"
-#include "kudu/tablet/delta_tracker.h"
 #include "kudu/tablet/delta_stats.h"
+#include "kudu/tablet/delta_store.h"
 #include "kudu/tablet/mvcc.h"
 #include "kudu/util/atomic.h"
+#include "kudu/util/faststring.h"
 #include "kudu/util/memory/arena.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 
+class ColumnBlock;
 class MemTracker;
+class MemoryTrackingBufferAllocator;
 class RowChangeList;
+class ScanSpec;
+class Schema;
+class SelectionVector;
+class Timestamp;
+struct ColumnId;
+
+namespace consensus {
+class OpId;
+}
 
 namespace tablet {
 
 class DeltaFileWriter;
-class DeltaStats;
-class DMSIterator;
 class Mutation;
 
 struct DMSTreeTraits : public btree::BTreeTraits {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/diskrowset-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/diskrowset-test.cc b/src/kudu/tablet/diskrowset-test.cc
index 4520af0..67ce374 100644
--- a/src/kudu/tablet/diskrowset-test.cc
+++ b/src/kudu/tablet/diskrowset-test.cc
@@ -15,20 +15,49 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <algorithm>
+#include <cstdint>
+#include <memory>
+#include <ostream>
+#include <string>
+#include <type_traits>
+#include <unordered_set>
+#include <vector>
+
 #include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
 #include <glog/logging.h>
 #include <gtest/gtest.h>
-#include <memory>
-#include <time.h>
 
+#include "kudu/clock/clock.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/iterator.h"
 #include "kudu/common/row.h"
+#include "kudu/common/row_changelist.h"
 #include "kudu/common/schema.h"
+#include "kudu/common/timestamp.h"
+#include "kudu/fs/block_id.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/move.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/stringprintf.h"
-#include "kudu/tablet/delta_compaction.h"
-#include "kudu/tablet/diskrowset.h"
+#include "kudu/gutil/strings/stringpiece.h"
+#include "kudu/tablet/compaction.h"
+#include "kudu/tablet/delta_key.h"
+#include "kudu/tablet/delta_store.h"
+#include "kudu/tablet/delta_tracker.h"
+#include "kudu/tablet/deltamemstore.h"
 #include "kudu/tablet/diskrowset-test-base.h"
+#include "kudu/tablet/diskrowset.h"
+#include "kudu/tablet/mvcc.h"
+#include "kudu/tablet/rowset.h"
+#include "kudu/tablet/rowset_metadata.h"
 #include "kudu/tablet/tablet-test-util.h"
-#include "kudu/util/env.h"
+#include "kudu/tablet/tablet.h"
+#include "kudu/tablet/tablet.pb.h"
+#include "kudu/util/bloom_filter.h"
+#include "kudu/util/faststring.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
 #include "kudu/util/stopwatch.h"
 #include "kudu/util/test_macros.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/diskrowset.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/diskrowset.cc b/src/kudu/tablet/diskrowset.cc
index d63aab2..f4f015b 100644
--- a/src/kudu/tablet/diskrowset.cc
+++ b/src/kudu/tablet/diskrowset.cc
@@ -20,31 +20,41 @@
 #include <algorithm>
 #include <map>
 #include <mutex>
-#include <utility>
+#include <ostream>
 #include <vector>
 
-#include <boost/optional.hpp>
+#include <boost/optional/optional.hpp>
+#include <gflags/gflags.h>
 #include <glog/logging.h>
 #include <glog/stl_logging.h>
 
 #include "kudu/cfile/bloomfile.h"
+#include "kudu/cfile/cfile_util.h"
 #include "kudu/cfile/cfile_writer.h"
-#include "kudu/cfile/type_encodings.h"
 #include "kudu/common/generic_iterators.h"
 #include "kudu/common/iterator.h"
+#include "kudu/common/rowblock.h"
 #include "kudu/common/schema.h"
-#include "kudu/consensus/log_anchor_registry.h"
+#include "kudu/common/timestamp.h"
+#include "kudu/common/types.h"
+#include "kudu/fs/fs_manager.h"
 #include "kudu/gutil/gscoped_ptr.h"
-#include "kudu/gutil/stl_util.h"
 #include "kudu/tablet/cfile_set.h"
 #include "kudu/tablet/compaction.h"
 #include "kudu/tablet/delta_compaction.h"
+#include "kudu/tablet/delta_stats.h"
 #include "kudu/tablet/delta_store.h"
+#include "kudu/tablet/deltafile.h"
 #include "kudu/tablet/multi_column_writer.h"
+#include "kudu/tablet/mutation.h"
+#include "kudu/tablet/mvcc.h"
+#include "kudu/util/compression/compression.pb.h"
 #include "kudu/util/debug/trace_event.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/locks.h"
 #include "kudu/util/logging.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
 
 DEFINE_int32(tablet_delta_store_minor_compact_max, 1000,
@@ -62,6 +72,11 @@ DEFINE_int32(default_composite_key_index_block_size_bytes, 4096,
 TAG_FLAG(default_composite_key_index_block_size_bytes, experimental);
 
 namespace kudu {
+
+namespace consensus {
+class OpId;
+}
+
 namespace tablet {
 
 using cfile::BloomFileWriter;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/diskrowset.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/diskrowset.h b/src/kudu/tablet/diskrowset.h
index c32155e..919e8fc 100644
--- a/src/kudu/tablet/diskrowset.h
+++ b/src/kudu/tablet/diskrowset.h
@@ -22,37 +22,54 @@
 #ifndef KUDU_TABLET_DISKROWSET_H_
 #define KUDU_TABLET_DISKROWSET_H_
 
-#include <gtest/gtest_prod.h>
+#include <cstddef>
+#include <cstdint>
 #include <memory>
 #include <mutex>
 #include <string>
 #include <vector>
 
-#include "kudu/common/row.h"
+#include <glog/logging.h>
+#include <gtest/gtest_prod.h>
+
+#include "kudu/common/common.pb.h"
+#include "kudu/common/rowid.h"
 #include "kudu/common/schema.h"
+#include "kudu/fs/block_id.h"
 #include "kudu/fs/block_manager.h"
+#include "kudu/fs/fs_manager.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/strings/substitute.h"
 #include "kudu/tablet/delta_key.h"
-#include "kudu/tablet/rowset_metadata.h"
+#include "kudu/tablet/delta_tracker.h"
 #include "kudu/tablet/rowset.h"
+#include "kudu/tablet/rowset_metadata.h"
 #include "kudu/tablet/tablet_mem_trackers.h"
-#include "kudu/util/atomic.h"
+#include "kudu/tablet/tablet_metadata.h"
 #include "kudu/util/bloom_filter.h"
+#include "kudu/util/faststring.h"
 #include "kudu/util/locks.h"
-#include "kudu/util/mem_tracker.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 
-class FsManager;
-class MemTracker;
+class MonoTime;
 class RowBlock;
 class RowChangeList;
+class RowwiseIterator;
+class Timestamp;
 
 namespace cfile {
 class BloomFileWriter;
 class CFileWriter;
 }
 
+namespace consensus {
+class OpId;
+}
+
 namespace log {
 class LogAnchorRegistry;
 }
@@ -60,12 +77,13 @@ class LogAnchorRegistry;
 namespace tablet {
 
 class CFileSet;
+class CompactionInput;
 class DeltaFileWriter;
 class DeltaStats;
-class DeltaTracker;
 class HistoryGcOpts;
 class MultiColumnWriter;
 class Mutation;
+class MvccSnapshot;
 class OperationResultPB;
 
 class DiskRowSetWriter {
@@ -261,7 +279,6 @@ class RollingDiskRowSetWriter {
 ////////////////////////////////////////////////////////////
 
 class MajorDeltaCompaction;
-class RowSetColumnUpdater;
 
 class DiskRowSet : public RowSet {
  public:

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/lock_manager-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/lock_manager-test.cc b/src/kudu/tablet/lock_manager-test.cc
index e61e127..5522640 100644
--- a/src/kudu/tablet/lock_manager-test.cc
+++ b/src/kudu/tablet/lock_manager-test.cc
@@ -16,15 +16,25 @@
 // under the License.
 
 #include <algorithm>
-#include <glog/logging.h>
-#include <gtest/gtest.h>
+#include <cstdint>
 #include <memory>
 #include <mutex>
+#include <ostream>
+#include <string>
 #include <vector>
 
-#include "kudu/gutil/gscoped_ptr.h"
+#include <gflags/gflags.h>
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
+#include "kudu/gutil/macros.h"
+#include "kudu/gutil/ref_counted.h"
+#include "kudu/gutil/stringprintf.h"
 #include "kudu/tablet/lock_manager.h"
 #include "kudu/util/env.h"
+#include "kudu/util/make_shared.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
 #include "kudu/util/stopwatch.h"
 #include "kudu/util/test_util.h"
 #include "kudu/util/thread.h"
@@ -39,6 +49,9 @@ DEFINE_int32(num_iterations, 1000, "number of iterations per client thread");
 namespace kudu {
 namespace tablet {
 
+class LockEntry;
+class TransactionState;
+
 static const TransactionState* kFakeTransaction =
   reinterpret_cast<TransactionState*>(0xdeadbeef);
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/lock_manager.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/lock_manager.cc b/src/kudu/tablet/lock_manager.cc
index 2bd2b88..5b18135 100644
--- a/src/kudu/tablet/lock_manager.cc
+++ b/src/kudu/tablet/lock_manager.cc
@@ -17,17 +17,23 @@
 
 #include "kudu/tablet/lock_manager.h"
 
-#include <glog/logging.h>
+#include <cstdint>
 #include <mutex>
-#include <semaphore.h>
+#include <ostream>
 #include <string>
 
+#include <glog/logging.h>
+
+#include "kudu/gutil/atomicops.h"
 #include "kudu/gutil/dynamic_annotations.h"
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/hash/city.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/walltime.h"
+#include "kudu/util/faststring.h"
 #include "kudu/util/locks.h"
 #include "kudu/util/logging.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/semaphore.h"
 #include "kudu/util/trace.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/lock_manager.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/lock_manager.h b/src/kudu/tablet/lock_manager.h
index 731a897..27e9af5 100644
--- a/src/kudu/tablet/lock_manager.h
+++ b/src/kudu/tablet/lock_manager.h
@@ -17,13 +17,13 @@
 #ifndef KUDU_TABLET_LOCK_MANAGER_H
 #define KUDU_TABLET_LOCK_MANAGER_H
 
+#include <cstddef>
+
 #include "kudu/gutil/macros.h"
-#include "kudu/gutil/move.h"
 #include "kudu/util/slice.h"
 
 namespace kudu { namespace tablet {
 
-class LockManager;
 class LockTable;
 class LockEntry;
 class TransactionState;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/major_delta_compaction-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/major_delta_compaction-test.cc b/src/kudu/tablet/major_delta_compaction-test.cc
index a3e4299..e97d6e7 100644
--- a/src/kudu/tablet/major_delta_compaction-test.cc
+++ b/src/kudu/tablet/major_delta_compaction-test.cc
@@ -15,23 +15,32 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <gflags/gflags.h>
-#include <glog/logging.h>
-#include <gtest/gtest.h>
+#include <algorithm>
+#include <cstdint>
 #include <memory>
+#include <ostream>
+#include <string>
 #include <unordered_set>
+#include <vector>
+
+#include <glog/logging.h>
+#include <gtest/gtest.h>
 
-#include "kudu/clock/logical_clock.h"
-#include "kudu/common/generic_iterators.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/iterator.h"
 #include "kudu/common/partial_row.h"
+#include "kudu/common/schema.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/stringprintf.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/gutil/strings/util.h"
-#include "kudu/tablet/cfile_set.h"
-#include "kudu/tablet/delta_compaction.h"
-#include "kudu/tablet/diskrowset-test-base.h"
 #include "kudu/tablet/local_tablet_writer.h"
+#include "kudu/tablet/mvcc.h"
+#include "kudu/tablet/rowset.h"
 #include "kudu/tablet/tablet-test-util.h"
-#include "kudu/util/test_util.h"
+#include "kudu/tablet/tablet.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 
 using std::shared_ptr;
 using std::string;