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:48 UTC

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

Repository: kudu
Updated Branches:
  refs/heads/master f9ed78753 -> 1d5606645


http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/subprocess-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/subprocess-test.cc b/src/kudu/util/subprocess-test.cc
index 9e7e5cb..6c2235b 100644
--- a/src/kudu/util/subprocess-test.cc
+++ b/src/kudu/util/subprocess-test.cc
@@ -19,13 +19,20 @@
 
 #include <unistd.h>
 
+#include <csignal>
+#include <cstdio>
+#include <cstdlib>
+#include <memory>
 #include <string>
 #include <vector>
 
+#include <glog/logging.h>
 #include <gtest/gtest.h>
 
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/util/env.h"
 #include "kudu/util/path_util.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/util/subprocess.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/subprocess.cc b/src/kudu/util/subprocess.cc
index 5944cc8..8b6cf60 100644
--- a/src/kudu/util/subprocess.cc
+++ b/src/kudu/util/subprocess.cc
@@ -20,17 +20,19 @@
 #include <dirent.h>
 #include <fcntl.h>
 #include <signal.h>
-#include <stdio.h>
 #if defined(__linux__)
 #include <sys/prctl.h>
 #endif
-#include <sys/types.h>
 #include <sys/wait.h>
 #include <unistd.h>
 
+#include <algorithm>
+#include <cerrno>
+#include <cstdint>
+#include <cstdlib>
 #include <functional>
 #include <memory>
-#include <sstream>
+#include <ostream>
 #include <string>
 #include <utility>
 #include <vector>
@@ -39,14 +41,14 @@
 #include <glog/logging.h>
 #include <glog/stl_logging.h>
 
-#include "kudu/gutil/once.h"
+#include "kudu/gutil/basictypes.h"
 #include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/numbers.h"
 #include "kudu/gutil/strings/split.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/util/debug-util.h"
 #include "kudu/util/errno.h"
+#include "kudu/util/make_shared.h"
 #include "kudu/util/monotime.h"
 #include "kudu/util/path_util.h"
 #include "kudu/util/signal.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/subprocess.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/subprocess.h b/src/kudu/util/subprocess.h
index 2f5ad05..3d3a73c 100644
--- a/src/kudu/util/subprocess.h
+++ b/src/kudu/util/subprocess.h
@@ -18,14 +18,14 @@
 #define KUDU_UTIL_SUBPROCESS_H
 
 #include <signal.h>
+#include <unistd.h>
 
 #include <map>
 #include <string>
 #include <vector>
 
-#include <glog/logging.h>
-
 #include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
 #include "kudu/util/status.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/test_graph.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/test_graph.cc b/src/kudu/util/test_graph.cc
index 052ad9c..59f4d30 100644
--- a/src/kudu/util/test_graph.cc
+++ b/src/kudu/util/test_graph.cc
@@ -17,13 +17,17 @@
 
 #include "kudu/util/test_graph.h"
 
-#include <glog/logging.h>
 #include <mutex>
+#include <ostream>
+#include <utility>
+
+#include <glog/logging.h>
 
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/stringprintf.h"
 #include "kudu/gutil/walltime.h"
-#include "kudu/util/locks.h"
+#include "kudu/util/faststring.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/status.h"
 #include "kudu/util/thread.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/test_graph.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/test_graph.h b/src/kudu/util/test_graph.h
index 6ea49ca..aa4344a 100644
--- a/src/kudu/util/test_graph.h
+++ b/src/kudu/util/test_graph.h
@@ -17,6 +17,7 @@
 #ifndef KUDU_TEST_GRAPH_COLLECTOR_H
 #define KUDU_TEST_GRAPH_COLLECTOR_H
 
+#include <algorithm>
 #include <memory>
 #include <string>
 #include <unordered_map>
@@ -25,12 +26,14 @@
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/walltime.h"
 #include "kudu/util/countdown_latch.h"
-#include "kudu/util/faststring.h"
 #include "kudu/util/locks.h"
-#include "kudu/util/thread.h"
+#include "kudu/util/mutex.h"
 
 namespace kudu {
 
+class Thread;
+class faststring;
+
 class TimeSeries {
  public:
   void AddValue(double val);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/test_main.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/test_main.cc b/src/kudu/util/test_main.cc
index fa88f21..c75e5ae 100644
--- a/src/kudu/util/test_main.cc
+++ b/src/kudu/util/test_main.cc
@@ -15,17 +15,19 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <cstdlib>
+#include <ostream>
 #include <thread>
 
 #include <gflags/gflags.h>
 #include <glog/logging.h>
 #include <gtest/gtest.h>
 
+#include "kudu/gutil/atomicops.h"
 #include "kudu/util/debug/leakcheck_disabler.h"
-#include "kudu/util/pstack_watcher.h"
 #include "kudu/util/flags.h"
 #include "kudu/util/minidump.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/pstack_watcher.h"
 #include "kudu/util/signal.h"
 #include "kudu/util/status.h"
 #include "kudu/util/test_util.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/test_util.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/test_util.cc b/src/kudu/util/test_util.cc
index 9180a7b..7ffbe84 100644
--- a/src/kudu/util/test_util.cc
+++ b/src/kudu/util/test_util.cc
@@ -14,18 +14,27 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
+
 #include "kudu/util/test_util.h"
 
+#include <unistd.h>
+
+#include <cstdlib>
+#include <cstring>
+#include <ostream>
 #include <limits>
+#include <memory>
 #include <map>
 #include <string>
+#include <utility>
 #include <vector>
 
 #include <gflags/gflags.h>
 #include <glog/logging.h>
-#include <glog/stl_logging.h>
 #include <gtest/gtest-spi.h>
 
+#include "kudu/gutil/integral_types.h"
+#include "kudu/gutil/strings/numbers.h"
 #include "kudu/gutil/strings/split.h"
 #include "kudu/gutil/strings/strcat.h"
 #include "kudu/gutil/strings/strip.h"
@@ -34,9 +43,10 @@
 #include "kudu/gutil/walltime.h"
 #include "kudu/util/env.h"
 #include "kudu/util/path_util.h"
-#include "kudu/util/random.h"
 #include "kudu/util/scoped_cleanup.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/spinlock_profiling.h"
+#include "kudu/util/status.h"
 #include "kudu/util/subprocess.h"
 
 DEFINE_string(test_leave_files, "on_failure",

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/test_util.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/test_util.h b/src/kudu/util/test_util.h
index 1eb8486..19dedc4 100644
--- a/src/kudu/util/test_util.h
+++ b/src/kudu/util/test_util.h
@@ -19,15 +19,18 @@
 #ifndef KUDU_UTIL_TEST_UTIL_H
 #define KUDU_UTIL_TEST_UTIL_H
 
+#include <sys/types.h>
+
+#include <cstdint>
 #include <functional>
-#include <gtest/gtest.h>
 #include <string>
 #include <vector>
 
-#include "kudu/gutil/gscoped_ptr.h"
-#include "kudu/util/env.h"
+#include <gflags/gflags.h>
+#include <gtest/gtest.h>
+
+#include "kudu/gutil/port.h"
 #include "kudu/util/monotime.h"
-#include "kudu/util/test_macros.h"
 
 #define ASSERT_EVENTUALLY(expr) do { \
   AssertEventually(expr); \
@@ -36,6 +39,9 @@
 
 namespace kudu {
 
+class Env;
+class Status;
+
 extern const char* kInvalidPath;
 
 class KuduTest : public ::testing::Test {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/thread-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/thread-test.cc b/src/kudu/util/thread-test.cc
index a52f2d4..a7d3d9c 100644
--- a/src/kudu/util/thread-test.cc
+++ b/src/kudu/util/thread-test.cc
@@ -17,12 +17,24 @@
 
 #include "kudu/util/thread.h"
 
-#include <gtest/gtest.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+#include <ostream>
 #include <string>
 
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
+#include "kudu/gutil/basictypes.h"
+#include "kudu/gutil/bind.h"
+#include "kudu/gutil/bind_helpers.h"
 #include "kudu/gutil/ref_counted.h"
+#include "kudu/util/countdown_latch.h"
 #include "kudu/util/env.h"
+#include "kudu/util/status.h"
 #include "kudu/util/test_util.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/thread_restrictions.h"
 
 using std::string;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/thread.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/thread.cc b/src/kudu/util/thread.cc
index 540483a..9bcb71f 100644
--- a/src/kudu/util/thread.cc
+++ b/src/kudu/util/thread.cc
@@ -19,32 +19,39 @@
 
 #include "kudu/util/thread.h"
 
+#if defined(__linux__)
+#include <sys/prctl.h>
+#endif // defined(__linux__)
 #include <sys/resource.h>
-#include <sys/syscall.h>
-#include <sys/time.h>
-#include <sys/types.h>
 #include <unistd.h>
 
 #include <algorithm>
+#include <cerrno>
+#include <cstring>
 #include <map>
 #include <memory>
-#include <set>
 #include <sstream>
 #include <vector>
+#include <utility>
 
-#if defined(__linux__)
-#include <sys/prctl.h>
-#endif // defined(__linux__)
+#include <boost/bind.hpp>
+#include <boost/smart_ptr/shared_ptr.hpp>
+#include <glog/logging.h>
 
 #include "kudu/gutil/atomicops.h"
+#include "kudu/gutil/basictypes.h"
+#include "kudu/gutil/bind.h"
+#include "kudu/gutil/bind_helpers.h"
 #include "kudu/gutil/dynamic_annotations.h"
+#include "kudu/gutil/integral_types.h"
 #include "kudu/gutil/mathlimits.h"
 #include "kudu/gutil/once.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/debug-util.h"
 #include "kudu/util/errno.h"
-#include "kudu/util/logging.h"
 #include "kudu/util/kernel_stack_watchdog.h"
+#include "kudu/util/logging.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/metrics.h"
 #include "kudu/util/mutex.h"
 #include "kudu/util/os-util.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/thread.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/thread.h b/src/kudu/util/thread.h
index 46e2505..17f67fa 100644
--- a/src/kudu/util/thread.h
+++ b/src/kudu/util/thread.h
@@ -21,18 +21,25 @@
 #define KUDU_UTIL_THREAD_H
 
 #include <pthread.h>
+#if defined(__linux__)
+#include <syscall.h>
+#else
 #include <sys/syscall.h>
-#include <sys/types.h>
+#endif
+#include <unistd.h>
 
+#include <algorithm>
+#include <cstdint>
 #include <string>
 #include <vector>
 
-#include <boost/bind.hpp>
-#include <boost/function.hpp>
+#include <boost/bind.hpp>     // IWYU pragma: keep
+#include <boost/function.hpp> // IWYU pragma: keep
 
-#include "kudu/gutil/atomicops.h"
+#include "kudu/gutil/callback.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/ref_counted.h"
-#include "kudu/util/async_util.h"
+#include "kudu/util/countdown_latch.h"
 #include "kudu/util/status.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/thread_restrictions.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/thread_restrictions.cc b/src/kudu/util/thread_restrictions.cc
index 40372c1..f956fd9 100644
--- a/src/kudu/util/thread_restrictions.cc
+++ b/src/kudu/util/thread_restrictions.cc
@@ -15,8 +15,10 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <ostream>
+#include <string>
+
 #include <glog/logging.h>
-#include <gperftools/heap-checker.h>
 
 #include "kudu/util/debug/leakcheck_disabler.h"
 #include "kudu/util/thread.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/threadlocal.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/threadlocal.cc b/src/kudu/util/threadlocal.cc
index 11e8e33..a88c44d 100644
--- a/src/kudu/util/threadlocal.cc
+++ b/src/kudu/util/threadlocal.cc
@@ -16,6 +16,9 @@
 // under the License.
 #include "kudu/util/threadlocal.h"
 
+#include <ostream>
+#include <string>
+
 #include <pthread.h>
 
 #include <glog/logging.h>

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/threadpool-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/threadpool-test.cc b/src/kudu/util/threadpool-test.cc
index cec1b93..a5ec890 100644
--- a/src/kudu/util/threadpool-test.cc
+++ b/src/kudu/util/threadpool-test.cc
@@ -15,29 +15,43 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <unistd.h>
+
+#include <algorithm>
 #include <atomic>
+#include <cstdint>
+#include <iterator>
 #include <limits>
 #include <memory>
 #include <mutex>
+#include <ostream>
 #include <string>
 #include <thread>
 #include <vector>
 
-#include <boost/bind.hpp>
+#include <boost/bind.hpp> // IWYU pragma: keep
+#include <boost/smart_ptr/shared_ptr.hpp>
 #include <glog/logging.h>
 #include <gtest/gtest.h>
 
 #include "kudu/gutil/atomicops.h"
 #include "kudu/gutil/bind.h"
+#include "kudu/gutil/bind_helpers.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/gutil/sysinfo.h"
 #include "kudu/util/barrier.h"
 #include "kudu/util/countdown_latch.h"
 #include "kudu/util/locks.h"
+#include "kudu/util/make_shared.h"
 #include "kudu/util/metrics.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/promise.h"
 #include "kudu/util/random.h"
 #include "kudu/util/scoped_cleanup.h"
+#include "kudu/util/status.h"
 #include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 #include "kudu/util/threadpool.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/threadpool.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/threadpool.cc b/src/kudu/util/threadpool.cc
index fb76b7d..a211c34 100644
--- a/src/kudu/util/threadpool.cc
+++ b/src/kudu/util/threadpool.cc
@@ -18,28 +18,30 @@
 #include "kudu/util/threadpool.h"
 
 #include <algorithm>
-#include <iostream>
+#include <cstdint>
+#include <deque>
 #include <limits>
 #include <memory>
+#include <ostream>
 #include <string>
 
-#include <boost/function.hpp>
-#include <gflags/gflags.h>
+#include <boost/function.hpp> // IWYU pragma: keep
 #include <glog/logging.h>
 
 #include "kudu/gutil/callback.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/map-util.h"
-#include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/gutil/sysinfo.h"
+#include "kudu/gutil/walltime.h"
 #include "kudu/util/metrics.h"
-#include "kudu/util/stopwatch.h"
 #include "kudu/util/thread.h"
 #include "kudu/util/trace.h"
+#include "kudu/util/trace_metrics.h"
 
 namespace kudu {
 
+using std::deque;
 using std::shared_ptr;
 using std::unique_ptr;
 using strings::Substitute;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/threadpool.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/threadpool.h b/src/kudu/util/threadpool.h
index 69fed97..fc5c5f7 100644
--- a/src/kudu/util/threadpool.h
+++ b/src/kudu/util/threadpool.h
@@ -23,10 +23,9 @@
 #include <string>
 #include <unordered_set>
 
-#include <boost/function.hpp>
 #include <gtest/gtest_prod.h>
 
-#include "kudu/gutil/callback_forward.h"
+#include "kudu/gutil/callback.h"
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/port.h"
@@ -37,6 +36,11 @@
 #include "kudu/util/mutex.h"
 #include "kudu/util/status.h"
 
+namespace boost {
+template <typename Signature>
+class function;
+} // namespace boost
+
 namespace kudu {
 
 class Thread;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/throttler-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/throttler-test.cc b/src/kudu/util/throttler-test.cc
index 57563d2..ff97eb5 100644
--- a/src/kudu/util/throttler-test.cc
+++ b/src/kudu/util/throttler-test.cc
@@ -17,10 +17,9 @@
 
 #include "kudu/util/throttler.h"
 
-#include <algorithm>
-#include <cmath>
-#include <cstring>
+#include <gtest/gtest.h>
 
+#include "kudu/util/monotime.h"
 #include "kudu/util/test_util.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/throttler.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/throttler.cc b/src/kudu/util/throttler.cc
index 108d5db..69e0f99 100644
--- a/src/kudu/util/throttler.cc
+++ b/src/kudu/util/throttler.cc
@@ -17,6 +17,7 @@
 
 #include "kudu/util/throttler.h"
 
+#include <algorithm>
 #include <mutex>
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/throttler.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/throttler.h b/src/kudu/util/throttler.h
index 7be7ba1..5594091 100644
--- a/src/kudu/util/throttler.h
+++ b/src/kudu/util/throttler.h
@@ -17,9 +17,8 @@
 #ifndef KUDU_UTIL_THROTTLER_H
 #define KUDU_UTIL_THROTTLER_H
 
-#include <algorithm>
+#include <cstdint>
 
-#include "kudu/gutil/macros.h"
 #include "kudu/util/locks.h"
 #include "kudu/util/monotime.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/trace-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/trace-test.cc b/src/kudu/util/trace-test.cc
index 77c3c91..16953f1 100644
--- a/src/kudu/util/trace-test.cc
+++ b/src/kudu/util/trace-test.cc
@@ -15,18 +15,37 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <gtest/gtest.h>
-#include <glog/stl_logging.h>
+#include <cctype>
+#include <cstdint>
+#include <cstring>
+#include <map>
+#include <ostream>
 #include <string>
+#include <vector>
+
+#include <gtest/gtest.h>
+#include <glog/logging.h>
 #include <rapidjson/document.h>
 #include <rapidjson/rapidjson.h>
 
-#include "kudu/util/trace.h"
+#include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
+#include "kudu/gutil/walltime.h"
+#include "kudu/util/atomic.h"
+#include "kudu/util/countdown_latch.h"
 #include "kudu/util/debug/trace_event.h"
+#include "kudu/util/debug/trace_event_impl.h"
 #include "kudu/util/debug/trace_event_synthetic_delay.h"
 #include "kudu/util/debug/trace_logging.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/status.h"
 #include "kudu/util/stopwatch.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
+#include "kudu/util/thread.h"
+#include "kudu/util/trace_metrics.h"
+#include "kudu/util/trace.h"
 
 using kudu::debug::TraceLog;
 using kudu::debug::TraceResultBuffer;
@@ -83,10 +102,10 @@ TEST_F(TraceTest, TestAttach) {
   EXPECT_TRUE(Trace::CurrentTrace() == nullptr);
   TRACE("this goes nowhere");
 
-  EXPECT_EQ(XOutDigits(traceA->DumpToString(Trace::NO_FLAGS)),
-            "XXXX XX:XX:XX.XXXXXX trace-test.cc:XX] hello from traceA\n");
-  EXPECT_EQ(XOutDigits(traceB->DumpToString(Trace::NO_FLAGS)),
-            "XXXX XX:XX:XX.XXXXXX trace-test.cc:XX] hello from traceB\n");
+  EXPECT_EQ("XXXX XX:XX:XX.XXXXXX trace-test.cc:XXX] hello from traceA\n",
+            XOutDigits(traceA->DumpToString(Trace::NO_FLAGS)));
+  EXPECT_EQ("XXXX XX:XX:XX.XXXXXX trace-test.cc:XX] hello from traceB\n",
+            XOutDigits(traceB->DumpToString(Trace::NO_FLAGS)));
 }
 
 TEST_F(TraceTest, TestChildTrace) {
@@ -99,10 +118,10 @@ TEST_F(TraceTest, TestChildTrace) {
     ADOPT_TRACE(traceB.get());
     TRACE("hello from traceB");
   }
-  EXPECT_EQ(XOutDigits(traceA->DumpToString(Trace::NO_FLAGS)),
-            "XXXX XX:XX:XX.XXXXXX trace-test.cc:XX] hello from traceA\n"
+  EXPECT_EQ("XXXX XX:XX:XX.XXXXXX trace-test.cc:XXX] hello from traceA\n"
             "Related trace 'child':\n"
-            "XXXX XX:XX:XX.XXXXXX trace-test.cc:XXX] hello from traceB\n");
+            "XXXX XX:XX:XX.XXXXXX trace-test.cc:XXX] hello from traceB\n",
+            XOutDigits(traceA->DumpToString(Trace::NO_FLAGS)));
 }
 
 static void GenerateTraceEvents(int thread_id,

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/trace.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/trace.cc b/src/kudu/util/trace.cc
index 2408736..7b996cf 100644
--- a/src/kudu/util/trace.cc
+++ b/src/kudu/util/trace.cc
@@ -17,16 +17,19 @@
 
 #include "kudu/util/trace.h"
 
+#include <cstdint>
+#include <cstring>
+#include <ctime>
 #include <iomanip>
-#include <ios>
 #include <iostream>
 #include <map>
 #include <mutex>
 #include <string>
-#include <sstream>
 #include <utility>
 #include <vector>
 
+#include <glog/logging.h>
+
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/gutil/walltime.h"
 #include "kudu/util/memory/arena.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/trace.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/trace.h b/src/kudu/util/trace.h
index 3c0f960..a24d252 100644
--- a/src/kudu/util/trace.h
+++ b/src/kudu/util/trace.h
@@ -32,6 +32,10 @@
 #include "kudu/util/locks.h"
 #include "kudu/util/trace_metrics.h"
 
+namespace kudu {
+class Trace;
+}
+
 // Adopt a Trace on the current thread for the duration of the current
 // scope. The old current Trace is restored when the scope is exited.
 //

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/trace_metrics.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/trace_metrics.cc b/src/kudu/util/trace_metrics.cc
index ba4ad97..565a6e8 100644
--- a/src/kudu/util/trace_metrics.cc
+++ b/src/kudu/util/trace_metrics.cc
@@ -18,11 +18,16 @@
 #include "kudu/util/trace_metrics.h"
 
 #include <algorithm>
-#include <ctype.h>
-#include <glog/stl_logging.h>
+#include <cctype>
+#include <cstring>
 #include <map>
 #include <mutex>
+#include <ostream>
 #include <string>
+#include <utility>
+
+#include <glog/logging.h>
+#include <glog/stl_logging.h>
 
 #include "kudu/util/debug/leakcheck_disabler.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/trace_metrics.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/trace_metrics.h b/src/kudu/util/trace_metrics.h
index a230821..f451495 100644
--- a/src/kudu/util/trace_metrics.h
+++ b/src/kudu/util/trace_metrics.h
@@ -16,15 +16,16 @@
 // under the License.
 #pragma once
 
+#include <cstdint>
+#include <map>
+#include <mutex>
+#include <string>
+
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/map-util.h"
 #include "kudu/util/atomic.h"
 #include "kudu/util/locks.h"
 
-#include <map>
-#include <mutex>
-#include <string>
-
 namespace kudu {
 
 // A simple map of constant string names to integer counters.

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/url-coding-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/url-coding-test.cc b/src/kudu/util/url-coding-test.cc
index e83de64..3892772 100644
--- a/src/kudu/util/url-coding-test.cc
+++ b/src/kudu/util/url-coding-test.cc
@@ -14,10 +14,15 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-#include <stdlib.h>
-#include <stdio.h>
+
+#include <cstring>
+#include <cstdint>
 #include <iostream>
+#include <string>
+#include <vector>
+
 #include <gtest/gtest.h>
+
 #include "kudu/util/url-coding.h"
 
 using namespace std; // NOLINT(*)

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/url-coding.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/url-coding.cc b/src/kudu/util/url-coding.cc
index afbaa44..81a2994 100644
--- a/src/kudu/util/url-coding.cc
+++ b/src/kudu/util/url-coding.cc
@@ -19,13 +19,18 @@
 #include "kudu/util/url-coding.h"
 
 #include <algorithm>
+#include <cctype>
+#include <cstddef>
 #include <exception>
+#include <iterator>
 #include <sstream>
 
-#include <boost/algorithm/string.hpp>
+#include <boost/algorithm/string/classification.hpp>
 #include <boost/archive/iterators/base64_from_binary.hpp>
 #include <boost/archive/iterators/binary_from_base64.hpp>
 #include <boost/archive/iterators/transform_width.hpp>
+#include <boost/iterator/iterator_facade.hpp>
+#include <boost/function.hpp>
 #include <glog/logging.h>
 
 using std::string;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/url-coding.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/url-coding.h b/src/kudu/util/url-coding.h
index 179aecb..3f667aa 100644
--- a/src/kudu/util/url-coding.h
+++ b/src/kudu/util/url-coding.h
@@ -17,8 +17,7 @@
 #ifndef UTIL_URL_CODING_H
 #define UTIL_URL_CODING_H
 
-#include <stdint.h>
-
+#include <cstdint>
 #include <iosfwd>
 #include <string>
 #include <vector>

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/user-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/user-test.cc b/src/kudu/util/user-test.cc
index 8dfbe14..35785d0 100644
--- a/src/kudu/util/user-test.cc
+++ b/src/kudu/util/user-test.cc
@@ -16,10 +16,12 @@
 // under the License.
 
 #include <string>
+#include <ostream>
 
 #include <gtest/gtest.h>
+#include <glog/logging.h>
 
-#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 #include "kudu/util/user.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/user.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/user.cc b/src/kudu/util/user.cc
index c8a2868..cdfaea1 100644
--- a/src/kudu/util/user.cc
+++ b/src/kudu/util/user.cc
@@ -17,11 +17,11 @@
 
 #include "kudu/util/user.h"
 
-#include <sys/types.h>
-#include <errno.h>
 #include <pwd.h>
 #include <unistd.h>
 
+#include <cerrno>
+#include <cstdlib>
 #include <string>
 
 #include <glog/logging.h>

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/version_info.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/version_info.cc b/src/kudu/util/version_info.cc
index 2ea437f..3d63126 100644
--- a/src/kudu/util/version_info.cc
+++ b/src/kudu/util/version_info.cc
@@ -17,6 +17,7 @@
 
 #include "kudu/util/version_info.h"
 
+#include <cstring>
 #include <string>
 
 #include "kudu/generated/version_defines.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/zlib.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/zlib.cc b/src/kudu/util/zlib.cc
index f1a7a49..4805885 100644
--- a/src/kudu/util/zlib.cc
+++ b/src/kudu/util/zlib.cc
@@ -17,11 +17,16 @@
 
 #include "kudu/util/zlib.h"
 
+#include <zconf.h>
 #include <zlib.h>
 
+#include <cstdint>
+#include <cstring>
 #include <string>
 #include <memory>
+#include <ostream>
 
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/slice.h"
 #include "kudu/util/status.h"


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

Posted by al...@apache.org.
http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/transactions/write_transaction.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/transactions/write_transaction.h b/src/kudu/tablet/transactions/write_transaction.h
index c9aa80f..3912bce 100644
--- a/src/kudu/tablet/transactions/write_transaction.h
+++ b/src/kudu/tablet/transactions/write_transaction.h
@@ -18,32 +18,42 @@
 #ifndef KUDU_TABLET_WRITE_TRANSACTION_H_
 #define KUDU_TABLET_WRITE_TRANSACTION_H_
 
+#include <cstddef>
+#include <memory>
 #include <mutex>
 #include <string>
 #include <vector>
 
-#include "kudu/common/schema.h"
+#include <glog/logging.h>
+
+#include "kudu/consensus/consensus.pb.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
-#include "kudu/tablet/lock_manager.h"
-#include "kudu/tablet/mvcc.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/tablet/rowset.h"
-#include "kudu/tablet/tablet.pb.h"
 #include "kudu/tablet/transactions/transaction.h"
+#include "kudu/tserver/tserver.pb.h"
 #include "kudu/util/locks.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
+
+class Schema;
+class rw_semaphore;
 struct DecodedRowOperation;
-class ConstContiguousRow;
-class RowwiseRowBlockPB;
 
-namespace tserver {
-class WriteRequestPB;
-class WriteResponsePB;
+namespace rpc {
+class RequestIdPB;
 }
 
 namespace tablet {
+
+class ScopedTransaction;
+class TabletReplica;
+class TxResultPB;
 struct RowOp;
-class RowSetKeyProbe;
 struct TabletComponents;
 
 // A TransactionState for a batch of inserts/mutates. This class holds and

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tools/color.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tools/color.cc b/src/kudu/tools/color.cc
index c99d7fe..5cc37ec 100644
--- a/src/kudu/tools/color.cc
+++ b/src/kudu/tools/color.cc
@@ -17,10 +17,14 @@
 
 #include "kudu/tools/color.h"
 
+#include <unistd.h>
+
+#include <ostream>
+
 #include <gflags/gflags.h>
 #include <glog/logging.h>
-#include <unistd.h>
 
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/flag_tags.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tools/create-demo-table.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tools/create-demo-table.cc b/src/kudu/tools/create-demo-table.cc
index 4b03462..43a9619 100644
--- a/src/kudu/tools/create-demo-table.cc
+++ b/src/kudu/tools/create-demo-table.cc
@@ -19,29 +19,32 @@
 // This will eventually be replaced by a proper shell -- just a quick
 // hack for easy demo purposes.
 
-#include <gflags/gflags.h>
-#include <glog/logging.h>
 #include <iostream>
+#include <string>
 #include <vector>
 
+#include <gflags/gflags.h>
+#include <glog/logging.h>
+
 #include "kudu/benchmarks/tpch/tpch-schemas.h"
 #include "kudu/benchmarks/ycsb-schema.h"
 #include "kudu/client/client.h"
+#include "kudu/client/schema.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/strings/split.h"
-#include "kudu/tserver/tserver.pb.h"
-#include "kudu/tserver/tserver_service.proxy.h"
 #include "kudu/twitter-demo/twitter-schema.h"
 #include "kudu/util/env.h"
 #include "kudu/util/faststring.h"
 #include "kudu/util/flags.h"
 #include "kudu/util/logging.h"
+#include "kudu/util/status.h"
 
 using kudu::client::KuduClient;
 using kudu::client::KuduClientBuilder;
 using kudu::client::KuduSchema;
 using kudu::client::KuduTableCreator;
 using kudu::client::sp::shared_ptr;
-using kudu::rpc::RpcController;
 using std::string;
 using std::vector;
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tools/data_gen_util.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tools/data_gen_util.cc b/src/kudu/tools/data_gen_util.cc
index f1cceb6..4c10fea 100644
--- a/src/kudu/tools/data_gen_util.cc
+++ b/src/kudu/tools/data_gen_util.cc
@@ -14,12 +14,17 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
+
 #include "kudu/tools/data_gen_util.h"
 
+#include <ostream>
+
+#include <glog/logging.h>
+
 #include "kudu/client/schema.h"
 #include "kudu/common/partial_row.h"
 #include "kudu/gutil/strings/numbers.h"
-#include "kudu/util/random.h"
+#include "kudu/util/random.h" // IWYU pragma: keep
 #include "kudu/util/status.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tools/data_gen_util.h
----------------------------------------------------------------------
diff --git a/src/kudu/tools/data_gen_util.h b/src/kudu/tools/data_gen_util.h
index 8ca3fd1..b13fd25 100644
--- a/src/kudu/tools/data_gen_util.h
+++ b/src/kudu/tools/data_gen_util.h
@@ -24,7 +24,6 @@
 
 namespace kudu {
 class KuduPartialRow;
-class Random;
 
 namespace client {
 class KuduSchema;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tools/ksck-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tools/ksck-test.cc b/src/kudu/tools/ksck-test.cc
index 987cd8c..22caab5 100644
--- a/src/kudu/tools/ksck-test.cc
+++ b/src/kudu/tools/ksck-test.cc
@@ -15,16 +15,30 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <map>
 #include <memory>
+#include <sstream>
+#include <string>
+#include <type_traits>
 #include <unordered_map>
+#include <utility>
+#include <vector>
 
-#include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
 #include <gtest/gtest.h>
 
+#include "kudu/common/schema.h"
+#include "kudu/consensus/metadata.pb.h"
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/tablet/metadata.pb.h"
+#include "kudu/tablet/tablet.pb.h"
 #include "kudu/tools/ksck.h"
 #include "kudu/util/scoped_cleanup.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 DECLARE_string(color);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tools/ksck.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tools/ksck.cc b/src/kudu/tools/ksck.cc
index 6b2f8b3..9043b12 100644
--- a/src/kudu/tools/ksck.cc
+++ b/src/kudu/tools/ksck.cc
@@ -18,23 +18,30 @@
 #include "kudu/tools/ksck.h"
 
 #include <algorithm>
-#include <glog/logging.h>
+#include <cstdint>
 #include <iomanip>
 #include <iostream>
+#include <iterator>
 #include <map>
 #include <mutex>
-#include <sstream>
+
+#include <boost/optional.hpp> // IWYU pragma: keep
+#include <gflags/gflags.h>
+#include <glog/logging.h>
 
 #include "kudu/consensus/quorum_util.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/map-util.h"
 #include "kudu/gutil/ref_counted.h"
-#include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/human_readable.h"
+#include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/gutil/strings/util.h"
+#include "kudu/tablet/tablet.pb.h"
 #include "kudu/tools/tool_action_common.h"
 #include "kudu/util/atomic.h"
 #include "kudu/util/blocking_queue.h"
+#include "kudu/util/countdown_latch.h"
 #include "kudu/util/locks.h"
 #include "kudu/util/monotime.h"
 #include "kudu/util/threadpool.h"
@@ -68,7 +75,7 @@ using std::right;
 using std::setw;
 using std::shared_ptr;
 using std::string;
-using std::stringstream;
+using std::ostringstream;
 using std::to_string;
 using std::unordered_map;
 using std::vector;
@@ -139,6 +146,11 @@ Status KsckCluster::RetrieveTabletsList(const shared_ptr<KsckTable>& table) {
   return master_->RetrieveTabletsList(table);
 }
 
+Ksck::Ksck(shared_ptr<KsckCluster> cluster, ostream* out)
+    : cluster_(std::move(cluster)),
+      out_(out == nullptr ? &std::cout : out) {
+}
+
 Status Ksck::CheckMasterRunning() {
   VLOG(1) << "Connecting to the Master";
   Status s = cluster_->master()->Connect();
@@ -641,7 +653,7 @@ struct ReplicaInfo {
 
 // Formats the peers known and unknown to 'config' using labels from 'peer_uuid_mapping'.
 string format_peers(const map<string, char>& peer_uuid_mapping, const KsckConsensusState& config) {
-  stringstream voters;
+  ostringstream voters;
   int peer_width = 4;
   for (const auto &entry : peer_uuid_mapping) {
     if (!ContainsKey(config.peer_uuids, entry.first)) {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tools/ksck.h
----------------------------------------------------------------------
diff --git a/src/kudu/tools/ksck.h b/src/kudu/tools/ksck.h
index ea76c90..8f541bb 100644
--- a/src/kudu/tools/ksck.h
+++ b/src/kudu/tools/ksck.h
@@ -20,27 +20,31 @@
 #ifndef KUDU_TOOLS_KSCK_H
 #define KUDU_TOOLS_KSCK_H
 
-#include <boost/optional.hpp>
-#include <gtest/gtest_prod.h>
-#include <iostream>
+#include <cstdint>
 #include <map>
 #include <memory>
+#include <iosfwd>
 #include <set>
 #include <string>
 #include <unordered_map>
 #include <utility>
 #include <vector>
 
+#include <boost/optional/optional.hpp>
+#include <glog/logging.h>
+#include <gtest/gtest_prod.h>
+
 #include "kudu/common/schema.h"
-#include "kudu/consensus/consensus.service.h"
-#include "kudu/tablet/tablet.pb.h"
+#include "kudu/consensus/metadata.pb.h"
+#include "kudu/gutil/macros.h"
+#include "kudu/gutil/strings/substitute.h"
+#include "kudu/tablet/metadata.pb.h"
+#include "kudu/tablet/tablet.pb.h"  // IWYU pragma: keep
 #include "kudu/tools/color.h"
-#include "kudu/util/countdown_latch.h"
-#include "kudu/util/locks.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
-class MonoDelta;
 namespace tools {
 
 class KsckTable;
@@ -227,7 +231,7 @@ class ChecksumProgressCallbacks {
 class KsckTabletServer {
  public:
   // Map from tablet id to tablet replicas.
-  typedef std::unordered_map<std::string, tablet::TabletStatusPB > TabletStatusMap;
+  typedef std::unordered_map<std::string, tablet::TabletStatusPB> TabletStatusMap;
 
   // Map from (tserver id, tablet id) to tablet consensus information.
   typedef std::map
@@ -379,11 +383,10 @@ class KsckCluster {
 // Externally facing class to run checks against the provided cluster.
 class Ksck {
  public:
-  explicit Ksck(std::shared_ptr<KsckCluster> cluster, std::ostream* out = &std::cout)
-      : cluster_(std::move(cluster)),
-        out_(out) {}
+  explicit Ksck(std::shared_ptr<KsckCluster> cluster,
+                std::ostream* out = nullptr);
 
-  ~Ksck() {}
+  ~Ksck() = default;
 
   // Set whether ksck should verify that each of the tablet's raft configurations
   // has the same number of replicas that is specified by the tablet metadata.
@@ -501,7 +504,7 @@ class Ksck {
   std::vector<std::string> table_filters_;
   std::vector<std::string> tablet_id_filters_;
 
-  std::ostream* out_;
+  std::ostream* const out_;
 
   DISALLOW_COPY_AND_ASSIGN(Ksck);
 };

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tools/ksck_remote-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tools/ksck_remote-test.cc b/src/kudu/tools/ksck_remote-test.cc
index 7c33940..f413554 100644
--- a/src/kudu/tools/ksck_remote-test.cc
+++ b/src/kudu/tools/ksck_remote-test.cc
@@ -15,19 +15,39 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <cstdint>
 #include <memory>
+#include <sstream>
+#include <string>
+#include <vector>
 
+#include <boost/core/ref.hpp>
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
 #include <gtest/gtest.h>
 
 #include "kudu/client/client.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/client/schema.h"
+#include "kudu/client/write_op.h"
+#include "kudu/common/partial_row.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/integration-tests/internal_mini_cluster.h"
 #include "kudu/master/mini_master.h"
 #include "kudu/tools/data_gen_util.h"
+#include "kudu/tools/ksck.h"
 #include "kudu/tools/ksck_remote.h"
+#include "kudu/util/atomic.h"
+#include "kudu/util/countdown_latch.h"
 #include "kudu/util/monotime.h"
 #include "kudu/util/promise.h"
 #include "kudu/util/random.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
+#include "kudu/util/thread.h"
 
 DECLARE_int32(heartbeat_interval_ms);
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tools/ksck_remote.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tools/ksck_remote.cc b/src/kudu/tools/ksck_remote.cc
index 1e0403a..2268cb0 100644
--- a/src/kudu/tools/ksck_remote.cc
+++ b/src/kudu/tools/ksck_remote.cc
@@ -17,13 +17,39 @@
 
 #include "kudu/tools/ksck_remote.h"
 
+#include <cstdint>
+#include <ostream>
+#include <unordered_map>
+#include <utility>
+
+#include <boost/bind.hpp> // IWYU pragma: keep
+#include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
+
 #include "kudu/client/client.h"
+#include "kudu/client/schema.h"
+#include "kudu/common/common.pb.h"
 #include "kudu/common/schema.h"
 #include "kudu/common/wire_protocol.h"
+#include "kudu/consensus/consensus.pb.h"
+#include "kudu/consensus/consensus.proxy.h"
+#include "kudu/gutil/basictypes.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/map-util.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/gutil/strings/util.h"
+#include "kudu/rpc/messenger.h"
+#include "kudu/rpc/response_callback.h"
+#include "kudu/rpc/rpc_controller.h"
+#include "kudu/server/server_base.pb.h"
+#include "kudu/server/server_base.proxy.h"
+#include "kudu/tablet/tablet.pb.h"
+#include "kudu/tserver/tablet_server.h"
+#include "kudu/tserver/tserver.pb.h"
+#include "kudu/tserver/tserver_service.pb.h"
+#include "kudu/tserver/tserver_service.proxy.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/net/net_util.h"
 #include "kudu/util/net/sockaddr.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tools/ksck_remote.h
----------------------------------------------------------------------
diff --git a/src/kudu/tools/ksck_remote.h b/src/kudu/tools/ksck_remote.h
index add2a80..fbe3cb4 100644
--- a/src/kudu/tools/ksck_remote.h
+++ b/src/kudu/tools/ksck_remote.h
@@ -18,25 +18,41 @@
 #ifndef KUDU_TOOLS_KSCK_REMOTE_H
 #define KUDU_TOOLS_KSCK_REMOTE_H
 
+#include <algorithm>
 #include <memory>
 #include <string>
-#include <utility>
 #include <vector>
 
-#include "kudu/client/client.h"
-#include "kudu/consensus/consensus.proxy.h"
-#include "kudu/rpc/messenger.h"
-#include "kudu/server/server_base.h"
-#include "kudu/server/server_base.proxy.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/gutil/port.h"
 #include "kudu/tools/ksck.h"
-#include "kudu/tserver/tablet_server.h"
-#include "kudu/tserver/tserver_service.proxy.h"
-#include "kudu/util/net/sockaddr.h"
+#include "kudu/util/net/net_util.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 
 class Schema;
 
+namespace client {
+class KuduClient;
+}
+
+namespace consensus {
+class ConsensusServiceProxy;
+}
+
+namespace rpc {
+class Messenger;
+}
+
+namespace server {
+class GenericServiceProxy;
+}
+
+namespace tserver {
+class TabletServerServiceProxy;
+}
+
 namespace tools {
 
 // This implementation connects to a Tablet Server via RPC.

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tools/kudu-admin-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tools/kudu-admin-test.cc b/src/kudu/tools/kudu-admin-test.cc
index f141d4f..f2b6e5b 100644
--- a/src/kudu/tools/kudu-admin-test.cc
+++ b/src/kudu/tools/kudu-admin-test.cc
@@ -16,22 +16,50 @@
 // under the License.
 
 #include <algorithm>
+#include <cstdint>
+#include <cstdio>
 #include <deque>
+#include <iterator>
+#include <ostream>
 #include <string>
+#include <unordered_map>
+#include <unordered_set>
+#include <utility>
 #include <vector>
 
+#include <glog/logging.h>
 #include <gtest/gtest.h>
 
+#include "kudu/common/common.pb.h"
+#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/consensus/consensus.pb.h"
+#include "kudu/master/master.pb.h"
+#include "kudu/tablet/metadata.pb.h"
+#include "kudu/util/pb_util.h"
+#include "kudu/client/client-test-util.h"
 #include "kudu/client/client.h"
+#include "kudu/client/schema.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/consensus/metadata.pb.h"
 #include "kudu/consensus/opid.pb.h"
 #include "kudu/consensus/quorum_util.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/integral_types.h"
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/strings/split.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/integration-tests/cluster_itest_util.h"
+#include "kudu/integration-tests/cluster_verifier.h"
+#include "kudu/integration-tests/external_mini_cluster.h"
 #include "kudu/integration-tests/test_workload.h"
 #include "kudu/integration-tests/ts_itest-base.h"
 #include "kudu/tools/tool_test_util.h"
+#include "kudu/tserver/tablet_server-test-base.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/net/sockaddr.h"
+#include "kudu/util/status.h"
 #include "kudu/util/subprocess.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tools/kudu-tool-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tools/kudu-tool-test.cc b/src/kudu/tools/kudu-tool-test.cc
index 687d137..661a5ce 100644
--- a/src/kudu/tools/kudu-tool-test.cc
+++ b/src/kudu/tools/kudu-tool-test.cc
@@ -15,29 +15,44 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <sys/stat.h>
+
 #include <algorithm>
+#include <cstdint>
+#include <cstdio>
+#include <cstdlib>
 #include <iterator>
 #include <memory>
 #include <sstream>
 #include <string>
+#include <unordered_map>
+#include <utility>
 #include <vector>
 
-#include <gtest/gtest.h>
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
 #include <glog/stl_logging.h>
+#include <gmock/gmock-matchers.h>
+#include <gtest/gtest.h>
 
 #include "kudu/cfile/cfile-test-base.h"
 #include "kudu/cfile/cfile_util.h"
 #include "kudu/cfile/cfile_writer.h"
 #include "kudu/client/client-test-util.h"
+#include "kudu/client/client.h"
+#include "kudu/client/schema.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/common/common.pb.h"
 #include "kudu/common/partial_row.h"
 #include "kudu/common/partition.h"
 #include "kudu/common/schema.h"
-#include "kudu/common/wire_protocol.h"
+#include "kudu/common/types.h"
 #include "kudu/common/wire_protocol-test-util.h"
+#include "kudu/common/wire_protocol.h"
+#include "kudu/common/wire_protocol.pb.h"
 #include "kudu/consensus/consensus.pb.h"
 #include "kudu/consensus/log.h"
 #include "kudu/consensus/log_util.h"
-#include "kudu/consensus/metadata.pb.h"
 #include "kudu/consensus/opid.pb.h"
 #include "kudu/consensus/opid_util.h"
 #include "kudu/consensus/ref_counted_replicate.h"
@@ -46,34 +61,48 @@
 #include "kudu/fs/fs_manager.h"
 #include "kudu/fs/fs_report.h"
 #include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/ref_counted.h"
+#include "kudu/gutil/stl_util.h"
+#include "kudu/gutil/strings/numbers.h"
 #include "kudu/gutil/strings/split.h"
+#include "kudu/gutil/strings/strcat.h"
 #include "kudu/gutil/strings/strip.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/integration-tests/cluster_itest_util.h"
 #include "kudu/integration-tests/external_mini_cluster.h"
 #include "kudu/integration-tests/external_mini_cluster_fs_inspector.h"
 #include "kudu/integration-tests/internal_mini_cluster.h"
+#include "kudu/integration-tests/mini_cluster.h"
 #include "kudu/integration-tests/test_workload.h"
+#include "kudu/rpc/rpc_controller.h"
 #include "kudu/tablet/local_tablet_writer.h"
+#include "kudu/tablet/metadata.pb.h"
 #include "kudu/tablet/tablet-harness.h"
+#include "kudu/tablet/tablet.h"
+#include "kudu/tablet/tablet.pb.h"
 #include "kudu/tablet/tablet_metadata.h"
 #include "kudu/tablet/tablet_replica.h"
-#include "kudu/tablet/tablet.h"
-#include "kudu/tools/tool_action_common.h"
 #include "kudu/tools/tool_test_util.h"
 #include "kudu/tserver/mini_tablet_server.h"
 #include "kudu/tserver/tablet_server.h"
+#include "kudu/tserver/tablet_server_options.h"
 #include "kudu/tserver/ts_tablet_manager.h"
 #include "kudu/tserver/tserver.pb.h"
-#include "kudu/tserver/tserver_service.proxy.h"
+#include "kudu/tserver/tserver_admin.pb.h"
+#include "kudu/tserver/tserver_admin.proxy.h"
 #include "kudu/util/async_util.h"
 #include "kudu/util/env.h"
+#include "kudu/util/make_shared.h"
 #include "kudu/util/metrics.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/net/net_util.h"
 #include "kudu/util/net/sockaddr.h"
 #include "kudu/util/oid_generator.h"
 #include "kudu/util/path_util.h"
 #include "kudu/util/pb_util.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
 #include "kudu/util/subprocess.h"
 #include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
@@ -83,6 +112,10 @@ DECLARE_string(block_manager);
 
 namespace kudu {
 
+namespace tserver {
+class TabletServerServiceProxy;
+}
+
 namespace tools {
 
 using cfile::CFileWriter;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tools/kudu-ts-cli-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tools/kudu-ts-cli-test.cc b/src/kudu/tools/kudu-ts-cli-test.cc
index a4ecdc5..7ae58ee 100644
--- a/src/kudu/tools/kudu-ts-cli-test.cc
+++ b/src/kudu/tools/kudu-ts-cli-test.cc
@@ -15,17 +15,27 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <memory>
+#include <string>
+#include <unordered_map>
+#include <vector>
+
 #include <gtest/gtest.h>
 
-#include "kudu/gutil/map-util.h"
-#include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/split.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/integration-tests/cluster_itest_util.h"
 #include "kudu/integration-tests/external_mini_cluster-itest-base.h"
+#include "kudu/integration-tests/external_mini_cluster.h"
+#include "kudu/integration-tests/external_mini_cluster_fs_inspector.h"
 #include "kudu/integration-tests/test_workload.h"
+#include "kudu/tablet/metadata.pb.h"
+#include "kudu/tablet/tablet.pb.h"
 #include "kudu/tools/tool_test_util.h"
-#include "kudu/util/path_util.h"
+#include "kudu/tserver/tserver.pb.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/net/sockaddr.h"
+#include "kudu/util/status.h"
 #include "kudu/util/subprocess.h"
 #include "kudu/util/test_macros.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tools/tool_action-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tools/tool_action-test.cc b/src/kudu/tools/tool_action-test.cc
index 76c2255..4b2803f 100644
--- a/src/kudu/tools/tool_action-test.cc
+++ b/src/kudu/tools/tool_action-test.cc
@@ -15,7 +15,9 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <algorithm>
 #include <memory>
+#include <ostream>
 #include <string>
 #include <vector>
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tools/tool_action.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tools/tool_action.cc b/src/kudu/tools/tool_action.cc
index fd824d7..4d87909 100644
--- a/src/kudu/tools/tool_action.cc
+++ b/src/kudu/tools/tool_action.cc
@@ -18,15 +18,19 @@
 #include "kudu/tools/tool_action.h"
 
 #include <algorithm>
-#include <iomanip>
 #include <memory>
 #include <string>
 #include <unordered_map>
 #include <utility>
 #include <vector>
 
+#include <boost/optional.hpp>
+#include <gflags/gflags.h>
+#include <glog/logging.h>
+
 #include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/split.h"
+#include "kudu/gutil/strings/stringpiece.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/url-coding.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tools/tool_action.h
----------------------------------------------------------------------
diff --git a/src/kudu/tools/tool_action.h b/src/kudu/tools/tool_action.h
index f8c8209..cdb6d79 100644
--- a/src/kudu/tools/tool_action.h
+++ b/src/kudu/tools/tool_action.h
@@ -17,6 +17,7 @@
 
 #pragma once
 
+#include <functional>
 #include <memory>
 #include <string>
 #include <unordered_map>

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tools/tool_action_cluster.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tools/tool_action_cluster.cc b/src/kudu/tools/tool_action_cluster.cc
index 15978d2..e813575 100644
--- a/src/kudu/tools/tool_action_cluster.cc
+++ b/src/kudu/tools/tool_action_cluster.cc
@@ -21,10 +21,13 @@
 #include <memory>
 #include <string>
 #include <utility>
+#include <unordered_map>
+#include <vector>
 
 #include <gflags/gflags.h>
 
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/split.h"
 #include "kudu/tools/ksck.h"
 #include "kudu/tools/ksck_remote.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tools/tool_action_common.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tools/tool_action_common.cc b/src/kudu/tools/tool_action_common.cc
index 511d0a6..0a4a037 100644
--- a/src/kudu/tools/tool_action_common.cc
+++ b/src/kudu/tools/tool_action_common.cc
@@ -18,32 +18,36 @@
 #include "kudu/tools/tool_action_common.h"
 
 #include <algorithm>
+#include <cstddef>
 #include <iomanip>
 #include <iostream>
 #include <memory>
 #include <numeric>
 #include <string>
+#include <unordered_map>
 #include <vector>
 
 #include <boost/algorithm/string/predicate.hpp>
 #include <gflags/gflags.h>
 #include <glog/logging.h>
 
-#include "kudu/client/client-internal.h"
 #include "kudu/client/client.h"
+#include "kudu/client/client-internal.h"  // IWYU pragma: keep
+#include "kudu/gutil/map-util.h"
 #include "kudu/client/shared_ptr.h"
 #include "kudu/common/common.pb.h"
 #include "kudu/common/row_operations.h"
 #include "kudu/common/schema.h"
 #include "kudu/common/wire_protocol.h"
 #include "kudu/consensus/consensus.pb.h"
-#include "kudu/consensus/consensus.proxy.h"
+#include "kudu/consensus/consensus.proxy.h" // IWYU pragma: keep
 #include "kudu/consensus/log.pb.h"
 #include "kudu/consensus/log_util.h"
+#include "kudu/consensus/opid.pb.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/strings/numbers.h"
 #include "kudu/gutil/strings/split.h"
-#include "kudu/master/master.proxy.h"
+#include "kudu/master/master.proxy.h" // IWYU pragma: keep
 #include "kudu/rpc/messenger.h"
 #include "kudu/rpc/rpc_controller.h"
 #include "kudu/rpc/rpc_header.pb.h"
@@ -51,9 +55,10 @@
 #include "kudu/server/server_base.proxy.h"
 #include "kudu/tools/tool_action.h"
 #include "kudu/tserver/tserver.pb.h"
-#include "kudu/tserver/tserver_admin.proxy.h"
-#include "kudu/tserver/tserver_service.proxy.h"
+#include "kudu/tserver/tserver_service.proxy.h" // IWYU pragma: keep
+#include "kudu/tserver/tserver_admin.proxy.h"   // IWYU pragma: keep
 #include "kudu/util/jsonwriter.h"
+#include "kudu/util/make_shared.h"
 #include "kudu/util/memory/arena.h"
 #include "kudu/util/monotime.h"
 #include "kudu/util/net/net_util.h"
@@ -82,7 +87,20 @@ DEFINE_string(format, "pretty",
               "Format to use for printing list output tables.\n"
               "Possible values: pretty, space, tsv, csv, and json");
 
+namespace boost {
+template <typename Signature>
+class function;
+} // namespace boost
+
 namespace kudu {
+
+namespace master {
+class ListMastersRequestPB;
+class ListMastersResponsePB;
+class ListTabletServersRequestPB;
+class ListTabletServersResponsePB;
+} // namespace master
+
 namespace tools {
 
 using client::KuduClientBuilder;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tools/tool_action_common.h
----------------------------------------------------------------------
diff --git a/src/kudu/tools/tool_action_common.h b/src/kudu/tools/tool_action_common.h
index ac232b8..d9698ed 100644
--- a/src/kudu/tools/tool_action_common.h
+++ b/src/kudu/tools/tool_action_common.h
@@ -17,26 +17,28 @@
 
 #pragma once
 
+#include <cstdint>
 #include <memory>
 #include <ostream>
 #include <string>
 #include <vector>
 
-#include <boost/function.hpp>
-
 #include "kudu/client/shared_ptr.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/util/status.h"
 
-namespace kudu {
+namespace boost {
+template <typename Signature>
+class function;
+} // namespace boost
 
-class MonoTime;
+namespace kudu {
 
 namespace client {
 class KuduClient;
 } // namespace client
 
-
 namespace master {
 class MasterServiceProxy;
 } // namespace master

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tools/tool_action_fs.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tools/tool_action_fs.cc b/src/kudu/tools/tool_action_fs.cc
index 529dd6b..ed97a5e 100644
--- a/src/kudu/tools/tool_action_fs.cc
+++ b/src/kudu/tools/tool_action_fs.cc
@@ -18,29 +18,36 @@
 #include "kudu/tools/tool_action.h"
 
 #include <algorithm>
+#include <cstdint>
 #include <iostream>
 #include <iterator>
 #include <memory>
 #include <string>
 #include <unordered_map>
-#include <utility>
 #include <vector>
 
 #include <boost/optional/optional.hpp>
 #include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
 
+#include "kudu/cfile/cfile.pb.h"
 #include "kudu/cfile/cfile_reader.h"
 #include "kudu/cfile/cfile_util.h"
 #include "kudu/fs/block_id.h"
+#include "kudu/fs/block_manager.h"
 #include "kudu/fs/fs_manager.h"
 #include "kudu/fs/fs_report.h"
 #include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/map-util.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/strings/numbers.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/tablet/tablet_metadata.h"
-#include "kudu/tools/tool_action_common.h"
+#include "kudu/util/env.h"
+#include "kudu/util/faststring.h"
 #include "kudu/util/pb_util.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
 
 DECLARE_bool(print_meta);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tools/tool_action_local_replica.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tools/tool_action_local_replica.cc b/src/kudu/tools/tool_action_local_replica.cc
index 369f969..18d7772 100644
--- a/src/kudu/tools/tool_action_local_replica.cc
+++ b/src/kudu/tools/tool_action_local_replica.cc
@@ -17,50 +17,62 @@
 
 #include "kudu/tools/tool_action.h"
 
+#include <algorithm>
+#include <cstddef>
 #include <iostream>
 #include <list>
+#include <map>
 #include <memory>
 #include <string>
 #include <utility>
+#include <vector>
 
+#include <boost/none.hpp>
+#include <gflags/gflags.h>
+
+#include "kudu/cfile/cfile.pb.h"
 #include "kudu/cfile/cfile_reader.h"
 #include "kudu/cfile/cfile_util.h"
 #include "kudu/common/common.pb.h"
+#include "kudu/common/partition.h"
 #include "kudu/common/row_changelist.h"
-#include "kudu/common/row_operations.h"
 #include "kudu/common/rowblock.h"
 #include "kudu/common/schema.h"
 #include "kudu/common/wire_protocol.h"
-#include "kudu/consensus/consensus.pb.h"
 #include "kudu/consensus/consensus_meta.h"
 #include "kudu/consensus/consensus_meta_manager.h"
 #include "kudu/consensus/log_index.h"
 #include "kudu/consensus/log_reader.h"
 #include "kudu/consensus/log_util.h"
+#include "kudu/consensus/metadata.pb.h"
+#include "kudu/consensus/opid.pb.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/map-util.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/strings/human_readable.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/substitute.h"
 #include "kudu/gutil/strings/util.h"
 #include "kudu/master/sys_catalog.h"
 #include "kudu/rpc/messenger.h"
 #include "kudu/tablet/cfile_set.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/metadata.pb.h"
+#include "kudu/tablet/mvcc.h"
 #include "kudu/tablet/rowset_metadata.h"
-#include "kudu/tablet/tablet.h"
+#include "kudu/tablet/tablet_metadata.h"
 #include "kudu/tools/tool_action_common.h"
 #include "kudu/tserver/tablet_copy_client.h"
 #include "kudu/tserver/ts_tablet_manager.h"
-#include "kudu/tserver/tserver.pb.h"
 #include "kudu/util/env.h"
 #include "kudu/util/env_util.h"
-#include "kudu/util/logging.h"
 #include "kudu/util/mem_tracker.h"
 #include "kudu/util/memory/arena.h"
 #include "kudu/util/metrics.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tools/tool_action_master.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tools/tool_action_master.cc b/src/kudu/tools/tool_action_master.cc
index b6d9c22..064d9e6 100644
--- a/src/kudu/tools/tool_action_master.cc
+++ b/src/kudu/tools/tool_action_master.cc
@@ -23,14 +23,16 @@
 #include <utility>
 
 #include <boost/algorithm/string/predicate.hpp>
-#include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
 #include <glog/logging.h>
 
+#include "kudu/common/wire_protocol.h"
 #include "kudu/gutil/map-util.h"
 #include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/split.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/master/master.h"
+#include "kudu/master/master.pb.h"
 #include "kudu/master/master.proxy.h"
 #include "kudu/tools/tool_action_common.h"
 #include "kudu/util/pb_util.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tools/tool_action_pbc.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tools/tool_action_pbc.cc b/src/kudu/tools/tool_action_pbc.cc
index ceda9b8..a977244 100644
--- a/src/kudu/tools/tool_action_pbc.cc
+++ b/src/kudu/tools/tool_action_pbc.cc
@@ -17,23 +17,33 @@
 
 #include "kudu/tools/tool_action.h"
 
-#include <gflags/gflags.h>
-#include <google/protobuf/message.h>
-#include <google/protobuf/util/json_util.h>
-
-#include <fstream>
+#include <algorithm>
+#include <cstdlib>
+#include <exception>
+#include <fstream>  // IWYU pragma: keep
 #include <iostream>
 #include <memory>
 #include <string>
+#include <unordered_map>
+#include <vector>
+
+#include <gflags/gflags.h>
+#include <glog/logging.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/stubs/status.h>
+#include <google/protobuf/stubs/stringpiece.h>
+#include <google/protobuf/util/json_util.h>
 
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/map-util.h"
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/gutil/walltime.h"
 #include "kudu/util/env.h"
 #include "kudu/util/env_util.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/path_util.h"
 #include "kudu/util/pb_util.h"
-#include "kudu/util/scoped_cleanup.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
 #include "kudu/util/subprocess.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tools/tool_action_perf.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tools/tool_action_perf.cc b/src/kudu/tools/tool_action_perf.cc
index 614aa13..568b0a0 100644
--- a/src/kudu/tools/tool_action_perf.cc
+++ b/src/kudu/tools/tool_action_perf.cc
@@ -86,31 +86,40 @@
 
 #include "kudu/tools/tool_action.h"
 
+#include <algorithm>
 #include <cstdint>
 #include <cstdlib>
-#include <ctime>
-
-#include <algorithm>
-#include <chrono>
 #include <iomanip>
 #include <iostream>
 #include <limits>
 #include <memory>
 #include <mutex>
-#include <sstream>
+#include <numeric>
+#include <string>
 #include <thread>
+#include <unordered_map>
 #include <vector>
 
 #include <gflags/gflags.h>
 
 #include "kudu/client/client.h"
+#include "kudu/client/row_result.h"
+#include "kudu/client/scan_batch.h"
+#include "kudu/client/schema.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/client/write_op.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/partial_row.h"
 #include "kudu/common/schema.h"
 #include "kudu/common/types.h"
+#include "kudu/gutil/map-util.h"
+#include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/split.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/tools/tool_action_common.h"
 #include "kudu/util/oid_generator.h"
 #include "kudu/util/random.h"
+#include "kudu/util/status.h"
 #include "kudu/util/stopwatch.h"
 
 using kudu::ColumnSchema;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tools/tool_action_remote_replica.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tools/tool_action_remote_replica.cc b/src/kudu/tools/tool_action_remote_replica.cc
index 5447120..77b6e6b 100644
--- a/src/kudu/tools/tool_action_remote_replica.cc
+++ b/src/kudu/tools/tool_action_remote_replica.cc
@@ -17,38 +17,49 @@
 
 #include "kudu/tools/tool_action.h"
 
+#include <cstdint>
 #include <iostream>
+#include <limits>
 #include <memory>
 #include <string>
 #include <utility>
+#include <unordered_map>
 #include <vector>
 
 #include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
 
 #include "kudu/client/client.h"
 #include "kudu/client/row_result.h"
 #include "kudu/client/scan_batch.h"
 #include "kudu/client/scanner-internal.h"
-#include "kudu/consensus/consensus.pb.h"
-#include "kudu/consensus/consensus.proxy.h"
-#include "kudu/consensus/metadata.pb.h"
+#include "kudu/client/schema.h"
+#include "kudu/common/common.pb.h"
 #include "kudu/common/partition.h"
 #include "kudu/common/schema.h"
 #include "kudu/common/wire_protocol.h"
+#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/consensus/consensus.pb.h"
+#include "kudu/consensus/consensus.proxy.h"
+#include "kudu/consensus/metadata.pb.h"
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/move.h"
 #include "kudu/gutil/strings/human_readable.h"
+#include "kudu/gutil/strings/substitute.h"
 #include "kudu/rpc/rpc_controller.h"
 #include "kudu/server/server_base.pb.h"
+#include "kudu/tablet/metadata.pb.h"
 #include "kudu/tablet/tablet.pb.h"
 #include "kudu/tools/tool_action_common.h"
 #include "kudu/tserver/tablet_server.h"
 #include "kudu/tserver/tserver.pb.h"
+#include "kudu/tserver/tserver_admin.pb.h"
 #include "kudu/tserver/tserver_admin.proxy.h"
 #include "kudu/tserver/tserver_service.proxy.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/pb_util.h"
-#include "kudu/util/net/net_util.h"
-#include "kudu/util/net/sockaddr.h"
 #include "kudu/util/status.h"
 
 DEFINE_bool(force_copy, false,

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tools/tool_action_table.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tools/tool_action_table.cc b/src/kudu/tools/tool_action_table.cc
index 5296886..95f2d51 100644
--- a/src/kudu/tools/tool_action_table.cc
+++ b/src/kudu/tools/tool_action_table.cc
@@ -21,10 +21,13 @@
 #include <iostream>
 #include <memory>
 #include <string>
-#include <utility>
+#include <unordered_map>
 #include <vector>
 
+#include <gflags/gflags.h>
+
 #include "kudu/client/client.h"
+#include "kudu/client/shared_ptr.h"
 #include "kudu/gutil/map-util.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/split.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tools/tool_action_tablet.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tools/tool_action_tablet.cc b/src/kudu/tools/tool_action_tablet.cc
index 5eba3f6..05be6f5 100644
--- a/src/kudu/tools/tool_action_tablet.cc
+++ b/src/kudu/tools/tool_action_tablet.cc
@@ -18,26 +18,34 @@
 #include "kudu/tools/tool_action.h"
 
 #include <algorithm>
-#include <boost/optional.hpp>
-#include <fstream>
+#include <cstdint>
+#include <fstream>  // IWYU pragma: keep
 #include <iostream>
 #include <memory>
 #include <string>
+#include <unordered_map>
 #include <vector>
 
+#include <boost/optional/optional.hpp>
+#include <gflags/gflags.h>
+#include <glog/logging.h>
+
 #include "kudu/client/client.h"
+#include "kudu/client/shared_ptr.h"
 #include "kudu/common/wire_protocol.h"
+#include "kudu/consensus/consensus.pb.h"
 #include "kudu/consensus/consensus.proxy.h"
 #include "kudu/consensus/metadata.pb.h"
+#include "kudu/consensus/opid.pb.h"
 #include "kudu/gutil/map-util.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/split.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/rpc/rpc_controller.h"
-#include "kudu/server/server_base.pb.h"
 #include "kudu/tools/ksck.h"
 #include "kudu/tools/ksck_remote.h"
 #include "kudu/tools/tool_action_common.h"
+#include "kudu/tserver/tserver.pb.h"
 #include "kudu/util/monotime.h"
 #include "kudu/util/net/net_util.h"
 #include "kudu/util/status.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tools/tool_action_tserver.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tools/tool_action_tserver.cc b/src/kudu/tools/tool_action_tserver.cc
index e396169..7ef2b35 100644
--- a/src/kudu/tools/tool_action_tserver.cc
+++ b/src/kudu/tools/tool_action_tserver.cc
@@ -24,13 +24,15 @@
 #include <utility>
 
 #include <boost/algorithm/string/predicate.hpp>
-#include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
 
+#include "kudu/common/wire_protocol.h"
 #include "kudu/gutil/map-util.h"
 #include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/split.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/master/master.h"
+#include "kudu/master/master.pb.h"
 #include "kudu/master/master.proxy.h"
 #include "kudu/tools/tool_action_common.h"
 #include "kudu/tserver/tablet_server.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tools/tool_action_wal.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tools/tool_action_wal.cc b/src/kudu/tools/tool_action_wal.cc
index c414320..434f144 100644
--- a/src/kudu/tools/tool_action_wal.cc
+++ b/src/kudu/tools/tool_action_wal.cc
@@ -17,8 +17,10 @@
 
 #include "kudu/tools/tool_action.h"
 
+#include <algorithm>
 #include <memory>
 #include <string>
+#include <unordered_map>
 
 #include "kudu/consensus/log_util.h"
 #include "kudu/gutil/map-util.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tools/tool_main.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tools/tool_main.cc b/src/kudu/tools/tool_main.cc
index 0227cd2..31f722e 100644
--- a/src/kudu/tools/tool_main.cc
+++ b/src/kudu/tools/tool_main.cc
@@ -16,6 +16,7 @@
 // under the License.
 
 #include <algorithm>
+#include <cstdlib>
 #include <deque>
 #include <iostream>
 #include <memory>
@@ -23,7 +24,9 @@
 #include <unordered_map>
 #include <vector>
 
+#include <boost/optional/optional.hpp>
 #include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
 #include <glog/logging.h>
 
 #include "kudu/gutil/map-util.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tools/tool_test_util.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tools/tool_test_util.cc b/src/kudu/tools/tool_test_util.cc
index 0610c9e..a0ac540 100644
--- a/src/kudu/tools/tool_test_util.cc
+++ b/src/kudu/tools/tool_test_util.cc
@@ -19,6 +19,10 @@
 
 #include "kudu/tools/tool_test_util.h"
 
+#include <ostream>
+
+#include <glog/logging.h>
+
 #include "kudu/util/env.h"
 #include "kudu/util/path_util.h"
 #include "kudu/util/status.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tserver/heartbeater.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tserver/heartbeater.cc b/src/kudu/tserver/heartbeater.cc
index e466c71..baa81c2 100644
--- a/src/kudu/tserver/heartbeater.cc
+++ b/src/kudu/tserver/heartbeater.cc
@@ -18,29 +18,46 @@
 #include "kudu/tserver/heartbeater.h"
 
 #include <atomic>
+#include <cstdint>
 #include <memory>
+#include <mutex>
+#include <ostream>
 #include <string>
+#include <unordered_map>
 #include <utility>
 #include <vector>
 
-#include <boost/optional.hpp>
+#include <boost/optional/optional.hpp>
 #include <gflags/gflags.h>
 #include <glog/logging.h>
 
 #include "kudu/common/wire_protocol.h"
+#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/map-util.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/master/master.pb.h"
 #include "kudu/master/master.proxy.h"
+#include "kudu/rpc/rpc_controller.h"
 #include "kudu/security/cert.h"
+#include "kudu/security/openssl_util.h"
 #include "kudu/security/tls_context.h"
+#include "kudu/security/token.pb.h"
 #include "kudu/security/token_verifier.h"
+#include "kudu/server/rpc_server.h"
 #include "kudu/server/webserver.h"
 #include "kudu/tserver/tablet_server.h"
 #include "kudu/tserver/tablet_server_options.h"
 #include "kudu/tserver/ts_tablet_manager.h"
+#include "kudu/util/condition_variable.h"
 #include "kudu/util/flag_tags.h"
+#include "kudu/util/locks.h"
 #include "kudu/util/monotime.h"
+#include "kudu/util/mutex.h"
 #include "kudu/util/net/net_util.h"
+#include "kudu/util/net/sockaddr.h"
 #include "kudu/util/pb_util.h"
 #include "kudu/util/status.h"
 #include "kudu/util/thread.h"
@@ -70,6 +87,11 @@ using std::vector;
 using strings::Substitute;
 
 namespace kudu {
+
+namespace rpc {
+class Messenger;
+}
+
 namespace tserver {
 
 namespace {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tserver/mini_tablet_server-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tserver/mini_tablet_server-test.cc b/src/kudu/tserver/mini_tablet_server-test.cc
index 7405830..34237be 100644
--- a/src/kudu/tserver/mini_tablet_server-test.cc
+++ b/src/kudu/tserver/mini_tablet_server-test.cc
@@ -15,12 +15,18 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <memory>
+#include <vector>
+
 #include <gtest/gtest.h>
 
 #include "kudu/fs/fs_manager.h"
 #include "kudu/tserver/mini_tablet_server.h"
 #include "kudu/tserver/tablet_server.h"
+#include "kudu/util/net/net_util.h"
 #include "kudu/util/path_util.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tserver/mini_tablet_server.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tserver/mini_tablet_server.cc b/src/kudu/tserver/mini_tablet_server.cc
index 452281a..607b4db 100644
--- a/src/kudu/tserver/mini_tablet_server.cc
+++ b/src/kudu/tserver/mini_tablet_server.cc
@@ -17,18 +17,30 @@
 
 #include "kudu/tserver/mini_tablet_server.h"
 
+#include <ostream>
 #include <utility>
 #include <vector>
 
 #include <gflags/gflags_declare.h>
+#include <glog/logging.h>
 
+#include "kudu/common/common.pb.h"
+#include "kudu/common/partition.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/wire_protocol.pb.h"
 #include "kudu/consensus/metadata.pb.h"
+#include "kudu/fs/fs_manager.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/tablet/tablet-test-util.h"
+#include "kudu/server/rpc_server.h"
+#include "kudu/server/webserver_options.h"
+#include "kudu/tablet/tablet-harness.h"
 #include "kudu/tablet/tablet_replica.h"
 #include "kudu/tserver/tablet_server.h"
 #include "kudu/tserver/ts_tablet_manager.h"
+#include "kudu/util/env.h"
 #include "kudu/util/env_util.h"
+#include "kudu/util/net/net_util.h"
 #include "kudu/util/net/sockaddr.h"
 #include "kudu/util/path_util.h"
 #include "kudu/util/status.h"
@@ -36,9 +48,9 @@
 DECLARE_bool(enable_minidumps);
 DECLARE_bool(rpc_server_allow_ephemeral_ports);
 
-using kudu::consensus::RaftConfigPB;
-using kudu::consensus::RaftPeerPB;
 using kudu::tablet::TabletReplica;
+using kudu::consensus::RaftPeerPB;
+using kudu::consensus::RaftConfigPB;
 using std::pair;
 using std::string;
 using std::unique_ptr;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tserver/mini_tablet_server.h
----------------------------------------------------------------------
diff --git a/src/kudu/tserver/mini_tablet_server.h b/src/kudu/tserver/mini_tablet_server.h
index b60d7e8..329385e 100644
--- a/src/kudu/tserver/mini_tablet_server.h
+++ b/src/kudu/tserver/mini_tablet_server.h
@@ -21,13 +21,12 @@
 #include <string>
 #include <vector>
 
-#include "kudu/common/schema.h"
-#include "kudu/gutil/macros.h"
 #include "kudu/tserver/tablet_server_options.h"
 #include "kudu/util/net/sockaddr.h"
 
 namespace kudu {
-class FsManager;
+class HostPort;
+class Schema;
 class Status;
 
 namespace consensus {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tserver/scanner_metrics.h
----------------------------------------------------------------------
diff --git a/src/kudu/tserver/scanner_metrics.h b/src/kudu/tserver/scanner_metrics.h
index 41a67b7..e33b038 100644
--- a/src/kudu/tserver/scanner_metrics.h
+++ b/src/kudu/tserver/scanner_metrics.h
@@ -18,12 +18,10 @@
 #define KUDU_TSERVER_SCANNER_METRICS_H
 
 #include "kudu/gutil/ref_counted.h"
+#include "kudu/util/metrics.h"
 
 namespace kudu {
 
-class MetricEntity;
-class Counter;
-class Histogram;
 class MonoTime;
 
 namespace tserver {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tserver/scanners-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tserver/scanners-test.cc b/src/kudu/tserver/scanners-test.cc
index f0b7473..8d8180b 100644
--- a/src/kudu/tserver/scanners-test.cc
+++ b/src/kudu/tserver/scanners-test.cc
@@ -16,14 +16,20 @@
 // under the License.
 #include "kudu/tserver/scanners.h"
 
+#include <memory>
 #include <vector>
 
+#include <gflags/gflags_declare.h>
 #include <gtest/gtest.h>
+
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/tablet/tablet_replica.h"
 #include "kudu/tserver/scanner_metrics.h"
 #include "kudu/tserver/tserver.pb.h"
+#include "kudu/util/make_shared.h"
 #include "kudu/util/metrics.h"
-#include "kudu/util/test_util.h"
+#include "kudu/util/monotime.h"
 
 DECLARE_int32(scanner_ttl_ms);
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tserver/scanners.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tserver/scanners.cc b/src/kudu/tserver/scanners.cc
index af35bf0..d0b9c57 100644
--- a/src/kudu/tserver/scanners.cc
+++ b/src/kudu/tserver/scanners.cc
@@ -16,18 +16,26 @@
 // under the License.
 #include "kudu/tserver/scanners.h"
 
+#include <cstdint>
 #include <mutex>
+#include <ostream>
 
 #include <gflags/gflags.h>
 
 #include "kudu/common/iterator.h"
 #include "kudu/common/scan_spec.h"
+#include "kudu/common/schema.h"
+#include "kudu/gutil/bind.h"
+#include "kudu/gutil/bind_helpers.h"
 #include "kudu/gutil/hash/string_hash.h"
+#include "kudu/gutil/integral_types.h"
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/tserver/scanner_metrics.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/metrics.h"
+#include "kudu/util/status.h"
 #include "kudu/util/thread.h"
 
 DEFINE_int32(scanner_ttl_ms, 60000,

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tserver/scanners.h
----------------------------------------------------------------------
diff --git a/src/kudu/tserver/scanners.h b/src/kudu/tserver/scanners.h
index 184f5fc..ec045bb 100644
--- a/src/kudu/tserver/scanners.h
+++ b/src/kudu/tserver/scanners.h
@@ -17,6 +17,8 @@
 #ifndef KUDU_TSERVER_SCANNERS_H
 #define KUDU_TSERVER_SCANNERS_H
 
+#include <cstddef>
+#include <cstdint>
 #include <memory>
 #include <mutex>
 #include <string>
@@ -24,12 +26,17 @@
 #include <utility>
 #include <vector>
 
+#include <glog/logging.h>
+#include <gtest/gtest_prod.h>
+
 #include "kudu/common/iterator_stats.h"
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/tablet/tablet_replica.h"
 #include "kudu/util/auto_release_pool.h"
+#include "kudu/util/condition_variable.h"
+#include "kudu/util/locks.h"
 #include "kudu/util/memory/arena.h"
 #include "kudu/util/metrics.h"
 #include "kudu/util/monotime.h"
@@ -39,15 +46,12 @@
 
 namespace kudu {
 
-class MetricEntity;
 class RowwiseIterator;
 class ScanSpec;
 class Schema;
 class Status;
 class Thread;
 
-struct IteratorStats;
-
 namespace tserver {
 
 class Scanner;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tserver/tablet_copy_client-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tserver/tablet_copy_client-test.cc b/src/kudu/tserver/tablet_copy_client-test.cc
index fcde4ec..c6afa49 100644
--- a/src/kudu/tserver/tablet_copy_client-test.cc
+++ b/src/kudu/tserver/tablet_copy_client-test.cc
@@ -16,17 +16,48 @@
 // under the License.
 #include "kudu/tserver/tablet_copy-test-base.h"
 
-#include <tuple>
-
+#include <cstdint>
+#include <limits>
+#include <memory>
+#include <ostream>
+#include <string>
+#include <vector>
+
+#include <glog/logging.h>
 #include <glog/stl_logging.h>
+#include <gtest/gtest.h>
 
+#include "kudu/common/wire_protocol.h"
 #include "kudu/consensus/consensus_meta_manager.h"
+#include "kudu/consensus/log.h"
+#include "kudu/consensus/log_reader.h"
+#include "kudu/consensus/log_util.h"
+#include "kudu/consensus/metadata.pb.h"
 #include "kudu/consensus/quorum_util.h"
+#include "kudu/consensus/raft_consensus.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/gutil/ref_counted.h"
 #include "kudu/gutil/strings/fastmem.h"
-#include "kudu/tablet/tablet_bootstrap.h"
+#include "kudu/gutil/strings/substitute.h"
+#include "kudu/rpc/messenger.h"
+#include "kudu/tablet/metadata.pb.h"
+#include "kudu/tablet/tablet_metadata.h"
+#include "kudu/tablet/tablet_replica.h"
+#include "kudu/tserver/tablet_copy.pb.h"
 #include "kudu/tserver/tablet_copy_client.h"
+#include "kudu/util/crc.h"
+#include "kudu/util/env.h"
 #include "kudu/util/env_util.h"
+#include "kudu/util/faststring.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/net/net_util.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 
 using std::shared_ptr;
 using std::string;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tserver/tablet_copy_client.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tserver/tablet_copy_client.cc b/src/kudu/tserver/tablet_copy_client.cc
index 22898e9..7418477 100644
--- a/src/kudu/tserver/tablet_copy_client.cc
+++ b/src/kudu/tserver/tablet_copy_client.cc
@@ -17,37 +17,49 @@
 
 #include "kudu/tserver/tablet_copy_client.h"
 
+#include <algorithm>
+#include <cstdint>
+#include <memory>
+#include <ostream>
+
+#include <boost/optional/optional.hpp>
 #include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
 #include <glog/logging.h>
-#include <memory>
 
+#include "kudu/common/partition.h"
+#include "kudu/common/schema.h"
 #include "kudu/common/wire_protocol.h"
 #include "kudu/consensus/consensus_meta.h"
 #include "kudu/consensus/consensus_meta_manager.h"
 #include "kudu/consensus/metadata.pb.h"
+#include "kudu/consensus/opid.pb.h"
 #include "kudu/fs/block_id.h"
 #include "kudu/fs/block_manager.h"
 #include "kudu/fs/data_dirs.h"
+#include "kudu/fs/fs.pb.h"
 #include "kudu/fs/fs_manager.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/gutil/strings/util.h"
 #include "kudu/gutil/walltime.h"
-#include "kudu/rpc/messenger.h"
-#include "kudu/rpc/transfer.h"
-#include "kudu/tablet/tablet.pb.h"
-#include "kudu/tablet/tablet_bootstrap.h"
+#include "kudu/rpc/rpc_controller.h"
+#include "kudu/rpc/rpc_header.pb.h"
+#include "kudu/tablet/metadata.pb.h"
+#include "kudu/tablet/tablet_metadata.h"
 #include "kudu/tablet/tablet_replica.h"
 #include "kudu/tserver/tablet_copy.pb.h"
 #include "kudu/tserver/tablet_copy.proxy.h"
-#include "kudu/tserver/tablet_server.h"
 #include "kudu/tserver/ts_tablet_manager.h"
 #include "kudu/util/crc.h"
 #include "kudu/util/env.h"
 #include "kudu/util/env_util.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/logging.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/net/net_util.h"
 #include "kudu/util/pb_util.h"
+#include "kudu/util/net/sockaddr.h"
+#include "kudu/util/path_util.h"
 
 DEFINE_int32(tablet_copy_begin_session_timeout_ms, 3000,
              "Tablet server RPC client timeout for BeginTabletCopySession calls. "

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tserver/tablet_copy_client.h
----------------------------------------------------------------------
diff --git a/src/kudu/tserver/tablet_copy_client.h b/src/kudu/tserver/tablet_copy_client.h
index 6861188..7262ae5 100644
--- a/src/kudu/tserver/tablet_copy_client.h
+++ b/src/kudu/tserver/tablet_copy_client.h
@@ -17,19 +17,20 @@
 #ifndef KUDU_TSERVER_TABLET_COPY_CLIENT_H
 #define KUDU_TSERVER_TABLET_COPY_CLIENT_H
 
+#include <cstdint>
 #include <string>
 #include <memory>
 #include <vector>
 
 #include <gtest/gtest_prod.h>
 
-#include "kudu/fs/block_id.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
 
+class BlockId;
 class BlockIdPB;
 class FsManager;
 class HostPort;
@@ -38,12 +39,9 @@ namespace consensus {
 class ConsensusMetadata;
 class ConsensusMetadataManager;
 class ConsensusStatePB;
-class RaftConfigPB;
-class RaftPeerPB;
 } // namespace consensus
 
 namespace rpc {
-class ErrorStatusPB;
 class Messenger;
 class RpcController;
 } // namespace rpc

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tserver/tablet_copy_service-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tserver/tablet_copy_service-test.cc b/src/kudu/tserver/tablet_copy_service-test.cc
index 6d33731..442210f 100644
--- a/src/kudu/tserver/tablet_copy_service-test.cc
+++ b/src/kudu/tserver/tablet_copy_service-test.cc
@@ -16,26 +16,44 @@
 // under the License.
 #include "kudu/tserver/tablet_copy-test-base.h"
 
-#include <gflags/gflags.h>
+#include <cstdint>
 #include <limits>
+#include <memory>
+#include <string>
 #include <thread>
 #include <vector>
 
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
+#include "kudu/common/wire_protocol.h"
 #include "kudu/consensus/log.h"
-#include "kudu/consensus/log_anchor_registry.h"
+#include "kudu/consensus/log.pb.h"
+#include "kudu/consensus/log_reader.h"
 #include "kudu/consensus/log_util.h"
-#include "kudu/consensus/metadata.pb.h"
 #include "kudu/consensus/opid_util.h"
+#include "kudu/fs/block_id.h"
+#include "kudu/fs/fs.pb.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
+#include "kudu/rpc/rpc_controller.h"
 #include "kudu/rpc/rpc_header.pb.h"
-#include "kudu/rpc/transfer.h"
+#include "kudu/tablet/metadata.pb.h"
+#include "kudu/tablet/tablet_replica.h"
+#include "kudu/tserver/mini_tablet_server.h"
 #include "kudu/tserver/tablet_copy.pb.h"
-#include "kudu/tserver/tserver_service.pb.h"
-#include "kudu/tserver/tserver_service.proxy.h"
-#include "kudu/util/crc.h"
+#include "kudu/tserver/tablet_copy.proxy.h"
+#include "kudu/tserver/tablet_server.h"
+#include "kudu/util/env.h"
+#include "kudu/util/faststring.h"
+#include "kudu/util/make_shared.h"
 #include "kudu/util/monotime.h"
 #include "kudu/util/pb_util.h"
-#include "kudu/util/stopwatch.h"
-#include "kudu/util/test_util.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 
 #define ASSERT_REMOTE_ERROR(status, err, code, str) \
     ASSERT_NO_FATAL_FAILURE(AssertRemoteError(status, err, code, str))

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tserver/tablet_copy_service.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tserver/tablet_copy_service.cc b/src/kudu/tserver/tablet_copy_service.cc
index 546ce0d..588b7d4 100644
--- a/src/kudu/tserver/tablet_copy_service.cc
+++ b/src/kudu/tserver/tablet_copy_service.cc
@@ -16,25 +16,34 @@
 // under the License.
 #include "kudu/tserver/tablet_copy_service.h"
 
-#include <algorithm>
-#include <gflags/gflags.h>
-#include <glog/logging.h>
+#include <cstdint>
+#include <ostream>
 #include <string>
+#include <utility>
 #include <vector>
 
+#include <gflags/gflags.h>
+#include <glog/logging.h>
+
 #include "kudu/common/wire_protocol.h"
-#include "kudu/consensus/log.h"
+#include "kudu/consensus/log.pb.h"
+#include "kudu/consensus/log_util.h"
+#include "kudu/consensus/metadata.pb.h"
+#include "kudu/fs/block_id.h"
 #include "kudu/fs/fs_manager.h"
-#include "kudu/gutil/strings/substitute.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/strings/substitute.h"
 #include "kudu/rpc/rpc_context.h"
 #include "kudu/server/server_base.h"
 #include "kudu/tserver/tablet_copy_source_session.h"
 #include "kudu/tserver/tablet_replica_lookup.h"
+#include "kudu/tablet/metadata.pb.h"
 #include "kudu/tablet/tablet_replica.h"
 #include "kudu/util/crc.h"
 #include "kudu/util/fault_injection.h"
 #include "kudu/util/flag_tags.h"
+#include "kudu/util/logging.h"
 #include "kudu/util/pb_util.h"
 #include "kudu/util/random_util.h"
 
@@ -72,6 +81,12 @@ using std::string;
 using std::vector;
 using strings::Substitute;
 
+namespace google {
+namespace protobuf {
+class Message;
+}
+}
+
 namespace kudu {
 
 using crc::Crc32c;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tserver/tablet_copy_service.h
----------------------------------------------------------------------
diff --git a/src/kudu/tserver/tablet_copy_service.h b/src/kudu/tserver/tablet_copy_service.h
index 2eeab40..1292c26 100644
--- a/src/kudu/tserver/tablet_copy_service.h
+++ b/src/kudu/tserver/tablet_copy_service.h
@@ -20,31 +20,38 @@
 #include <string>
 #include <unordered_map>
 
-#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/ref_counted.h"
+#include "kudu/tserver/tablet_copy.pb.h"
 #include "kudu/tserver/tablet_copy.service.h"
+#include "kudu/tserver/tablet_copy_source_session.h"
 #include "kudu/util/countdown_latch.h"
-#include "kudu/util/locks.h"
-#include "kudu/util/metrics.h"
 #include "kudu/util/monotime.h"
+#include "kudu/util/mutex.h"
 #include "kudu/util/random.h"
 #include "kudu/util/status.h"
 #include "kudu/util/thread.h"
 
+namespace google {
+namespace protobuf {
+class Message;
+}
+}
+
 namespace kudu {
+
 class FsManager;
 
 namespace server {
 class ServerBase;
 } // namespace server
 
-namespace log {
-class ReadableLogSegment;
-} // namespace log
+namespace rpc {
+class RpcContext;
+} // namespace rpc
 
 namespace tserver {
 
-class TabletCopySourceSession;
 class TabletReplicaLookupIf;
 
 class TabletCopyServiceImpl : public TabletCopyServiceIf {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tserver/tablet_copy_source_session-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tserver/tablet_copy_source_session-test.cc b/src/kudu/tserver/tablet_copy_source_session-test.cc
index 6204638..05cb6e4 100644
--- a/src/kudu/tserver/tablet_copy_source_session-test.cc
+++ b/src/kudu/tserver/tablet_copy_source_session-test.cc
@@ -16,30 +16,65 @@
 // under the License.
 #include "kudu/tablet/tablet-test-util.h"
 
+#include <algorithm>
+#include <cstddef>
+#include <cstdint>
+#include <memory>
+#include <ostream>
+#include <string>
+#include <vector>
+
 #include <glog/logging.h>
 #include <gtest/gtest.h>
-#include <memory>
 
+#include "kudu/clock/clock.h"
+#include "kudu/common/common.pb.h"
 #include "kudu/common/partial_row.h"
 #include "kudu/common/row_operations.h"
 #include "kudu/common/schema.h"
+#include "kudu/common/wire_protocol.h"
+#include "kudu/common/wire_protocol.pb.h"
 #include "kudu/consensus/consensus_meta.h"
 #include "kudu/consensus/consensus_meta_manager.h"
 #include "kudu/consensus/log.h"
+#include "kudu/consensus/log_anchor_registry.h"
+#include "kudu/consensus/log_util.h"
 #include "kudu/consensus/metadata.pb.h"
 #include "kudu/consensus/opid_util.h"
+#include "kudu/consensus/raft_consensus.h"
 #include "kudu/fs/block_id.h"
+#include "kudu/fs/block_manager.h"
+#include "kudu/fs/fs_manager.h"
+#include "kudu/gutil/bind.h"
+#include "kudu/gutil/bind_helpers.h"
 #include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/move.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/strings/fastmem.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/rpc/messenger.h"
+#include "kudu/rpc/result_tracker.h"
+#include "kudu/tablet/metadata.pb.h"
+#include "kudu/tablet/tablet.h"
+#include "kudu/tablet/tablet_metadata.h"
 #include "kudu/tablet/tablet_replica.h"
+#include "kudu/tablet/transactions/transaction.h"
+#include "kudu/tablet/transactions/write_transaction.h"
+#include "kudu/tserver/tablet_copy.pb.h"
 #include "kudu/tserver/tablet_copy_source_session.h"
+#include "kudu/tserver/tserver.pb.h"
+#include "kudu/util/countdown_latch.h"
 #include "kudu/util/crc.h"
+#include "kudu/util/env.h"
+#include "kudu/util/faststring.h"
 #include "kudu/util/metrics.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/path_util.h"
 #include "kudu/util/pb_util.h"
-#include "kudu/util/test_util.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/threadpool.h"
 
 METRIC_DECLARE_entity(tablet);
@@ -50,6 +85,9 @@ using std::unique_ptr;
 using std::vector;
 
 namespace kudu {
+
+class BlockIdPB;
+
 namespace tserver {
 
 using consensus::ConsensusMetadata;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tserver/tablet_copy_source_session.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tserver/tablet_copy_source_session.cc b/src/kudu/tserver/tablet_copy_source_session.cc
index de3ecbf..8c57cf0 100644
--- a/src/kudu/tserver/tablet_copy_source_session.cc
+++ b/src/kudu/tserver/tablet_copy_source_session.cc
@@ -17,20 +17,35 @@
 #include "kudu/tserver/tablet_copy_source_session.h"
 
 #include <algorithm>
-#include <mutex>
+#include <cstdint>
+#include <cstring>
+#include <ostream>
+#include <vector>
+
+#include <gflags/gflags.h>
 
 #include "kudu/consensus/log.h"
+#include "kudu/consensus/log.pb.h"
 #include "kudu/consensus/log_reader.h"
 #include "kudu/consensus/metadata.pb.h"
+#include "kudu/consensus/opid.pb.h"
+#include "kudu/consensus/opid_util.h"
+#include "kudu/consensus/raft_consensus.h"
 #include "kudu/fs/block_manager.h"
+#include "kudu/fs/fs.pb.h"
+#include "kudu/fs/fs_manager.h"
+#include "kudu/gutil/basictypes.h"
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/gutil/type_traits.h"
 #include "kudu/rpc/transfer.h"
+#include "kudu/tablet/tablet_metadata.h"
 #include "kudu/tablet/tablet_replica.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/mutex.h"
 #include "kudu/util/pb_util.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/stopwatch.h"
 #include "kudu/util/trace.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tserver/tablet_copy_source_session.h
----------------------------------------------------------------------
diff --git a/src/kudu/tserver/tablet_copy_source_session.h b/src/kudu/tserver/tablet_copy_source_session.h
index adeb133..b91fed5 100644
--- a/src/kudu/tserver/tablet_copy_source_session.h
+++ b/src/kudu/tserver/tablet_copy_source_session.h
@@ -17,28 +17,32 @@
 
 #pragma once
 
+#include <algorithm>
+#include <cstdint>
 #include <memory>
 #include <string>
 #include <unordered_map>
-#include <vector>
+
+#include <glog/logging.h>
 
 #include "kudu/consensus/log_anchor_registry.h"
 #include "kudu/consensus/log_util.h"
 #include "kudu/consensus/metadata.pb.h"
-#include "kudu/consensus/opid_util.h"
 #include "kudu/fs/block_id.h"
 #include "kudu/fs/block_manager.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/stl_util.h"
+#include "kudu/tablet/metadata.pb.h"
 #include "kudu/tserver/tablet_copy.pb.h"
-#include "kudu/util/env_util.h"
-#include "kudu/util/locks.h"
+#include "kudu/util/env.h"
+#include "kudu/util/mutex.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
 
 class FsManager;
+class Slice;
 
 namespace tablet {
 class TabletReplica;
@@ -46,8 +50,6 @@ class TabletReplica;
 
 namespace tserver {
 
-class TabletReplicaLookupIf;
-
 // Caches file size and holds a shared_ptr reference to a RandomAccessFile.
 // Assumes that the file underlying the RandomAccessFile is immutable.
 struct ImmutableRandomAccessFileInfo {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tserver/tablet_server-stress-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tserver/tablet_server-stress-test.cc b/src/kudu/tserver/tablet_server-stress-test.cc
index 96ab39b..183d298 100644
--- a/src/kudu/tserver/tablet_server-stress-test.cc
+++ b/src/kudu/tserver/tablet_server-stress-test.cc
@@ -16,12 +16,30 @@
 // under the License.
 #include "kudu/tserver/tablet_server-test-base.h"
 
+#include <cstdint>
+#include <ostream>
+#include <string>
+#include <vector>
 #include <thread>
 
+#include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/countdown_latch.h"
+#include "kudu/util/jsonwriter.h"
+#include "kudu/util/metrics.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/process_memory.h"
+#include "kudu/util/status.h"
 #include "kudu/util/stopwatch.h"
+#include "kudu/util/test_macros.h"
+#include "kudu/util/test_util.h"
+#include "kudu/util/thread.h"
 
 DEFINE_int32(runtime_secs, 10,
              "Maximum number of seconds to run. If the threads have not completed "

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tserver/tablet_server-test-base.h
----------------------------------------------------------------------
diff --git a/src/kudu/tserver/tablet_server-test-base.h b/src/kudu/tserver/tablet_server-test-base.h
index bd77601..d4bff34 100644
--- a/src/kudu/tserver/tablet_server-test-base.h
+++ b/src/kudu/tserver/tablet_server-test-base.h
@@ -38,6 +38,7 @@
 #include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/rpc/messenger.h"
+#include "kudu/rpc/rpc_controller.h"
 #include "kudu/server/server_base.proxy.h"
 #include "kudu/tablet/local_tablet_writer.h"
 #include "kudu/tablet/tablet.h"
@@ -54,6 +55,7 @@
 #include "kudu/util/metrics.h"
 #include "kudu/util/pb_util.h"
 #include "kudu/util/test_graph.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 DEFINE_int32(rpc_timeout, 1000, "Timeout for RPC calls, in seconds");

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tserver/tablet_server-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tserver/tablet_server-test.cc b/src/kudu/tserver/tablet_server-test.cc
index 001100f..34a4ab1 100644
--- a/src/kudu/tserver/tablet_server-test.cc
+++ b/src/kudu/tserver/tablet_server-test.cc
@@ -14,37 +14,96 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
+
 #include "kudu/tserver/tablet_server-test-base.h"
 
+#include <unistd.h>
+
+#include <cstdint>
 #include <memory>
 #include <sstream>
-
+#include <string>
+#include <utility>
+#include <vector>
+
+#include <boost/bind.hpp>
+#include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
 #include <google/protobuf/util/message_differencer.h>
-#include <zlib.h>
+#include <gtest/gtest.h>
 
+#include "kudu/clock/clock.h"
 #include "kudu/clock/hybrid_clock.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/encoded_key.h"
+#include "kudu/common/partial_row.h"
+#include "kudu/common/partition.h"
+#include "kudu/common/row_operations.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/timestamp.h"
+#include "kudu/common/wire_protocol-test-util.h"
+#include "kudu/common/wire_protocol.h"
+#include "kudu/common/wire_protocol.pb.h"
 #include "kudu/consensus/log-test-base.h"
+#include "kudu/consensus/log.h"
+#include "kudu/consensus/metadata.pb.h"
+#include "kudu/fs/fs.pb.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/gutil/stringprintf.h"
 #include "kudu/gutil/strings/escaping.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/master/master.pb.h"
+#include "kudu/rpc/messenger.h"
+#include "kudu/rpc/rpc_controller.h"
+#include "kudu/rpc/rpc_header.pb.h"
+#include "kudu/server/rpc_server.h"
 #include "kudu/server/server_base.pb.h"
 #include "kudu/server/server_base.proxy.h"
-#include "kudu/tablet/tablet_bootstrap.h"
+#include "kudu/tablet/metadata.pb.h"
+#include "kudu/tablet/tablet.h"
+#include "kudu/tablet/tablet_metadata.h"
+#include "kudu/tablet/tablet_replica.h"
 #include "kudu/tserver/heartbeater.h"
+#include "kudu/tserver/mini_tablet_server.h"
+#include "kudu/tserver/scanners.h"
+#include "kudu/tserver/tablet_server.h"
+#include "kudu/tserver/tablet_server_test_util.h"
+#include "kudu/tserver/ts_tablet_manager.h"
+#include "kudu/tserver/tserver.pb.h"
+#include "kudu/tserver/tserver_admin.pb.h"
+#include "kudu/tserver/tserver_admin.proxy.h"
+#include "kudu/tserver/tserver_service.pb.h"
+#include "kudu/tserver/tserver_service.proxy.h"
+#include "kudu/util/countdown_latch.h"
 #include "kudu/util/crc.h"
 #include "kudu/util/curl_util.h"
+#include "kudu/util/env.h"
+#include "kudu/util/faststring.h"
+#include "kudu/util/jsonwriter.h"
+#include "kudu/util/metrics.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/net/sockaddr.h"
+#include "kudu/util/path_util.h"
 #include "kudu/util/pb_util.h"
-#include "kudu/util/url-coding.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
+#include "kudu/util/test_util.h"
+#include "kudu/util/thread.h"
 #include "kudu/util/zlib.h"
 
 using google::protobuf::util::MessageDifferencer;
-using kudu::rpc::Messenger;
-using kudu::rpc::MessengerBuilder;
-using kudu::rpc::RpcController;
 using kudu::clock::Clock;
 using kudu::clock::HybridClock;
 using kudu::pb_util::SecureDebugString;
 using kudu::pb_util::SecureShortDebugString;
+using kudu::rpc::Messenger;
+using kudu::rpc::MessengerBuilder;
+using kudu::rpc::RpcController;
 using kudu::tablet::Tablet;
 using kudu::tablet::TabletReplica;
 using kudu::tablet::TabletSuperBlockPB;
@@ -74,6 +133,11 @@ METRIC_DECLARE_counter(rows_deleted);
 METRIC_DECLARE_gauge_uint64(log_block_manager_blocks_under_management);
 
 namespace kudu {
+
+namespace tablet {
+class RowSet;
+}
+
 namespace tserver {
 
 class TabletServerTest : public TabletServerTestBase {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tserver/tablet_server.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tserver/tablet_server.cc b/src/kudu/tserver/tablet_server.cc
index f922b5e..bd3cde9 100644
--- a/src/kudu/tserver/tablet_server.cc
+++ b/src/kudu/tserver/tablet_server.cc
@@ -17,14 +17,20 @@
 
 #include "kudu/tserver/tablet_server.h"
 
+#include <algorithm>
+#include <cstddef>
+#include <ostream>
+#include <type_traits>
+
 #include <glog/logging.h>
 
 #include "kudu/cfile/block_cache.h"
 #include "kudu/fs/fs_manager.h"
+#include "kudu/gutil/bind.h"
+#include "kudu/gutil/bind_helpers.h"
+#include "kudu/gutil/move.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/rpc/service_if.h"
-#include "kudu/server/rpc_server.h"
-#include "kudu/server/webserver.h"
 #include "kudu/tserver/heartbeater.h"
 #include "kudu/tserver/scanners.h"
 #include "kudu/tserver/tablet_copy_service.h"
@@ -33,7 +39,6 @@
 #include "kudu/tserver/tserver-path-handlers.h"
 #include "kudu/util/maintenance_manager.h"
 #include "kudu/util/net/net_util.h"
-#include "kudu/util/net/sockaddr.h"
 #include "kudu/util/status.h"
 
 using std::string;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tserver/tablet_server.h
----------------------------------------------------------------------
diff --git a/src/kudu/tserver/tablet_server.h b/src/kudu/tserver/tablet_server.h
index 40a1c39..1dc3f38 100644
--- a/src/kudu/tserver/tablet_server.h
+++ b/src/kudu/tserver/tablet_server.h
@@ -17,18 +17,15 @@
 #ifndef KUDU_TSERVER_TABLET_SERVER_H
 #define KUDU_TSERVER_TABLET_SERVER_H
 
+#include <cstdint>
 #include <memory>
 #include <string>
 
-#include "kudu/consensus/metadata.pb.h"
 #include "kudu/gutil/atomicops.h"
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/kserver/kserver.h"
 #include "kudu/tserver/tablet_server_options.h"
-#include "kudu/tserver/tserver.pb.h"
-#include "kudu/util/net/net_util.h"
-#include "kudu/util/net/sockaddr.h"
 #include "kudu/util/status.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tserver/tablet_server_main.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tserver/tablet_server_main.cc b/src/kudu/tserver/tablet_server_main.cc
index 5123f0f..0df91e8 100644
--- a/src/kudu/tserver/tablet_server_main.cc
+++ b/src/kudu/tserver/tablet_server_main.cc
@@ -15,16 +15,24 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <glog/logging.h>
 #include <iostream>
+#include <string>
+
+#include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
 
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/tserver/tablet_server.h"
+#include "kudu/tserver/tablet_server_options.h"
 #include "kudu/util/fault_injection.h"
 #include "kudu/util/flags.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/init.h"
 #include "kudu/util/logging.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/status.h"
 #include "kudu/util/version_info.h"
 
 using kudu::tserver::TabletServer;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tserver/tablet_server_options.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tserver/tablet_server_options.cc b/src/kudu/tserver/tablet_server_options.cc
index 7361c41..c99779a 100644
--- a/src/kudu/tserver/tablet_server_options.cc
+++ b/src/kudu/tserver/tablet_server_options.cc
@@ -17,12 +17,18 @@
 
 #include "kudu/tserver/tablet_server_options.h"
 
-#include <glog/logging.h>
+#include <ostream>
+#include <string>
+
 #include <gflags/gflags.h>
+#include <glog/logging.h>
 
+#include "kudu/gutil/macros.h"
 #include "kudu/master/master.h"
+#include "kudu/server/rpc_server.h"
 #include "kudu/tserver/tablet_server.h"
 #include "kudu/util/flag_tags.h"
+#include "kudu/util/status.h"
 
 DEFINE_string(tserver_master_addrs, "127.0.0.1:7051",
               "Comma separated addresses of the masters which the "

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tserver/tablet_server_test_util.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tserver/tablet_server_test_util.cc b/src/kudu/tserver/tablet_server_test_util.cc
index 5caf507..52b3891 100644
--- a/src/kudu/tserver/tablet_server_test_util.cc
+++ b/src/kudu/tserver/tablet_server_test_util.cc
@@ -18,7 +18,6 @@
 #include "kudu/tserver/tablet_server_test_util.h"
 
 #include "kudu/consensus/consensus.proxy.h"
-#include "kudu/rpc/messenger.h"
 #include "kudu/server/server_base.proxy.h"
 #include "kudu/tserver/tserver_admin.proxy.h"
 #include "kudu/tserver/tserver_service.proxy.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tserver/tablet_service.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tserver/tablet_service.cc b/src/kudu/tserver/tablet_service.cc
index 77e4f95..f4cb01d 100644
--- a/src/kudu/tserver/tablet_service.cc
+++ b/src/kudu/tserver/tablet_service.cc
@@ -18,53 +18,84 @@
 #include "kudu/tserver/tablet_service.h"
 
 #include <algorithm>
+#include <cstdint>
+#include <cstring>
 #include <functional>
 #include <memory>
+#include <ostream>
 #include <string>
+#include <type_traits>
 #include <unordered_set>
 #include <vector>
 
-#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/hybrid_clock.h"
+#include "kudu/clock/clock.h"
+#include "kudu/common/column_predicate.h"
+#include "kudu/common/columnblock.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/encoded_key.h"
 #include "kudu/common/iterator.h"
+#include "kudu/common/iterator_stats.h"
+#include "kudu/common/partition.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/common/wire_protocol.h"
+#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/consensus/consensus.pb.h"
+#include "kudu/consensus/metadata.pb.h"
 #include "kudu/consensus/raft_consensus.h"
 #include "kudu/consensus/time_manager.h"
-#include "kudu/gutil/bind.h"
 #include "kudu/gutil/casts.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/map-util.h"
-#include "kudu/gutil/stl_util.h"
+#include "kudu/gutil/move.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/stringprintf.h"
-#include "kudu/gutil/strings/escaping.h"
+#include "kudu/gutil/strings/substitute.h"
 #include "kudu/rpc/rpc_context.h"
+#include "kudu/rpc/rpc_header.pb.h"
 #include "kudu/rpc/rpc_sidecar.h"
+#include "kudu/server/server_base.h"
 #include "kudu/tablet/compaction.h"
 #include "kudu/tablet/metadata.pb.h"
-#include "kudu/tablet/tablet_bootstrap.h"
+#include "kudu/tablet/mvcc.h"
+#include "kudu/tablet/tablet.h"
+#include "kudu/tablet/tablet_metadata.h"
 #include "kudu/tablet/tablet_metrics.h"
 #include "kudu/tablet/tablet_replica.h"
 #include "kudu/tablet/transactions/alter_schema_transaction.h"
+#include "kudu/tablet/transactions/transaction.h"
 #include "kudu/tablet/transactions/write_transaction.h"
 #include "kudu/tserver/scanners.h"
-#include "kudu/tserver/tablet_copy_service.h"
+#include "kudu/tserver/tablet_replica_lookup.h"
 #include "kudu/tserver/tablet_server.h"
 #include "kudu/tserver/ts_tablet_manager.h"
 #include "kudu/tserver/tserver.pb.h"
+#include "kudu/tserver/tserver_admin.pb.h"
+#include "kudu/tserver/tserver_service.pb.h"
+#include "kudu/util/auto_release_pool.h"
 #include "kudu/util/crc.h"
 #include "kudu/util/debug/trace_event.h"
 #include "kudu/util/faststring.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/logging.h"
-#include "kudu/util/mem_tracker.h"
+#include "kudu/util/memory/arena.h"
+#include "kudu/util/metrics.h"
 #include "kudu/util/monotime.h"
 #include "kudu/util/pb_util.h"
 #include "kudu/util/process_memory.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
 #include "kudu/util/status_callback.h"
 #include "kudu/util/trace.h"
+#include "kudu/util/trace_metrics.h"
 
 DEFINE_int32(scanner_default_batch_size_bytes, 1024 * 1024,
              "The default size for batches of scan results");
@@ -112,13 +143,13 @@ using kudu::consensus::GetNodeInstanceRequestPB;
 using kudu::consensus::GetNodeInstanceResponsePB;
 using kudu::consensus::LeaderStepDownRequestPB;
 using kudu::consensus::LeaderStepDownResponsePB;
-using kudu::consensus::UnsafeChangeConfigRequestPB;
-using kudu::consensus::UnsafeChangeConfigResponsePB;
 using kudu::consensus::RaftConsensus;
 using kudu::consensus::RunLeaderElectionRequestPB;
 using kudu::consensus::RunLeaderElectionResponsePB;
 using kudu::consensus::StartTabletCopyRequestPB;
 using kudu::consensus::StartTabletCopyResponsePB;
+using kudu::consensus::UnsafeChangeConfigRequestPB;
+using kudu::consensus::UnsafeChangeConfigResponsePB;
 using kudu::consensus::VoteRequestPB;
 using kudu::consensus::VoteResponsePB;
 using kudu::pb_util::SecureDebugString;
@@ -129,7 +160,6 @@ using kudu::server::ServerBase;
 using kudu::tablet::AlterSchemaTransactionState;
 using kudu::tablet::Tablet;
 using kudu::tablet::TabletReplica;
-using kudu::tablet::TabletStatusPB;
 using kudu::tablet::TransactionCompletionCallback;
 using kudu::tablet::WriteTransactionState;
 using std::shared_ptr;
@@ -140,13 +170,12 @@ using std::vector;
 using strings::Substitute;
 
 namespace kudu {
+
 namespace cfile {
 extern const char* CFILE_CACHE_MISS_BYTES_METRIC_NAME;
 extern const char* CFILE_CACHE_HIT_BYTES_METRIC_NAME;
 }
-}
 
-namespace kudu {
 namespace tserver {
 
 namespace {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tserver/tablet_service.h
----------------------------------------------------------------------
diff --git a/src/kudu/tserver/tablet_service.h b/src/kudu/tserver/tablet_service.h
index 3368c1b..5f9cc02 100644
--- a/src/kudu/tserver/tablet_service.h
+++ b/src/kudu/tserver/tablet_service.h
@@ -17,16 +17,24 @@
 #ifndef KUDU_TSERVER_TABLET_SERVICE_H
 #define KUDU_TSERVER_TABLET_SERVICE_H
 
-#include <memory>
+#include <cstdint>
 #include <string>
-#include <vector>
 
 #include "kudu/consensus/consensus.service.h"
-#include "kudu/gutil/ref_counted.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/port.h"
+#include "kudu/tserver/tserver.pb.h"
 #include "kudu/tserver/tserver_admin.service.h"
 #include "kudu/tserver/tserver_service.service.h"
 
+namespace google {
+namespace protobuf {
+class Message;
+}
+}
+
 namespace kudu {
+
 class RowwiseIterator;
 class Schema;
 class Status;
@@ -36,14 +44,47 @@ namespace server {
 class ServerBase;
 } // namespace server
 
+namespace consensus {
+class ChangeConfigRequestPB;
+class ChangeConfigResponsePB;
+class ConsensusRequestPB;
+class ConsensusResponsePB;
+class GetConsensusStateRequestPB;
+class GetConsensusStateResponsePB;
+class GetLastOpIdRequestPB;
+class GetLastOpIdResponsePB;
+class GetNodeInstanceRequestPB;
+class GetNodeInstanceResponsePB;
+class LeaderStepDownRequestPB;
+class LeaderStepDownResponsePB;
+class RunLeaderElectionRequestPB;
+class RunLeaderElectionResponsePB;
+class StartTabletCopyRequestPB;
+class StartTabletCopyResponsePB;
+class UnsafeChangeConfigRequestPB;
+class UnsafeChangeConfigResponsePB;
+class VoteRequestPB;
+class VoteResponsePB;
+} // namespace consensus
+
+namespace rpc {
+class RpcContext;
+} // namespace rpc
+
 namespace tablet {
-class Tablet;
 class TabletReplica;
-class TransactionState;
 } // namespace tablet
 
 namespace tserver {
 
+class AlterSchemaRequestPB;
+class AlterSchemaResponsePB;
+class ChecksumRequestPB;
+class ChecksumResponsePB;
+class CreateTabletRequestPB;
+class CreateTabletResponsePB;
+class DeleteTabletRequestPB;
+class DeleteTabletResponsePB;
 class ScanResultCollector;
 class TabletReplicaLookupIf;
 class TabletServer;


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

Posted by al...@apache.org.
http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/strings/escaping.cc
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/strings/escaping.cc b/src/kudu/gutil/strings/escaping.cc
index 4128b92..b21f981 100644
--- a/src/kudu/gutil/strings/escaping.cc
+++ b/src/kudu/gutil/strings/escaping.cc
@@ -3,20 +3,21 @@
 
 #include "kudu/gutil/strings/escaping.h"
 
-#include <assert.h>
-#include <stdio.h>
-#include <string.h>
+#include <cassert>
+#include <cstdio>
+#include <cstring>
 
 #include <limits>
+#include <ostream>
 #include <vector>
 
+#include "kudu/gutil/charmap.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/integral_types.h"
 #include "kudu/gutil/port.h"
-#include "kudu/gutil/gscoped_ptr.h"
-#include "kudu/gutil/strings/join.h"
-#include "kudu/gutil/utf/utf.h"  // for runetochar
-#include "kudu/gutil/charmap.h"
 #include "kudu/gutil/stl_util.h"
+#include "kudu/gutil/strings/strcat.h"
+#include "kudu/gutil/utf/utf.h"  // for runetochar
 
 using std::numeric_limits;
 using std::string;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/strings/escaping.h
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/strings/escaping.h b/src/kudu/gutil/strings/escaping.h
index 0d1f574..c39bf8a 100644
--- a/src/kudu/gutil/strings/escaping.h
+++ b/src/kudu/gutil/strings/escaping.h
@@ -27,7 +27,6 @@
 
 #include <glog/logging.h>
 
-#include "kudu/gutil/logging-inl.h"
 #include "kudu/gutil/strings/ascii_ctype.h"
 #include "kudu/gutil/strings/charset.h"
 #include "kudu/gutil/strings/stringpiece.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/strings/human_readable.cc
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/strings/human_readable.cc b/src/kudu/gutil/strings/human_readable.cc
index 2af0a35..4d9a8b7 100644
--- a/src/kudu/gutil/strings/human_readable.cc
+++ b/src/kudu/gutil/strings/human_readable.cc
@@ -2,12 +2,12 @@
 
 #include "kudu/gutil/strings/human_readable.h"
 
-#include <stddef.h>
-#include <stdlib.h>
-#include <string.h>
+#include <cinttypes>
+#include <cstdlib>
+#include <cstring>
 
 #include <glog/logging.h>
-#include "kudu/gutil/logging-inl.h"
+
 #include "kudu/gutil/stringprintf.h"
 #include "kudu/gutil/strings/strip.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/strings/human_readable.h
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/strings/human_readable.h b/src/kudu/gutil/strings/human_readable.h
index 53207f6..a19b9e7 100644
--- a/src/kudu/gutil/strings/human_readable.h
+++ b/src/kudu/gutil/strings/human_readable.h
@@ -9,7 +9,6 @@
 #include <functional>
 #include <string>
 
-#include "kudu/gutil/basictypes.h"
 #include "kudu/gutil/integral_types.h"
 #include "kudu/gutil/macros.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/strings/join.cc
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/strings/join.cc b/src/kudu/gutil/strings/join.cc
index 645e612..3d5515b 100644
--- a/src/kudu/gutil/strings/join.cc
+++ b/src/kudu/gutil/strings/join.cc
@@ -2,8 +2,11 @@
 
 #include "kudu/gutil/strings/join.h"
 
+#include <cstring>  // IWYU pragma: keep
+#include <ostream>
+
 #include <glog/logging.h>
-#include "kudu/gutil/logging-inl.h"
+
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/strings/ascii_ctype.h"
 #include "kudu/gutil/strings/escaping.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/strings/join.h
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/strings/join.h b/src/kudu/gutil/strings/join.h
index cb5e11d..104ab90 100644
--- a/src/kudu/gutil/strings/join.h
+++ b/src/kudu/gutil/strings/join.h
@@ -7,23 +7,15 @@
 #ifndef STRINGS_JOIN_H_
 #define STRINGS_JOIN_H_
 
-#include <stdio.h>
-#include <string.h>
-
 #include <iterator>
 #include <map>
 #include <string>
 #include <utility>
 #include <vector>
 
-#include "kudu/gutil/integral_types.h"
-#include "kudu/gutil/macros.h"
-#include "kudu/gutil/template_util.h"
-#include "kudu/gutil/strings/numbers.h"
 #include "kudu/gutil/strings/strcat.h"    // For backward compatibility.
 #include "kudu/gutil/strings/stringpiece.h"
-#include "kudu/gutil/hash/hash.h"
-
+//
 // ----------------------------------------------------------------------
 // JoinUsing()
 //    This concatenates a vector of strings "components" into a new char[]

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/strings/memutil.h
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/strings/memutil.h b/src/kudu/gutil/strings/memutil.h
index 9335735..1e9841a 100644
--- a/src/kudu/gutil/strings/memutil.h
+++ b/src/kudu/gutil/strings/memutil.h
@@ -53,10 +53,8 @@
 #ifndef STRINGS_MEMUTIL_H_
 #define STRINGS_MEMUTIL_H_
 
-#include <stddef.h>
-#include <string.h>      // to get the POSIX mem*() routines
-
-#include "kudu/gutil/port.h"   // disable some warnings on Windows
+#include <cstddef>
+#include <cstring>      // to get the POSIX mem*() routines
 
 inline char *memcat(char *dest, size_t destlen,
                     const char *src, size_t srclen) {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/strings/numbers.cc
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/strings/numbers.cc b/src/kudu/gutil/strings/numbers.cc
index 7bdb57c..33b13ee 100644
--- a/src/kudu/gutil/strings/numbers.cc
+++ b/src/kudu/gutil/strings/numbers.cc
@@ -6,28 +6,32 @@
 
 #include "kudu/gutil/strings/numbers.h"
 
-#include <assert.h>
-#include <ctype.h>
-#include <errno.h>
-#include <float.h>          // for DBL_DIG and FLT_DIG
-#include <math.h>           // for HUGE_VAL
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
+#include <sys/types.h>
+
+#include <cassert>
+#include <cctype>
+#include <cerrno>
+#include <cfloat>          // for DBL_DIG and FLT_DIG
+#include <cmath>           // for HUGE_VAL
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
 #include <limits>
-using std::numeric_limits;
+#include <ostream>
 #include <string>
-using std::string;
+
+#include <glog/logging.h>
 
 #include "kudu/gutil/int128.h"
 #include "kudu/gutil/integral_types.h"
-#include <glog/logging.h>
-#include "kudu/gutil/logging-inl.h"
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/stringprintf.h"
 #include "kudu/gutil/strtoint.h"
 #include "kudu/gutil/strings/ascii_ctype.h"
 
+using std::numeric_limits;
+using std::string;
+
 // Reads a <double> in *text, which may not be whitespace-initiated.
 // *len is the length, or -1 if text is '\0'-terminated, which is more
 // efficient.  Sets *text to the end of the double, and val to the

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/strings/numbers.h
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/strings/numbers.h b/src/kudu/gutil/strings/numbers.h
index b0ec224..0152def 100644
--- a/src/kudu/gutil/strings/numbers.h
+++ b/src/kudu/gutil/strings/numbers.h
@@ -6,10 +6,9 @@
 #ifndef STRINGS_NUMBERS_H_
 #define STRINGS_NUMBERS_H_
 
-#include <stddef.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
+#include <cstddef>
+#include <cinttypes>
+#include <ctime>
 #include <functional>
 #include <limits>
 #include <string>
@@ -20,7 +19,6 @@
 #include "kudu/gutil/port.h"
 #include "kudu/gutil/stringprintf.h"
 
-
 // START DOXYGEN NumbersFunctions grouping
 /* @defgroup NumbersFunctions
  * @{ */

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/strings/serialize.cc
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/strings/serialize.cc b/src/kudu/gutil/strings/serialize.cc
index d0d8130..676474d 100644
--- a/src/kudu/gutil/strings/serialize.cc
+++ b/src/kudu/gutil/strings/serialize.cc
@@ -2,9 +2,8 @@
 
 #include "kudu/gutil/strings/serialize.h"
 
-#include <stddef.h>
-#include <stdlib.h>
-
+#include <cinttypes>
+#include <cstdlib>
 #include <string>
 #include <utility>
 #include <unordered_map>
@@ -13,10 +12,9 @@
 #include "kudu/gutil/casts.h"
 #include "kudu/gutil/integral_types.h"
 #include "kudu/gutil/stringprintf.h"
-#include "kudu/gutil/strtoint.h"
 #include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/split.h"
-#include "kudu/gutil/hash/hash.h"
+#include "kudu/gutil/strtoint.h"
 
 using std::unordered_map;
 using std::make_pair;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/strings/serialize.h
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/strings/serialize.h b/src/kudu/gutil/strings/serialize.h
index a759059..f835964 100644
--- a/src/kudu/gutil/strings/serialize.h
+++ b/src/kudu/gutil/strings/serialize.h
@@ -7,8 +7,7 @@
 #ifndef STRINGS_SERIALIZE_H_
 #define STRINGS_SERIALIZE_H_
 
-#include <string.h>
-
+#include <cstring>
 #include <string>
 #include <unordered_map>
 #include <utility>
@@ -18,7 +17,6 @@
 
 #include "kudu/gutil/int128.h"
 #include "kudu/gutil/integral_types.h"
-#include "kudu/gutil/logging-inl.h"
 #include "kudu/gutil/type_traits.h"
 #include "kudu/gutil/strings/stringpiece.h"
 #include "kudu/gutil/endian.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/strings/split.cc
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/strings/split.cc b/src/kudu/gutil/strings/split.cc
index 4920a6c..261211d 100644
--- a/src/kudu/gutil/strings/split.cc
+++ b/src/kudu/gutil/strings/split.cc
@@ -4,20 +4,22 @@
 
 #include "kudu/gutil/strings/split.h"
 
-#include <assert.h>
-#include <stdlib.h>
-#include <string.h>
+#include <cassert>
+#include <cstdlib>
+#include <cstring>
 #include <iterator>
 #include <limits>
+#include <memory>
+#include <ostream>
 
-#include "kudu/gutil/integral_types.h"
 #include <glog/logging.h>
-#include "kudu/gutil/logging-inl.h"
+
+#include "kudu/gutil/integral_types.h"
 #include "kudu/gutil/macros.h"
-#include "kudu/gutil/strtoint.h"
 #include "kudu/gutil/strings/ascii_ctype.h"
 #include "kudu/gutil/strings/util.h"
-#include "kudu/gutil/hash/hash.h"
+#include "kudu/gutil/strtoint.h"
+#include "kudu/util/make_shared.h"
 
 using std::unordered_map;
 using std::unordered_set;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/strings/split.h
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/strings/split.h b/src/kudu/gutil/strings/split.h
index df36ede..d133efb 100644
--- a/src/kudu/gutil/strings/split.h
+++ b/src/kudu/gutil/strings/split.h
@@ -23,7 +23,6 @@
 #include <stddef.h>
 
 #include <algorithm>
-#include <iterator>
 #include <map>
 #include <set>
 #include <string>
@@ -35,9 +34,8 @@
 #include <glog/logging.h>
 
 #include "kudu/gutil/integral_types.h"
-#include "kudu/gutil/logging-inl.h"
 #include "kudu/gutil/strings/charset.h"
-#include "kudu/gutil/strings/split_internal.h"
+#include "kudu/gutil/strings/split_internal.h" // IWYU pragma: export
 #include "kudu/gutil/strings/stringpiece.h"
 #include "kudu/gutil/strings/strip.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/strings/strcat.cc
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/strings/strcat.cc b/src/kudu/gutil/strings/strcat.cc
index 9abb662..f4b5232 100644
--- a/src/kudu/gutil/strings/strcat.cc
+++ b/src/kudu/gutil/strings/strcat.cc
@@ -2,16 +2,12 @@
 
 #include "kudu/gutil/strings/strcat.h"
 
-#include <stdarg.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <string.h>
+#include <cstdarg>
+#include <cstdint>
+#include <cstring>
 
 #include <glog/logging.h>
-#include "kudu/gutil/logging-inl.h"
-#include "kudu/gutil/gscoped_ptr.h"
-#include "kudu/gutil/strings/ascii_ctype.h"
-#include "kudu/gutil/strings/escaping.h"
+
 #include "kudu/gutil/stl_util.h"
 
 using std::string;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/strings/strcat.h
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/strings/strcat.h b/src/kudu/gutil/strings/strcat.h
index 7216c66..f51ba37 100644
--- a/src/kudu/gutil/strings/strcat.h
+++ b/src/kudu/gutil/strings/strcat.h
@@ -7,6 +7,9 @@
 #ifndef STRINGS_STRCAT_H_
 #define STRINGS_STRCAT_H_
 
+#include <cstring>
+
+#include <algorithm>
 #include <string>
 
 #include "kudu/gutil/integral_types.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/strings/string_util-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/strings/string_util-test.cc b/src/kudu/gutil/strings/string_util-test.cc
index 8849ca2..6f9f6bd 100644
--- a/src/kudu/gutil/strings/string_util-test.cc
+++ b/src/kudu/gutil/strings/string_util-test.cc
@@ -16,6 +16,7 @@
 // under the License.
 //
 // Some portions Copyright 2013 The Chromium Authors. All rights reserved.
+
 #include "kudu/gutil/strings/util.h"
 
 #include <gtest/gtest.h>

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/strings/stringpiece.cc
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/strings/stringpiece.cc b/src/kudu/gutil/strings/stringpiece.cc
index d6f23ee..3532c15 100644
--- a/src/kudu/gutil/strings/stringpiece.cc
+++ b/src/kudu/gutil/strings/stringpiece.cc
@@ -4,14 +4,18 @@
 
 #include "kudu/gutil/strings/stringpiece.h"
 
-#include <algorithm>
 #include <climits>
-#include <glog/logging.h>
-#include <string.h>
+#include <cstring>
+
+#include <algorithm>
+#include <deque>
+#include <memory>
+#include <ostream>
 #include <string>
 
-#include "kudu/gutil/hash/hash.h"
-#include "kudu/gutil/logging-inl.h"
+#include <glog/logging.h>
+
+#include "kudu/gutil/hash/legacy_hash.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/memutil.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/strings/stringpiece.h
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/strings/stringpiece.h b/src/kudu/gutil/strings/stringpiece.h
index 5812dd6..23d1483 100644
--- a/src/kudu/gutil/strings/stringpiece.h
+++ b/src/kudu/gutil/strings/stringpiece.h
@@ -113,19 +113,19 @@
 #define STRINGS_STRINGPIECE_H_
 
 
-#include <assert.h>
+#include <cassert>
+#include <cstddef>
+#include <cstring>
+
 #include <functional>
 #include <iosfwd>
+#include <iterator>
 #include <limits>
-#include <stddef.h>
-#include <string.h>
 #include <string>
 
-#include "kudu/gutil/integral_types.h"
-#include "kudu/gutil/port.h"
-#include "kudu/gutil/type_traits.h"
+#include "kudu/gutil/hash/string_hash.h"
 #include "kudu/gutil/strings/fastmem.h"
-#include "kudu/gutil/hash/hash.h"
+#include "kudu/gutil/type_traits.h"
 
 class StringPiece {
  private:
@@ -335,7 +335,6 @@ inline bool operator<=(StringPiece x, StringPiece y) {
 inline bool operator>=(StringPiece x, StringPiece y) {
   return !(x < y);
 }
-class StringPiece;
 template <class X> struct GoodFastHash;
 
 // ------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/strings/strip.cc
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/strings/strip.cc b/src/kudu/gutil/strings/strip.cc
index 1a6a547..c4ea720 100644
--- a/src/kudu/gutil/strings/strip.cc
+++ b/src/kudu/gutil/strings/strip.cc
@@ -6,20 +6,24 @@
 
 #include "kudu/gutil/strings/strip.h"
 
-#include <assert.h>
-#include <string.h>
+#include <cassert>
+#include <cstring>
+
 #include <algorithm>
+#include <iterator>
+#include <string>
+#include <vector>
+
+#include "kudu/gutil/strings/ascii_ctype.h"
+#include "kudu/gutil/strings/stringpiece.h"
+
 using std::copy;
 using std::max;
 using std::min;
 using std::reverse;
 using std::sort;
-using std::swap;
-#include <string>
 using std::string;
-
-#include "kudu/gutil/strings/ascii_ctype.h"
-#include "kudu/gutil/strings/stringpiece.h"
+using std::swap;
 
 string StripPrefixString(StringPiece str, const StringPiece& prefix) {
   if (str.starts_with(prefix))

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/strings/strip.h
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/strings/strip.h b/src/kudu/gutil/strings/strip.h
index f834397..02ff16a 100644
--- a/src/kudu/gutil/strings/strip.h
+++ b/src/kudu/gutil/strings/strip.h
@@ -7,7 +7,8 @@
 #ifndef STRINGS_STRIP_H_
 #define STRINGS_STRIP_H_
 
-#include <stddef.h>
+#include <cstddef>
+
 #include <string>
 
 #include "kudu/gutil/strings/ascii_ctype.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/strings/substitute.cc
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/strings/substitute.cc b/src/kudu/gutil/strings/substitute.cc
index c0d5e81..5020395 100644
--- a/src/kudu/gutil/strings/substitute.cc
+++ b/src/kudu/gutil/strings/substitute.cc
@@ -2,12 +2,15 @@
 
 #include "kudu/gutil/strings/substitute.h"
 
+#include <cstdint>
+#include <ostream>
+
 #include <glog/logging.h>
-#include "kudu/gutil/logging-inl.h"
+
 #include "kudu/gutil/macros.h"
+#include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/ascii_ctype.h"
 #include "kudu/gutil/strings/escaping.h"
-#include "kudu/gutil/stl_util.h"
 
 using std::string;
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/strings/substitute.h
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/strings/substitute.h b/src/kudu/gutil/strings/substitute.h
index 3040156..9def694 100644
--- a/src/kudu/gutil/strings/substitute.h
+++ b/src/kudu/gutil/strings/substitute.h
@@ -1,13 +1,11 @@
 // Copyright 2008 Google Inc.  All rights reserved.
 
-#include <string.h>
+#include <cstring>
 #include <string>
 
-#include "kudu/gutil/basictypes.h"
 #include "kudu/gutil/strings/numbers.h"
 #include "kudu/gutil/strings/stringpiece.h"
 
-
 #ifndef STRINGS_SUBSTITUTE_H_
 #define STRINGS_SUBSTITUTE_H_
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/strings/util.cc
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/strings/util.cc b/src/kudu/gutil/strings/util.cc
index c16d9b2..5fcf405 100644
--- a/src/kudu/gutil/strings/util.cc
+++ b/src/kudu/gutil/strings/util.cc
@@ -7,31 +7,35 @@
 
 #include "kudu/gutil/strings/util.h"
 
-#include <assert.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <string.h>
-#include <time.h>           // for FastTimeToBuffer()
+#include <cassert>
+#include <cstdarg>
+#include <cstdio>
+#include <cstring>
+#include <ctime>           // for FastTimeToBuffer()
+
 #include <algorithm>
-using std::copy;
-using std::max;
-using std::min;
-using std::reverse;
-using std::sort;
-using std::swap;
+#include <deque>
+#include <ostream>
 #include <string>
-using std::string;
 #include <vector>
-using std::vector;
 
 #include <glog/logging.h>
-#include "kudu/gutil/logging-inl.h"
+
 #include "kudu/gutil/strings/ascii_ctype.h"
 #include "kudu/gutil/strings/numbers.h"
 #include "kudu/gutil/strings/stringpiece.h"
 #include "kudu/gutil/stl_util.h"  // for string_as_array, STLAppendToString
 #include "kudu/gutil/utf/utf.h"
 
+using std::copy;
+using std::max;
+using std::min;
+using std::reverse;
+using std::sort;
+using std::string;
+using std::swap;
+using std::vector;
+
 #ifdef OS_WINDOWS
 #ifdef min  // windows.h defines this to something silly
 #undef min

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/strings/util.h
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/strings/util.h b/src/kudu/gutil/strings/util.h
index fcd6b6d..a465773 100644
--- a/src/kudu/gutil/strings/util.h
+++ b/src/kudu/gutil/strings/util.h
@@ -26,13 +26,9 @@
 #ifndef STRINGS_UTIL_H_
 #define STRINGS_UTIL_H_
 
-#include <stddef.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#ifndef _MSC_VER
-#include <strings.h>  // for strcasecmp, but msvc does not have this header
-#endif
+#include <cstddef>
+#include <cstdio>
+#include <cstring>
 
 #include <functional>
 #include <string>

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/strtoint.cc
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/strtoint.cc b/src/kudu/gutil/strtoint.cc
index bb96a57..9cc6e1a 100644
--- a/src/kudu/gutil/strtoint.cc
+++ b/src/kudu/gutil/strtoint.cc
@@ -4,8 +4,9 @@
 // See strtoint.h for details on how to use this component.
 //
 
-#include <errno.h>
-#include "kudu/gutil/port.h"
+#include <cerrno>
+#include <climits>
+
 #include "kudu/gutil/strtoint.h"
 
 // Replacement strto[u]l functions that have identical overflow and underflow

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/strtoint.h
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/strtoint.h b/src/kudu/gutil/strtoint.h
index 96d4856..ae0d794 100644
--- a/src/kudu/gutil/strtoint.h
+++ b/src/kudu/gutil/strtoint.h
@@ -30,11 +30,11 @@
 #ifndef BASE_STRTOINT_H_
 #define BASE_STRTOINT_H_
 
-#include <stdlib.h> // For strtol* functions.
+#include <cstdlib> // For strtol* functions.
 #include <string>
+
 #include "kudu/gutil/integral_types.h"
 #include "kudu/gutil/macros.h"
-#include "kudu/gutil/port.h"
 
 // Adapter functions for handling overflow and errno.
 int32 strto32_adapter(const char *nptr, char **endptr, int base);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/sysinfo.cc
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/sysinfo.cc b/src/kudu/gutil/sysinfo.cc
index 6006b6d..407a8c8 100644
--- a/src/kudu/gutil/sysinfo.cc
+++ b/src/kudu/gutil/sysinfo.cc
@@ -32,15 +32,10 @@
 # define PLATFORM_WINDOWS 1
 #endif
 
-#include <ctype.h>    // for isspace()
-#include <stdlib.h>   // for getenv()
-#include <stdio.h>    // for snprintf(), sscanf()
-#include <string.h>   // for memmove(), memchr(), etc.
+
 #include <fcntl.h>    // for open()
-#include <errno.h>    // for errno
-#ifdef HAVE_UNISTD_H
 #include <unistd.h>   // for read()
-#endif
+
 #if defined __MACH__          // Mac OS X, almost certainly
 #include <sys/types.h>
 #include <sys/sysctl.h>       // how we figure out numcpu's on OS X
@@ -53,11 +48,21 @@
 #include <shlwapi.h>          // for SHGetValueA()
 #include <tlhelp32.h>         // for Module32First()
 #endif
+
+#include <cerrno>    // for errno
+#include <cstdio>    // for snprintf(), sscanf()
+#include <cstdlib>   // for getenv()
+#include <cstring>   // for memmove(), memchr(), etc.
+#include <ctime>
+#include <ostream>
+
+#include <glog/logging.h>
+
 #include "kudu/gutil/dynamic_annotations.h"   // for RunningOnValgrind
+#include "kudu/gutil/integral_types.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/sysinfo.h"
 #include "kudu/gutil/walltime.h"
-#include <glog/logging.h>
 
 // This isn't in the 'base' namespace in tcmallc. But, tcmalloc
 // exports these functions, so we need to namespace them to avoid

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/sysinfo.h
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/sysinfo.h b/src/kudu/gutil/sysinfo.h
index ec3abe7..56f913c 100644
--- a/src/kudu/gutil/sysinfo.h
+++ b/src/kudu/gutil/sysinfo.h
@@ -31,6 +31,8 @@
 #ifndef _SYSINFO_H_
 #define _SYSINFO_H_
 
+#include <cstdint>
+
 namespace base {
 
 // Return the number of online CPUs. This is computed and cached the first time this or

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/threading/thread_collision_warner.cc
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/threading/thread_collision_warner.cc b/src/kudu/gutil/threading/thread_collision_warner.cc
index 89270d8..6e0429f 100644
--- a/src/kudu/gutil/threading/thread_collision_warner.cc
+++ b/src/kudu/gutil/threading/thread_collision_warner.cc
@@ -4,9 +4,18 @@
 
 #include "kudu/gutil/threading/thread_collision_warner.h"
 
-#include <glog/logging.h>
+#ifdef __linux__
+#include <syscall.h>
+#else
+#include <sys/syscall.h>
+#endif
 
-#include "kudu/gutil/linux_syscall_support.h"
+#include <unistd.h>
+
+#include <cstdint>
+#include <ostream>
+
+#include <glog/logging.h>
 
 namespace base {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/threading/thread_collision_warner.h
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/threading/thread_collision_warner.h b/src/kudu/gutil/threading/thread_collision_warner.h
index d59ea67..75c771b 100644
--- a/src/kudu/gutil/threading/thread_collision_warner.h
+++ b/src/kudu/gutil/threading/thread_collision_warner.h
@@ -5,11 +5,9 @@
 #ifndef BASE_THREADING_THREAD_COLLISION_WARNER_H_
 #define BASE_THREADING_THREAD_COLLISION_WARNER_H_
 
-#include <memory>
-
 #include "kudu/gutil/atomicops.h"
-#include "kudu/gutil/port.h"
 #include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
  
 #ifndef BASE_EXPORT
 #define BASE_EXPORT

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/walltime.h
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/walltime.h b/src/kudu/gutil/walltime.h
index 9f5a4d7..40af48e 100644
--- a/src/kudu/gutil/walltime.h
+++ b/src/kudu/gutil/walltime.h
@@ -21,7 +21,7 @@
 
 #include <sys/time.h>
 
-#include <glog/logging.h>
+#include <ctime>
 #include <string>
 
 #if defined(__APPLE__)
@@ -29,8 +29,10 @@
 #include <mach/mach.h>
 #include <mach/mach_time.h>
 
+#include <glog/logging.h>
+
 #include "kudu/gutil/once.h"
-#endif  // defined(__APPLE__)
+#endif  // #if defined(__APPLE__)
 
 #include "kudu/gutil/integral_types.h"
 
@@ -174,5 +176,6 @@ class CycleClock {
   CycleClock();
 };
 
-#include "kudu/gutil/cycleclock-inl.h"  // inline method bodies
+// inline method bodies
+#include "kudu/gutil/cycleclock-inl.h"  // IWYU pragma: export
 #endif  // GUTIL_WALLTIME_H_

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/all_types-itest.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/all_types-itest.cc b/src/kudu/integration-tests/all_types-itest.cc
index 2b973cf..8b5d534 100644
--- a/src/kudu/integration-tests/all_types-itest.cc
+++ b/src/kudu/integration-tests/all_types-itest.cc
@@ -15,16 +15,40 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <algorithm>
+#include <functional>
+#include <cstdint>
+#include <ostream>
+#include <string>
 #include <vector>
 
 #include <gflags/gflags.h>
+#include <glog/logging.h>
 #include <gtest/gtest.h>
 
-#include "kudu/gutil/strings/substitute.h"
+#include "kudu/client/client.h"
 #include "kudu/client/row_result.h"
-#include "kudu/common/wire_protocol-test-util.h"
+#include "kudu/client/scan_batch.h"
+#include "kudu/client/schema-internal.h"
+#include "kudu/client/schema.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/client/write_op.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/partial_row.h"
+#include "kudu/common/types.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/mathlimits.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/stringprintf.h"
+#include "kudu/gutil/strings/substitute.h"
+#include "kudu/gutil/type_traits.h"
 #include "kudu/integration-tests/cluster_verifier.h"
-#include "kudu/integration-tests/ts_itest-base.h"
+#include "kudu/integration-tests/external_mini_cluster.h"
+#include "kudu/util/bitmap.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
+#include "kudu/util/test_util.h"
 
 DEFINE_int32(num_rows_per_tablet, 100, "The number of rows to be inserted into each tablet");
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/alter_table-randomized-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/alter_table-randomized-test.cc b/src/kudu/integration-tests/alter_table-randomized-test.cc
index 4852141..86f7767 100644
--- a/src/kudu/integration-tests/alter_table-randomized-test.cc
+++ b/src/kudu/integration-tests/alter_table-randomized-test.cc
@@ -16,21 +16,37 @@
 // under the License.
 
 #include <algorithm>
+#include <cstdint>
+#include <cstdlib>
+#include <iterator>
 #include <map>
 #include <memory>
+#include <ostream>
 #include <string>
+#include <type_traits>
+#include <utility>
 #include <vector>
 
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
 #include "kudu/client/client-test-util.h"
+#include "kudu/client/client.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/client/schema.h"
+#include "kudu/client/value.h"
+#include "kudu/client/write_op.h"
+#include "kudu/common/partial_row.h"
 #include "kudu/gutil/map-util.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/integration-tests/cluster_verifier.h"
 #include "kudu/integration-tests/external_mini_cluster.h"
-#include "kudu/util/net/sockaddr.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/random.h"
-#include "kudu/util/random_util.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/alter_table-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/alter_table-test.cc b/src/kudu/integration-tests/alter_table-test.cc
index 3b79744..95d71b7 100644
--- a/src/kudu/integration-tests/alter_table-test.cc
+++ b/src/kudu/integration-tests/alter_table-test.cc
@@ -15,39 +15,59 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <algorithm>
 #include <atomic>
+#include <cstddef>
+#include <cstdint>
 #include <map>
 #include <memory>
+#include <ostream>
 #include <string>
 #include <utility>
+#include <vector>
 
 #include <boost/bind.hpp>
-#include <boost/optional.hpp>
-#include <gflags/gflags.h>
+#include <boost/optional/optional.hpp>
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
 #include <gtest/gtest.h>
 
 #include "kudu/client/client-test-util.h"
 #include "kudu/client/client.h"
 #include "kudu/client/row_result.h"
-#include "kudu/client/scan_batch.h"
 #include "kudu/client/schema.h"
-#include "kudu/clock/hybrid_clock.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/client/value.h"
+#include "kudu/client/write_op.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/partial_row.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/wire_protocol.h"
+#include "kudu/consensus/raft_consensus.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/integration-tests/internal_mini_cluster.h"
-#include "kudu/master/master-test-util.h"
+#include "kudu/master/catalog_manager.h"
 #include "kudu/master/master.h"
 #include "kudu/master/master.pb.h"
 #include "kudu/master/mini_master.h"
+#include "kudu/tablet/rowset.h"
+#include "kudu/tablet/tablet.h"
+#include "kudu/tablet/tablet_metadata.h"
 #include "kudu/tablet/tablet_replica.h"
 #include "kudu/tserver/mini_tablet_server.h"
 #include "kudu/tserver/tablet_server.h"
 #include "kudu/tserver/ts_tablet_manager.h"
-#include "kudu/util/faststring.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/random.h"
-#include "kudu/util/stopwatch.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
+#include "kudu/util/thread.h"
 
 DECLARE_bool(enable_maintenance_manager);
 DECLARE_int32(heartbeat_interval_ms);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/authn_token_expire-itest.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/authn_token_expire-itest.cc b/src/kudu/integration-tests/authn_token_expire-itest.cc
index ced3b1f..f48df14 100644
--- a/src/kudu/integration-tests/authn_token_expire-itest.cc
+++ b/src/kudu/integration-tests/authn_token_expire-itest.cc
@@ -15,8 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <cstdint>
 #include <memory>
+#include <ostream>
 #include <string>
+#include <vector>
 
 #include <gflags/gflags_declare.h>
 #include <glog/logging.h>
@@ -24,26 +27,18 @@
 
 #include "kudu/client/client-test-util.h"
 #include "kudu/client/client.h"
+#include "kudu/client/schema.h"
 #include "kudu/client/shared_ptr.h"
-#include "kudu/clock/hybrid_clock.h"
+#include "kudu/client/write_op.h"
 #include "kudu/common/partial_row.h"
-#include "kudu/gutil/stringprintf.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/integration-tests/cluster_itest_util.h"
 #include "kudu/integration-tests/cluster_verifier.h"
 #include "kudu/integration-tests/external_mini_cluster.h"
 #include "kudu/integration-tests/test_workload.h"
-#include "kudu/master/catalog_manager.h"
-#include "kudu/master/master.h"
-#include "kudu/master/master.pb.h"
-#include "kudu/master/mini_master.h"
 #include "kudu/tablet/key_value_test_schema.h"
-#include "kudu/tablet/tablet.h"
-#include "kudu/tablet/tablet_replica.h"
-#include "kudu/tserver/mini_tablet_server.h"
-#include "kudu/tserver/tablet_server.h"
-#include "kudu/tserver/ts_tablet_manager.h"
 #include "kudu/util/monotime.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 DECLARE_bool(rpc_reopen_outbound_connections);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/catalog_manager_tsk-itest.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/catalog_manager_tsk-itest.cc b/src/kudu/integration-tests/catalog_manager_tsk-itest.cc
index 2b201c2..acdeba9 100644
--- a/src/kudu/integration-tests/catalog_manager_tsk-itest.cc
+++ b/src/kudu/integration-tests/catalog_manager_tsk-itest.cc
@@ -16,16 +16,26 @@
 // under the License.
 
 #include <algorithm>
+#include <cstdint>
 #include <iterator>
 #include <memory>
 #include <string>
 #include <vector>
 
-#include "kudu/client/client.h"
+#include <gtest/gtest.h>
+
 #include "kudu/client/client-test-util.h"
+#include "kudu/client/client.h"
+#include "kudu/client/schema.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/client/write_op.h"
+#include "kudu/common/partial_row.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/integration-tests/external_mini_cluster.h"
 #include "kudu/tablet/key_value_test_schema.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 using kudu::client::KuduClient;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/client-negotiation-failover-itest.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/client-negotiation-failover-itest.cc b/src/kudu/integration-tests/client-negotiation-failover-itest.cc
index 18c285a..69327d2 100644
--- a/src/kudu/integration-tests/client-negotiation-failover-itest.cc
+++ b/src/kudu/integration-tests/client-negotiation-failover-itest.cc
@@ -15,7 +15,9 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <cstdlib>
 #include <memory>
+#include <ostream>
 #include <string>
 #include <thread>
 #include <vector>
@@ -25,17 +27,20 @@
 #include <gflags/gflags_declare.h>
 #include <gtest/gtest.h>
 
-#include "kudu/client/client.h"
 #include "kudu/client/client-test-util.h"
-#include "kudu/common/wire_protocol.h"
-#include "kudu/gutil/map-util.h"
+#include "kudu/client/client.h"
+#include "kudu/client/schema.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/client/write_op.h"
+#include "kudu/common/partial_row.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/integration-tests/cluster_itest_util.h"
-#include "kudu/integration-tests/external_mini_cluster-itest-base.h"
-#include "kudu/integration-tests/test_workload.h"
-#include "kudu/integration-tests/ts_itest-base.h"
+#include "kudu/integration-tests/external_mini_cluster.h"
 #include "kudu/tablet/key_value_test_schema.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/scoped_cleanup.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
+#include "kudu/util/test_util.h"
 
 using kudu::client::KuduClient;
 using kudu::client::KuduClientBuilder;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/client-stress-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/client-stress-test.cc b/src/kudu/integration-tests/client-stress-test.cc
index 7cc9ba4..569171e 100644
--- a/src/kudu/integration-tests/client-stress-test.cc
+++ b/src/kudu/integration-tests/client-stress-test.cc
@@ -15,21 +15,40 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <unistd.h>
 
-#include <memory>
+#include <cstdint>
+#include <ostream>
+#include <set>
+#include <string>
+#include <utility>
 #include <vector>
 
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
 #include "kudu/client/client-internal.h"
 #include "kudu/client/client-test-util.h"
-#include "kudu/gutil/mathlimits.h"
+#include "kudu/client/client.h"
+#include "kudu/client/scan_predicate.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/client/value.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/integration-tests/external_mini_cluster.h"
 #include "kudu/integration-tests/test_workload.h"
+#include "kudu/util/countdown_latch.h"
 #include "kudu/util/metrics.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/pstack_watcher.h"
 #include "kudu/util/random.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
+#include "kudu/util/thread.h"
 
 METRIC_DECLARE_entity(tablet);
 METRIC_DECLARE_counter(leader_memory_pressure_rejections);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/client_failover-itest.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/client_failover-itest.cc b/src/kudu/integration-tests/client_failover-itest.cc
index bd6d0b8..b2f89d8 100644
--- a/src/kudu/integration-tests/client_failover-itest.cc
+++ b/src/kudu/integration-tests/client_failover-itest.cc
@@ -15,24 +15,39 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <cstdint>
 #include <memory>
+#include <ostream>
 #include <set>
 #include <string>
 #include <unordered_map>
 #include <vector>
 
+#include <boost/optional/optional.hpp>
 #include <glog/logging.h>
 #include <gtest/gtest.h>
 
-#include "kudu/client/client.h"
 #include "kudu/client/client-test-util.h"
+#include "kudu/client/client.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/client/write_op.h"
+#include "kudu/common/partial_row.h"
 #include "kudu/common/wire_protocol.h"
+#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/consensus/metadata.pb.h"
 #include "kudu/gutil/map-util.h"
 #include "kudu/integration-tests/cluster_itest_util.h"
 #include "kudu/integration-tests/external_mini_cluster-itest-base.h"
+#include "kudu/integration-tests/external_mini_cluster.h"
+#include "kudu/integration-tests/external_mini_cluster_fs_inspector.h"
 #include "kudu/integration-tests/test_workload.h"
+#include "kudu/tablet/metadata.pb.h"
+#include "kudu/tablet/tablet.pb.h"
 #include "kudu/tserver/tserver.pb.h"
-#include "kudu/util/scoped_cleanup.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/net/net_util.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 
 using kudu::client::CountTableRows;
 using kudu::client::KuduInsert;
@@ -44,8 +59,8 @@ using kudu::itest::TServerDetails;
 using kudu::tablet::TABLET_DATA_TOMBSTONED;
 using std::set;
 using std::string;
-using std::vector;
 using std::unordered_map;
+using std::vector;
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/cluster_itest_util.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/cluster_itest_util.cc b/src/kudu/integration-tests/cluster_itest_util.cc
index ca88aa7..051c8b5 100644
--- a/src/kudu/integration-tests/cluster_itest_util.cc
+++ b/src/kudu/integration-tests/cluster_itest_util.cc
@@ -17,29 +17,40 @@
 #include "kudu/integration-tests/cluster_itest_util.h"
 
 #include <algorithm>
-#include <boost/optional.hpp>
+#include <ostream>
+
+#include <boost/optional/optional.hpp>
+#include <glog/logging.h>
 #include <glog/stl_logging.h>
-#include <limits>
+#include <gtest/gtest.h>
 
-#include "kudu/client/client.h"
+#include "kudu/client/schema.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/wire_protocol-test-util.h"
 #include "kudu/common/wire_protocol.h"
 #include "kudu/common/wire_protocol.pb.h"
-#include "kudu/common/wire_protocol-test-util.h"
 #include "kudu/consensus/consensus.proxy.h"
+#include "kudu/consensus/opid.pb.h"
 #include "kudu/consensus/opid_util.h"
 #include "kudu/consensus/quorum_util.h"
+#include "kudu/gutil/basictypes.h"
 #include "kudu/gutil/map-util.h"
-#include "kudu/gutil/strings/join.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/master/master.pb.h"
 #include "kudu/master/master.proxy.h"
 #include "kudu/rpc/rpc_controller.h"
-#include "kudu/server/server_base.proxy.h"
+#include "kudu/tablet/tablet.pb.h"
 #include "kudu/tserver/tablet_server_test_util.h"
+#include "kudu/tserver/tserver_admin.pb.h"
 #include "kudu/tserver/tserver_admin.proxy.h"
-#include "kudu/tserver/tserver_service.pb.h"
 #include "kudu/tserver/tserver_service.proxy.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/net/net_util.h"
+#include "kudu/util/net/sockaddr.h"
 #include "kudu/util/pb_util.h"
+#include "kudu/util/status.h"
 #include "kudu/util/test_macros.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/cluster_itest_util.h
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/cluster_itest_util.h b/src/kudu/integration-tests/cluster_itest_util.h
index 4cda935..e8e49b5 100644
--- a/src/kudu/integration-tests/cluster_itest_util.h
+++ b/src/kudu/integration-tests/cluster_itest_util.h
@@ -27,49 +27,52 @@
 #ifndef KUDU_INTEGRATION_TESTS_CLUSTER_ITEST_UTIL_H_
 #define KUDU_INTEGRATION_TESTS_CLUSTER_ITEST_UTIL_H_
 
-#include <boost/optional/optional_fwd.hpp>
+#include <cstdint>
 #include <memory>
 #include <string>
 #include <unordered_map>
 #include <vector>
 
-#include "kudu/gutil/gscoped_ptr.h"
-#include "kudu/gutil/ref_counted.h"
+#include "kudu/common/wire_protocol.pb.h"
 #include "kudu/consensus/consensus.pb.h"
 #include "kudu/consensus/consensus.proxy.h"
-#include "kudu/master/master.pb.h"
-#include "kudu/master/master.proxy.h"
-#include "kudu/server/server_base.pb.h"
+#include "kudu/consensus/metadata.pb.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/server/server_base.proxy.h"
+#include "kudu/tablet/metadata.pb.h"
+#include "kudu/tserver/tserver.pb.h"
 #include "kudu/tserver/tserver_admin.proxy.h"
 #include "kudu/tserver/tserver_service.proxy.h"
 
+namespace boost {
+template <class T>
+class optional;
+}
+
 namespace kudu {
 class HostPort;
 class MonoDelta;
-class Schema;
-class Sockaddr;
 class Status;
 
 namespace client {
-class KuduClient;
 class KuduSchema;
-class KuduTable;
 }
 
 namespace consensus {
 class OpId;
 }
 
+namespace master {
+class GetTableLocationsResponsePB;
+class ListTabletServersResponsePB_Entry;
+class MasterServiceProxy;
+class TabletLocationsPB;
+} // namespace master
+
 namespace rpc {
 class Messenger;
 }
 
-namespace tserver {
-class ListTabletsResponsePB_StatusAndSchemaPB;
-class TabletServerErrorPB;
-}
-
 namespace itest {
 
 struct TServerDetails {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/cluster_verifier.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/cluster_verifier.cc b/src/kudu/integration-tests/cluster_verifier.cc
index a5f0312..97f3941 100644
--- a/src/kudu/integration-tests/cluster_verifier.cc
+++ b/src/kudu/integration-tests/cluster_verifier.cc
@@ -16,12 +16,15 @@
 // under the License.
 
 #include <memory>
+#include <ostream>
 #include <string>
 #include <vector>
 
+#include <glog/logging.h>
 #include <gtest/gtest.h>
 
 #include "kudu/client/client.h"
+#include "kudu/client/shared_ptr.h"
 #include "kudu/client/row_result.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/integration-tests/cluster_verifier.h"
@@ -29,6 +32,8 @@
 #include "kudu/integration-tests/log_verifier.h"
 #include "kudu/tools/ksck_remote.h"
 #include "kudu/util/monotime.h"
+#include "kudu/util/net/net_util.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/integration-tests/cluster_verifier.h
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/cluster_verifier.h b/src/kudu/integration-tests/cluster_verifier.h
index 11d2656..e2e601f 100644
--- a/src/kudu/integration-tests/cluster_verifier.h
+++ b/src/kudu/integration-tests/cluster_verifier.h
@@ -21,13 +21,12 @@
 
 #include "kudu/gutil/macros.h"
 #include "kudu/tools/ksck.h"
-#include "kudu/util/monotime.h"
 #include "kudu/util/status.h"
+#include "kudu/util/monotime.h"
 
 namespace kudu {
 
 class ExternalMiniCluster;
-class MonoDelta;
 
 // Utility class for integration tests to verify that the cluster is in a good state.
 class ClusterVerifier {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/consistency-itest.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/consistency-itest.cc b/src/kudu/integration-tests/consistency-itest.cc
index 7d8dec1..3c37258 100644
--- a/src/kudu/integration-tests/consistency-itest.cc
+++ b/src/kudu/integration-tests/consistency-itest.cc
@@ -15,6 +15,8 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <cstddef>
+#include <cstdint>
 #include <memory>
 #include <string>
 #include <vector>
@@ -25,29 +27,38 @@
 
 #include "kudu/client/client-test-util.h"
 #include "kudu/client/client.h"
+#include "kudu/client/scan_batch.h"
 #include "kudu/client/scan_configuration.h"
+#include "kudu/client/scan_predicate.h"
 #include "kudu/client/scanner-internal.h"
+#include "kudu/client/schema.h"
 #include "kudu/client/shared_ptr.h"
+#include "kudu/client/value.h"
+#include "kudu/client/write_op.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/partial_row.h"
+#include "kudu/gutil/casts.h"
+#include "kudu/gutil/ref_counted.h"
+#include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/stringprintf.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/integration-tests/cluster_itest_util.h"
 #include "kudu/integration-tests/internal_mini_cluster-itest-base.h"
 #include "kudu/integration-tests/internal_mini_cluster.h"
 #include "kudu/master/catalog_manager.h"
 #include "kudu/master/master.h"
 #include "kudu/master/master.pb.h"
 #include "kudu/master/mini_master.h"
-#include "kudu/tablet/tablet.h"
 #include "kudu/tablet/tablet_replica.h"
 #include "kudu/tserver/mini_tablet_server.h"
 #include "kudu/tserver/tablet_server.h"
 #include "kudu/tserver/ts_tablet_manager.h"
 #include "kudu/util/monotime.h"
-#include "kudu/util/scoped_cleanup.h"
-#include "kudu/util/test_util.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 
 DECLARE_int32(heartbeat_interval_ms);
 DECLARE_int32(max_clock_sync_error_usec);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/create-table-itest.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/create-table-itest.cc b/src/kudu/integration-tests/create-table-itest.cc
index 5854476..3c0d097 100644
--- a/src/kudu/integration-tests/create-table-itest.cc
+++ b/src/kudu/integration-tests/create-table-itest.cc
@@ -15,22 +15,46 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <cmath>
+#include <cstdint>
+#include <cstdlib>
 #include <map>
 #include <memory>
+#include <ostream>
 #include <set>
 #include <string>
+#include <type_traits>
+#include <utility>
+#include <vector>
 
-#include <gflags/gflags.h>
+#include <glog/logging.h>
 #include <glog/stl_logging.h>
 #include <gtest/gtest.h>
 
 #include "kudu/client/client-test-util.h"
+#include "kudu/client/client.h"
+#include "kudu/client/schema.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/common/partial_row.h"
+#include "kudu/common/schema.h"
 #include "kudu/common/wire_protocol-test-util.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/mathlimits.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/integration-tests/external_mini_cluster-itest-base.h"
+#include "kudu/integration-tests/external_mini_cluster.h"
+#include "kudu/integration-tests/external_mini_cluster_fs_inspector.h"
+#include "kudu/integration-tests/mini_cluster.h"
 #include "kudu/master/master.pb.h"
 #include "kudu/master/master.proxy.h"
 #include "kudu/rpc/rpc_controller.h"
+#include "kudu/util/atomic.h"
 #include "kudu/util/metrics.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
+#include "kudu/util/test_util.h"
+#include "kudu/util/thread.h"
 
 using std::multimap;
 using std::set;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/create-table-stress-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/create-table-stress-test.cc b/src/kudu/integration-tests/create-table-stress-test.cc
index 67acf0e..149d8f6 100644
--- a/src/kudu/integration-tests/create-table-stress-test.cc
+++ b/src/kudu/integration-tests/create-table-stress-test.cc
@@ -15,26 +15,46 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <glog/stl_logging.h>
-#include <gtest/gtest.h>
+#include <cstdlib>
+#include <iostream>
 #include <memory>
+#include <string>
 #include <thread>
+#include <unordered_map>
+#include <utility>
+#include <vector>
+
+#include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
+#include <glog/stl_logging.h>
+#include <gtest/gtest.h>
 
 #include "kudu/client/client.h"
-#include "kudu/common/schema.h"
-#include "kudu/common/wire_protocol.h"
-#include "kudu/fs/fs_manager.h"
+#include "kudu/client/schema.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/partial_row.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
+#include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/integration-tests/cluster_itest_util.h"
 #include "kudu/integration-tests/internal_mini_cluster.h"
+#include "kudu/master/catalog_manager.h"
 #include "kudu/master/master-test-util.h"
+#include "kudu/master/master.h"
+#include "kudu/master/master.pb.h"
 #include "kudu/master/master.proxy.h"
 #include "kudu/master/mini_master.h"
 #include "kudu/rpc/messenger.h"
-#include "kudu/tserver/mini_tablet_server.h"
-#include "kudu/tserver/tablet_server.h"
+#include "kudu/util/atomic.h"
+#include "kudu/util/cow_object.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/pb_util.h"
+#include "kudu/util/status.h"
 #include "kudu/util/stopwatch.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 using kudu::client::KuduClient;
@@ -48,7 +68,6 @@ using kudu::itest::TabletServerMap;
 using kudu::master::MasterServiceProxy;
 using kudu::rpc::Messenger;
 using kudu::rpc::MessengerBuilder;
-using kudu::rpc::RpcController;
 
 DECLARE_int32(heartbeat_interval_ms);
 DECLARE_bool(log_preallocate_segments);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/delete_table-itest.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/delete_table-itest.cc b/src/kudu/integration-tests/delete_table-itest.cc
index 1d2da0d..5fdcc9d 100644
--- a/src/kudu/integration-tests/delete_table-itest.cc
+++ b/src/kudu/integration-tests/delete_table-itest.cc
@@ -15,34 +15,64 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <sys/types.h>
+
+#include <cstddef>
+#include <cstdint>
+#include <limits>
 #include <memory>
+#include <ostream>
 #include <string>
-#include <tuple>
+#include <tuple>  // IWYU pragma: keep
+#include <unordered_map>
+#include <utility>
+#include <vector>
 
-#include <boost/optional.hpp>
-#include <glog/stl_logging.h>
+#include <boost/optional/optional.hpp>
+#include <glog/logging.h>
 #include <gtest/gtest.h>
 #include <rapidjson/document.h>
 
 #include "kudu/client/client-test-util.h"
+#include "kudu/client/client.h"
+#include "kudu/client/scan_batch.h"
+#include "kudu/client/schema.h"
 #include "kudu/client/shared_ptr.h"
+#include "kudu/common/partial_row.h"
+#include "kudu/common/schema.h"
 #include "kudu/common/wire_protocol-test-util.h"
-#include "kudu/gutil/stl_util.h"
+#include "kudu/common/wire_protocol.h"
+#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/consensus/metadata.pb.h"
+#include "kudu/gutil/basictypes.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/strings/split.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/integration-tests/cluster_itest_util.h"
 #include "kudu/integration-tests/cluster_verifier.h"
 #include "kudu/integration-tests/external_mini_cluster-itest-base.h"
+#include "kudu/integration-tests/external_mini_cluster.h"
+#include "kudu/integration-tests/external_mini_cluster_fs_inspector.h"
 #include "kudu/integration-tests/test_workload.h"
+#include "kudu/master/master.pb.h"
+#include "kudu/master/master.proxy.h"
 #include "kudu/rpc/rpc_controller.h"
+#include "kudu/tablet/metadata.pb.h"
 #include "kudu/tablet/tablet.pb.h"
 #include "kudu/tserver/tserver.pb.h"
 #include "kudu/tserver/tserver_admin.pb.h"
+#include "kudu/tserver/tserver_admin.proxy.h"
 #include "kudu/util/curl_util.h"
+#include "kudu/util/faststring.h"
 #include "kudu/util/metrics.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/net/net_util.h"
 #include "kudu/util/pb_util.h"
 #include "kudu/util/pstack_watcher.h"
+#include "kudu/util/status.h"
 #include "kudu/util/subprocess.h"
+#include "kudu/util/test_macros.h"
+#include "kudu/util/test_util.h"
 
 using kudu::client::KuduClient;
 using kudu::client::KuduScanner;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/delete_tablet-itest.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/delete_tablet-itest.cc b/src/kudu/integration-tests/delete_tablet-itest.cc
index c0ea6c3..447a4cf 100644
--- a/src/kudu/integration-tests/delete_tablet-itest.cc
+++ b/src/kudu/integration-tests/delete_tablet-itest.cc
@@ -15,18 +15,31 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <cstdint>
+#include <memory>
+#include <unordered_map>
 #include <vector>
 
-#include "kudu/gutil/stl_util.h"
-#include "kudu/gutil/strings/substitute.h"
+#include <boost/optional/optional.hpp>
+#include <gflags/gflags_declare.h>
+#include <gtest/gtest.h>
+
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/integration-tests/cluster_itest_util.h"
 #include "kudu/integration-tests/internal_mini_cluster-itest-base.h"
+#include "kudu/integration-tests/internal_mini_cluster.h"
 #include "kudu/integration-tests/test_workload.h"
 #include "kudu/master/mini_master.h"
+#include "kudu/tablet/metadata.pb.h"
+#include "kudu/tablet/tablet.h"
 #include "kudu/tablet/tablet_replica.h"
 #include "kudu/tserver/mini_tablet_server.h"
 #include "kudu/tserver/tablet_server.h"
 #include "kudu/tserver/ts_tablet_manager.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
+#include "kudu/util/test_util.h"
 
 DECLARE_int64(fs_wal_dir_reserved_bytes);
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/dense_node-itest.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/dense_node-itest.cc b/src/kudu/integration-tests/dense_node-itest.cc
index 591bcb1..997e732 100644
--- a/src/kudu/integration-tests/dense_node-itest.cc
+++ b/src/kudu/integration-tests/dense_node-itest.cc
@@ -17,7 +17,10 @@
 
 #include <unistd.h>
 
+#include <algorithm>
+#include <cstdint>
 #include <memory>
+#include <ostream>
 #include <string>
 #include <utility>
 #include <vector>
@@ -29,10 +32,12 @@
 #include "kudu/client/schema.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/integration-tests/external_mini_cluster-itest-base.h"
+#include "kudu/integration-tests/external_mini_cluster.h"
 #include "kudu/integration-tests/test_workload.h"
 #include "kudu/util/env.h"
 #include "kudu/util/metrics.h"
 #include "kudu/util/monotime.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/integration-tests/disk_reservation-itest.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/disk_reservation-itest.cc b/src/kudu/integration-tests/disk_reservation-itest.cc
index 23a8ea2..b80604e 100644
--- a/src/kudu/integration-tests/disk_reservation-itest.cc
+++ b/src/kudu/integration-tests/disk_reservation-itest.cc
@@ -15,13 +15,23 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <cstdint>
+#include <memory>
+#include <ostream>
+#include <string>
 #include <vector>
 
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/integration-tests/cluster_verifier.h"
 #include "kudu/integration-tests/external_mini_cluster-itest-base.h"
+#include "kudu/integration-tests/external_mini_cluster.h"
 #include "kudu/integration-tests/test_workload.h"
 #include "kudu/util/metrics.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 
 using std::string;
 using std::vector;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/exactly_once_writes-itest.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/exactly_once_writes-itest.cc b/src/kudu/integration-tests/exactly_once_writes-itest.cc
index b45eb83..3f120a0 100644
--- a/src/kudu/integration-tests/exactly_once_writes-itest.cc
+++ b/src/kudu/integration-tests/exactly_once_writes-itest.cc
@@ -15,11 +15,44 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <algorithm>
+#include <cstdint>
+#include <memory>
+#include <ostream>
+#include <string>
+#include <vector>
+
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
+#include "kudu/common/schema.h"
+#include "kudu/common/wire_protocol-test-util.h"
+#include "kudu/common/wire_protocol.h"
+#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/map-util.h"
+#include "kudu/gutil/ref_counted.h"
+#include "kudu/gutil/strings/substitute.h"
+#include "kudu/integration-tests/cluster_itest_util.h"
+#include "kudu/integration-tests/external_mini_cluster.h"
 #include "kudu/integration-tests/log_verifier.h"
 #include "kudu/integration-tests/ts_itest-base.h"
+#include "kudu/rpc/messenger.h"
+#include "kudu/rpc/rpc_controller.h"
+#include "kudu/rpc/rpc_header.pb.h"
+#include "kudu/tserver/tserver.pb.h"
+#include "kudu/tserver/tserver_service.proxy.h"
 #include "kudu/util/barrier.h"
 #include "kudu/util/logging.h"
+#include "kudu/util/make_shared.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/net/sockaddr.h"
 #include "kudu/util/pb_util.h"
+#include "kudu/util/random.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
+#include "kudu/util/test_util.h"
+#include "kudu/util/thread.h"
 
 using std::string;
 using std::vector;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/external_mini_cluster-itest-base.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/external_mini_cluster-itest-base.cc b/src/kudu/integration-tests/external_mini_cluster-itest-base.cc
index 6b5eefb..71d7573 100644
--- a/src/kudu/integration-tests/external_mini_cluster-itest-base.cc
+++ b/src/kudu/integration-tests/external_mini_cluster-itest-base.cc
@@ -17,18 +17,21 @@
 
 #include "kudu/integration-tests/external_mini_cluster-itest-base.h"
 
+#include <algorithm>
+#include <ostream>
 #include <string>
 #include <vector>
 
 #include <glog/logging.h>
 #include <gtest/gtest.h>
 
-#include "kudu/client/client.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/integration-tests/cluster_itest_util.h"
 #include "kudu/integration-tests/external_mini_cluster.h"
 #include "kudu/integration-tests/external_mini_cluster_fs_inspector.h"
+#include "kudu/util/status.h"
 #include "kudu/util/pstack_watcher.h"
+#include "kudu/util/test_macros.h"
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/external_mini_cluster-itest-base.h
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/external_mini_cluster-itest-base.h b/src/kudu/integration-tests/external_mini_cluster-itest-base.h
index 9032c1a..20123f7 100644
--- a/src/kudu/integration-tests/external_mini_cluster-itest-base.h
+++ b/src/kudu/integration-tests/external_mini_cluster-itest-base.h
@@ -22,9 +22,16 @@
 #include <unordered_map>
 #include <vector>
 
+#include <gtest/gtest.h>
+
+#include "kudu/client/client.h"
 #include "kudu/client/shared_ptr.h"
+#include "kudu/gutil/stl_util.h"
+#include "kudu/integration-tests/cluster_itest_util.h"
 #include "kudu/integration-tests/external_mini_cluster.h"
 #include "kudu/integration-tests/external_mini_cluster_fs_inspector.h"
+#include "kudu/util/pstack_watcher.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/external_mini_cluster-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/external_mini_cluster-test.cc b/src/kudu/integration-tests/external_mini_cluster-test.cc
index cd0c44a..b5c11a6 100644
--- a/src/kudu/integration-tests/external_mini_cluster-test.cc
+++ b/src/kudu/integration-tests/external_mini_cluster-test.cc
@@ -15,21 +15,24 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <sys/types.h>
-#include <unistd.h>
-
+#include <algorithm>
+#include <cstdint>
 #include <string>
+#include <vector>
 
 #include <glog/logging.h>
 #include <gtest/gtest.h>
 
-#include "kudu/integration-tests/external_mini_cluster.h"
-#include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/gutil/strings/util.h"
+#include "kudu/integration-tests/external_mini_cluster.h"
+#include "kudu/integration-tests/mini_cluster.h"
 #include "kudu/security/test/mini_kdc.h"
 #include "kudu/util/metrics.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/net/net_util.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 METRIC_DECLARE_entity(server);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/external_mini_cluster.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/external_mini_cluster.cc b/src/kudu/integration-tests/external_mini_cluster.cc
index 1693f4b..6091ffd 100644
--- a/src/kudu/integration-tests/external_mini_cluster.cc
+++ b/src/kudu/integration-tests/external_mini_cluster.cc
@@ -18,32 +18,45 @@
 #include "kudu/integration-tests/external_mini_cluster.h"
 
 #include <algorithm>
+#include <csignal>
+#include <cstdint>
+#include <cstdlib>
 #include <functional>
 #include <memory>
 #include <string>
 #include <unordered_set>
 
+#include <gflags/gflags.h>
 #include <gtest/gtest.h>
 #include <rapidjson/document.h>
 
 #include "kudu/client/client.h"
 #include "kudu/client/master_rpc.h"
 #include "kudu/common/wire_protocol.h"
-#include "kudu/gutil/mathlimits.h"
+#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/gutil/basictypes.h"
 #include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/gutil/strings/util.h"
+#include "kudu/master/master.pb.h"
 #include "kudu/master/master.proxy.h"
 #include "kudu/rpc/messenger.h"
+#include "kudu/rpc/rpc_controller.h"
+#include "kudu/security/test/mini_kdc.h"
 #include "kudu/server/server_base.pb.h"
 #include "kudu/server/server_base.proxy.h"
+#include "kudu/tablet/metadata.pb.h"
+#include "kudu/tablet/tablet.pb.h"
+#include "kudu/tserver/tserver.pb.h"
 #include "kudu/tserver/tserver_service.proxy.h"
 #include "kudu/util/async_util.h"
 #include "kudu/util/curl_util.h"
 #include "kudu/util/env.h"
 #include "kudu/util/env_util.h"
+#include "kudu/util/faststring.h"
 #include "kudu/util/fault_injection.h"
 #include "kudu/util/jsonreader.h"
+#include "kudu/util/make_shared.h"
 #include "kudu/util/metrics.h"
 #include "kudu/util/monotime.h"
 #include "kudu/util/net/sockaddr.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/external_mini_cluster.h
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/external_mini_cluster.h b/src/kudu/integration-tests/external_mini_cluster.h
index c8cbdbf..0a23d9f 100644
--- a/src/kudu/integration-tests/external_mini_cluster.h
+++ b/src/kudu/integration-tests/external_mini_cluster.h
@@ -19,16 +19,21 @@
 
 #include <sys/types.h>
 
+#include <cstdint>
 #include <functional>
 #include <map>
 #include <memory>
+#include <ostream>
 #include <string>
 #include <vector>
 
-#include <boost/optional.hpp>
+#include <boost/optional/optional.hpp>
+#include <glog/logging.h>
+#include <gtest/gtest_prod.h>
 
-#include "kudu/client/client.h"
+#include "kudu/client/shared_ptr.h"
 #include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/integration-tests/mini_cluster.h"
 #include "kudu/security/test/mini_kdc.h"
@@ -41,14 +46,25 @@ namespace kudu {
 class ExternalDaemon;
 class ExternalMaster;
 class ExternalTabletServer;
-class HostPort;
-class MetricPrototype;
 class MetricEntityPrototype;
+class MetricPrototype;
 class NodeInstancePB;
-class ScopedSubprocess;
 class Sockaddr;
 class Subprocess;
 
+namespace client {
+class KuduClient;
+class KuduClientBuilder;
+} // namespace client
+
+namespace master {
+class MasterServiceProxy;
+} // namespace master
+
+namespace rpc {
+class Messenger;
+} // namespace rpc
+
 namespace server {
 class ServerStatusPB;
 } // namespace server

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/external_mini_cluster_fs_inspector.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/external_mini_cluster_fs_inspector.cc b/src/kudu/integration-tests/external_mini_cluster_fs_inspector.cc
index c93182b..618a3dd 100644
--- a/src/kudu/integration-tests/external_mini_cluster_fs_inspector.cc
+++ b/src/kudu/integration-tests/external_mini_cluster_fs_inspector.cc
@@ -18,12 +18,14 @@
 #include "kudu/integration-tests/external_mini_cluster_fs_inspector.h"
 
 #include <sys/stat.h>
-#include <sys/types.h>
-#include <unistd.h>
 
 #include <algorithm>
+#include <ctime>
+#include <ostream>
 #include <set>
 
+#include <glog/logging.h>
+
 #include "kudu/consensus/metadata.pb.h"
 #include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/substitute.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/external_mini_cluster_fs_inspector.h
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/external_mini_cluster_fs_inspector.h b/src/kudu/integration-tests/external_mini_cluster_fs_inspector.h
index 25af8f0..3341bfe 100644
--- a/src/kudu/integration-tests/external_mini_cluster_fs_inspector.h
+++ b/src/kudu/integration-tests/external_mini_cluster_fs_inspector.h
@@ -18,6 +18,7 @@
 #ifndef KUDU_INTEGRATION_TESTS_CLUSTER_EXTERNAL_MINI_CLUSTER_FS_INSPECTOR_H_
 #define KUDU_INTEGRATION_TESTS_CLUSTER_EXTERNAL_MINI_CLUSTER_FS_INSPECTOR_H_
 
+#include <cstdint>
 #include <string>
 #include <vector>
 
@@ -35,10 +36,6 @@ namespace consensus {
 class ConsensusMetadataPB;
 }
 
-namespace tablet {
-class TabletSuperBlockPB;
-}
-
 namespace itest {
 
 // Utility class that digs around in a tablet server's data directory and

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/flex_partitioning-itest.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/flex_partitioning-itest.cc b/src/kudu/integration-tests/flex_partitioning-itest.cc
index a2888f4..c965bb1 100644
--- a/src/kudu/integration-tests/flex_partitioning-itest.cc
+++ b/src/kudu/integration-tests/flex_partitioning-itest.cc
@@ -19,23 +19,42 @@
 // of PK subsets, etc).
 
 #include <algorithm>
-#include <glog/stl_logging.h>
-#include <map>
+#include <cstdint>
 #include <memory>
+#include <ostream>
+#include <string>
+#include <unordered_map>
+#include <utility>
 #include <vector>
 
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
 #include "kudu/client/client-test-util.h"
+#include "kudu/client/client.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/client/scan_predicate.h"
+#include "kudu/client/schema.h"
+#include "kudu/client/value.h"
+#include "kudu/client/write_op.h"
+#include "kudu/common/common.pb.h"
 #include "kudu/common/partial_row.h"
-#include "kudu/integration-tests/external_mini_cluster.h"
-#include "kudu/integration-tests/cluster_itest_util.h"
-#include "kudu/gutil/map-util.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/integration-tests/cluster_itest_util.h"
+#include "kudu/integration-tests/external_mini_cluster.h"
+#include "kudu/master/master.pb.h"
+#include "kudu/master/master.proxy.h"
+#include "kudu/rpc/rpc_controller.h"
 #include "kudu/tools/data_gen_util.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/random.h"
 #include "kudu/util/random_util.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
-#include "kudu/gutil/strings/escaping.h"
 
 using kudu::client::KuduClient;
 using kudu::client::KuduClientBuilder;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/full_stack-insert-scan-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/full_stack-insert-scan-test.cc b/src/kudu/integration-tests/full_stack-insert-scan-test.cc
index fdb935f..abad0c8 100644
--- a/src/kudu/integration-tests/full_stack-insert-scan-test.cc
+++ b/src/kudu/integration-tests/full_stack-insert-scan-test.cc
@@ -15,24 +15,31 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <signal.h>
+#include <unistd.h>
 
-#include <cmath>
-#include <cstdlib>
+#include <csignal>
+#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/client/callbacks.h"
-#include "kudu/client/client.h"
 #include "kudu/client/client-test-util.h"
+#include "kudu/client/client.h"
 #include "kudu/client/row_result.h"
+#include "kudu/client/schema.h"
+#include "kudu/client/shared_ptr.h"
 #include "kudu/client/write_op.h"
 #include "kudu/codegen/compilation_manager.h"
+#include "kudu/common/partial_row.h"
 #include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/strings/split.h"
 #include "kudu/gutil/strings/strcat.h"
@@ -40,23 +47,23 @@
 #include "kudu/integration-tests/internal_mini_cluster.h"
 #include "kudu/master/mini_master.h"
 #include "kudu/tablet/tablet.h"
-#include "kudu/tablet/tablet_metrics.h"
 #include "kudu/tablet/tablet_replica.h"
 #include "kudu/tserver/mini_tablet_server.h"
 #include "kudu/tserver/tablet_server.h"
 #include "kudu/tserver/ts_tablet_manager.h"
 #include "kudu/util/async_util.h"
 #include "kudu/util/countdown_latch.h"
-#include "kudu/util/errno.h"
+#include "kudu/util/make_shared.h"
 #include "kudu/util/maintenance_manager.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/random.h"
+#include "kudu/util/random_util.h"
+#include "kudu/util/status.h"
 #include "kudu/util/stopwatch.h"
+#include "kudu/util/subprocess.h"
 #include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
-#include "kudu/util/status.h"
-#include "kudu/util/subprocess.h"
 #include "kudu/util/thread.h"
-#include "kudu/util/random.h"
-#include "kudu/util/random_util.h"
 
 DEFINE_bool(skip_scans, false, "Whether to skip the scan part of the test.");
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/fuzz-itest.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/fuzz-itest.cc b/src/kudu/integration-tests/fuzz-itest.cc
index 15f37d7..17bee5c 100644
--- a/src/kudu/integration-tests/fuzz-itest.cc
+++ b/src/kudu/integration-tests/fuzz-itest.cc
@@ -15,33 +15,56 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <boost/optional.hpp>
-#include <boost/optional/optional_io.hpp>
-#include <gflags/gflags.h>
-#include <glog/logging.h>
-#include <glog/stl_logging.h>
-#include <gtest/gtest.h>
+#include <cstdint>
+#include <cstdlib>
+#include <functional>
 #include <list>
+#include <map>
+#include <memory>
+#include <ostream>
 #include <string>
+#include <utility>
 #include <vector>
 
+#include <boost/optional/optional.hpp> // IWYU pragma: keep
+#include <boost/optional/optional_io.hpp> // IWYU pragma: keep
+#include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
 #include "kudu/client/client-test-util.h"
 #include "kudu/client/client.h"
-#include "kudu/client/row_result.h"
+#include "kudu/client/scan_batch.h"
+#include "kudu/client/scan_predicate.h"
 #include "kudu/client/schema.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/client/value.h"
+#include "kudu/client/write_op.h"
+#include "kudu/clock/clock.h"
 #include "kudu/clock/logical_clock.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/partial_row.h"
+#include "kudu/common/schema.h"
 #include "kudu/gutil/casts.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/macros.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/integration-tests/internal_mini_cluster.h"
 #include "kudu/master/mini_master.h"
 #include "kudu/tablet/key_value_test_schema.h"
+#include "kudu/tablet/rowset.h"
 #include "kudu/tablet/tablet.h"
 #include "kudu/tablet/tablet_replica.h"
 #include "kudu/tserver/mini_tablet_server.h"
 #include "kudu/tserver/tablet_server.h"
 #include "kudu/tserver/ts_tablet_manager.h"
-#include "kudu/util/stopwatch.h"
+#include "kudu/util/make_shared.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 DEFINE_int32(keyspace_size, 2,  "number of distinct primary keys to test with");

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/internal_mini_cluster-itest-base.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/internal_mini_cluster-itest-base.cc b/src/kudu/integration-tests/internal_mini_cluster-itest-base.cc
index c8775b4..80f171e 100644
--- a/src/kudu/integration-tests/internal_mini_cluster-itest-base.cc
+++ b/src/kudu/integration-tests/internal_mini_cluster-itest-base.cc
@@ -21,6 +21,8 @@
 
 #include "kudu/gutil/stl_util.h"
 #include "kudu/integration-tests/cluster_itest_util.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/internal_mini_cluster-itest-base.h
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/internal_mini_cluster-itest-base.h b/src/kudu/integration-tests/internal_mini_cluster-itest-base.h
index 0a69fb1..7085369 100644
--- a/src/kudu/integration-tests/internal_mini_cluster-itest-base.h
+++ b/src/kudu/integration-tests/internal_mini_cluster-itest-base.h
@@ -25,6 +25,7 @@
 
 #include "kudu/client/client.h"
 #include "kudu/integration-tests/internal_mini_cluster.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/internal_mini_cluster.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/internal_mini_cluster.cc b/src/kudu/integration-tests/internal_mini_cluster.cc
index 6497668..41ae76e 100644
--- a/src/kudu/integration-tests/internal_mini_cluster.cc
+++ b/src/kudu/integration-tests/internal_mini_cluster.cc
@@ -17,8 +17,14 @@
 
 #include "kudu/integration-tests/internal_mini_cluster.h"
 
+#include <algorithm>
+#include <cstdint>
+#include <ostream>
+#include <unordered_set>
+
 #include "kudu/client/client.h"
-#include "kudu/gutil/strings/join.h"
+#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/master/catalog_manager.h"
 #include "kudu/master/master.h"
@@ -29,6 +35,11 @@
 #include "kudu/rpc/messenger.h"
 #include "kudu/tserver/mini_tablet_server.h"
 #include "kudu/tserver/tablet_server.h"
+#include "kudu/tserver/tablet_server_options.h"
+#include "kudu/util/env.h"
+#include "kudu/util/make_shared.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/net/net_util.h"
 #include "kudu/util/path_util.h"
 #include "kudu/util/status.h"
 #include "kudu/util/stopwatch.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/internal_mini_cluster.h
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/internal_mini_cluster.h b/src/kudu/integration-tests/internal_mini_cluster.h
index 29d655c..28d137b 100644
--- a/src/kudu/integration-tests/internal_mini_cluster.h
+++ b/src/kudu/integration-tests/internal_mini_cluster.h
@@ -21,22 +21,29 @@
 #include <string>
 #include <vector>
 
+#include <glog/logging.h>
+
 #include "kudu/client/shared_ptr.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/integration-tests/mini_cluster.h"
-#include "kudu/util/env.h"
 
 namespace kudu {
 
+class Env;
+class HostPort;
 namespace client {
 class KuduClient;
 class KuduClientBuilder;
 }
 
 namespace master {
+class MasterServiceProxy;
 class MiniMaster;
 class TSDescriptor;
-class TabletLocationsPB;
+}
+
+namespace rpc {
+class Messenger;
 }
 
 namespace tserver {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/linked_list-test-util.h
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/linked_list-test-util.h b/src/kudu/integration-tests/linked_list-test-util.h
index a73b65a..ccc00d7 100644
--- a/src/kudu/integration-tests/linked_list-test-util.h
+++ b/src/kudu/integration-tests/linked_list-test-util.h
@@ -25,10 +25,12 @@
 
 #include <glog/logging.h>
 
+#include "kudu/clock/hybrid_clock.h"
 #include "kudu/client/client-test-util.h"
 #include "kudu/client/client.h"
 #include "kudu/client/row_result.h"
-#include "kudu/clock/hybrid_clock.h"
+#include "kudu/client/value.h"
+#include "kudu/client/write_op.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/split.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/linked_list-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/linked_list-test.cc b/src/kudu/integration-tests/linked_list-test.cc
index f9fbe9b..dd8a52f 100644
--- a/src/kudu/integration-tests/linked_list-test.cc
+++ b/src/kudu/integration-tests/linked_list-test.cc
@@ -30,28 +30,34 @@
 // To verify, the table is scanned, and we ensure that every key is linked to
 // either zero or one times, and no link_to refers to a missing key.
 
+#include <cstdint>
+#include <ostream>
+#include <string>
+#include <unordered_map>
+#include <utility>
+#include <vector>
+
+#include <boost/bind.hpp>
 #include <gflags/gflags.h>
 #include <glog/logging.h>
-#include <glog/stl_logging.h>
 #include <gtest/gtest.h>
 
-#include "kudu/client/client.h"
-#include "kudu/client/row_result.h"
-#include "kudu/gutil/map-util.h"
-#include "kudu/gutil/stl_util.h"
-#include "kudu/gutil/strings/substitute.h"
-#include "kudu/gutil/strings/split.h"
-#include "kudu/gutil/walltime.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/port.h"
+#include "kudu/integration-tests/cluster_itest_util.h"
+#include "kudu/integration-tests/external_mini_cluster.h"
 #include "kudu/integration-tests/linked_list-test-util.h"
+#include "kudu/integration-tests/mini_cluster.h"
 #include "kudu/integration-tests/ts_itest-base.h"
-#include "kudu/util/random.h"
-#include "kudu/util/stopwatch.h"
+#include "kudu/tserver/tablet_server-test-base.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
-#include "kudu/util/hdr_histogram.h"
 
 using kudu::client::KuduClient;
-using kudu::client::KuduClientBuilder;
-using kudu::client::KuduSchema;
 using kudu::client::sp::shared_ptr;
 using kudu::itest::TServerDetails;
 using std::string;
@@ -71,6 +77,10 @@ DEFINE_bool(stress_wal_gc, false,
 
 namespace kudu {
 
+namespace client {
+class KuduClient;
+}
+
 class LinkedListTest : public tserver::TabletServerIntegrationTestBase {
  public:
   LinkedListTest() {}

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/log-rolling-itest.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/log-rolling-itest.cc b/src/kudu/integration-tests/log-rolling-itest.cc
index 59c774a..7eb3a45 100644
--- a/src/kudu/integration-tests/log-rolling-itest.cc
+++ b/src/kudu/integration-tests/log-rolling-itest.cc
@@ -18,14 +18,17 @@
 // Tests that log rolling and excess logfile cleanup logic works correctly.
 
 #include <algorithm>
+#include <cstdint>
 #include <string>
 #include <vector>
 
+#include <glog/logging.h>
 #include <gtest/gtest.h>
 
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/integration-tests/external_mini_cluster.h"
 #include "kudu/util/env.h"
+#include "kudu/util/status.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/integration-tests/log_verifier.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/log_verifier.cc b/src/kudu/integration-tests/log_verifier.cc
index 05fefd1..47e9c51 100644
--- a/src/kudu/integration-tests/log_verifier.cc
+++ b/src/kudu/integration-tests/log_verifier.cc
@@ -17,23 +17,32 @@
 
 #include "kudu/integration-tests/log_verifier.h"
 
-#include <boost/optional.hpp>
+#include <cstdint>
 #include <map>
 #include <memory>
+#include <ostream>
 #include <set>
 #include <string>
+#include <utility>
 #include <vector>
 
-#include <glog/stl_logging.h>
+#include <boost/optional.hpp>
+#include <glog/logging.h>
 
 #include "kudu/consensus/consensus.pb.h"
+#include "kudu/consensus/log.pb.h"
 #include "kudu/consensus/log_index.h"
 #include "kudu/consensus/log_reader.h"
 #include "kudu/consensus/log_util.h"
+#include "kudu/consensus/opid.pb.h"
 #include "kudu/fs/fs_manager.h"
+#include "kudu/gutil/map-util.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/integration-tests/external_mini_cluster.h"
 #include "kudu/integration-tests/external_mini_cluster_fs_inspector.h"
+#include "kudu/util/env.h"
+#include "kudu/util/make_shared.h"
 #include "kudu/util/metrics.h"
 #include "kudu/util/status.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/log_verifier.h
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/log_verifier.h b/src/kudu/integration-tests/log_verifier.h
index d029863..4f95235 100644
--- a/src/kudu/integration-tests/log_verifier.h
+++ b/src/kudu/integration-tests/log_verifier.h
@@ -16,6 +16,7 @@
 // under the License.
 #pragma once
 
+#include <cstdint>
 #include <map>
 #include <memory>
 #include <string>

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/master-stress-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/master-stress-test.cc b/src/kudu/integration-tests/master-stress-test.cc
index 5715ba0..788a376 100644
--- a/src/kudu/integration-tests/master-stress-test.cc
+++ b/src/kudu/integration-tests/master-stress-test.cc
@@ -15,27 +15,41 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <glog/logging.h>
-#include <gtest/gtest.h>
+#include <algorithm>
+#include <cstdint>
 #include <memory>
+#include <mutex>
+#include <ostream>
 #include <string>
 #include <thread>
 #include <vector>
 
+#include <glog/logging.h>
+#include <gflags/gflags.h>
+#include <gtest/gtest.h>
+
 #include "kudu/client/client.h"
+#include "kudu/client/schema.h"
+#include "kudu/client/shared_ptr.h"
 #include "kudu/common/wire_protocol.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/gutil/strings/util.h"
 #include "kudu/integration-tests/external_mini_cluster.h"
+#include "kudu/master/master.pb.h"
 #include "kudu/master/master.proxy.h"
 #include "kudu/rpc/messenger.h"
 #include "kudu/rpc/rpc_controller.h"
 #include "kudu/util/atomic.h"
 #include "kudu/util/condition_variable.h"
 #include "kudu/util/countdown_latch.h"
+#include "kudu/util/make_shared.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/mutex.h"
+#include "kudu/util/net/sockaddr.h"
 #include "kudu/util/oid_generator.h"
 #include "kudu/util/random.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 DEFINE_int32(num_create_table_threads, 4,


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

Posted by al...@apache.org.
http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/log-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/log-test.cc b/src/kudu/consensus/log-test.cc
index dd5c69b..4e2dec9 100644
--- a/src/kudu/consensus/log-test.cc
+++ b/src/kudu/consensus/log-test.cc
@@ -16,23 +16,49 @@
 // under the License.
 
 #include <algorithm>
+#include <cerrno>
+#include <cstddef>
+#include <cstdint>
 #include <limits>
 #include <memory>
+#include <ostream>
 #include <string>
+#include <type_traits>
 #include <vector>
 
-#include <boost/bind.hpp>
-#include <boost/function.hpp>
+#include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
 #include <glog/stl_logging.h>
+#include <gtest/gtest.h>
 
-#include "kudu/consensus/consensus-test-util.h"
+#include "kudu/common/wire_protocol-test-util.h"
+#include "kudu/common/wire_protocol.h"
+#include "kudu/consensus/consensus.pb.h"
 #include "kudu/consensus/log-test-base.h"
+#include "kudu/consensus/log.h"
+#include "kudu/consensus/log.pb.h"
+#include "kudu/consensus/log_anchor_registry.h"
 #include "kudu/consensus/log_index.h"
+#include "kudu/consensus/log_reader.h"
+#include "kudu/consensus/log_util.h"
+#include "kudu/consensus/opid.pb.h"
 #include "kudu/consensus/opid_util.h"
+#include "kudu/fs/fs_manager.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/move.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/tablet/mvcc.h"
+#include "kudu/util/async_util.h"
+#include "kudu/util/compression/compression.pb.h"
+#include "kudu/util/env.h"
+#include "kudu/util/metrics.h"
 #include "kudu/util/random.h"
+#include "kudu/util/status.h"
+#include "kudu/util/stopwatch.h"
+#include "kudu/util/test_macros.h"
+#include "kudu/util/test_util.h"
 
 DEFINE_int32(num_batches, 10000,
              "Number of batches to write to/read from the Log in TestWriteManyBatches");

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/log.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/log.cc b/src/kudu/consensus/log.cc
index 6b22733..1df37d9 100644
--- a/src/kudu/consensus/log.cc
+++ b/src/kudu/consensus/log.cc
@@ -18,39 +18,47 @@
 #include "kudu/consensus/log.h"
 
 #include <algorithm>
-#include <limits>
+#include <cerrno>
+#include <cstdint>
 #include <memory>
 #include <mutex>
+#include <ostream>
 
 #include <boost/range/adaptor/reversed.hpp>
+#include <gflags/gflags.h>
 
 #include "kudu/common/wire_protocol.h"
 #include "kudu/consensus/log_index.h"
 #include "kudu/consensus/log_metrics.h"
 #include "kudu/consensus/log_reader.h"
 #include "kudu/consensus/log_util.h"
+#include "kudu/consensus/opid_util.h"
 #include "kudu/fs/fs_manager.h"
-#include "kudu/gutil/map-util.h"
+#include "kudu/gutil/atomicops.h"
+#include "kudu/gutil/bind.h"
+#include "kudu/gutil/bind_helpers.h"
+#include "kudu/gutil/dynamic_annotations.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/ref_counted.h"
-#include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/gutil/walltime.h"
-#include "kudu/util/coding.h"
+#include "kudu/util/async_util.h"
+#include "kudu/util/compression/compression.pb.h"
 #include "kudu/util/compression/compression_codec.h"
-#include "kudu/util/countdown_latch.h"
 #include "kudu/util/debug/trace_event.h"
+#include "kudu/util/env.h"
 #include "kudu/util/env_util.h"
 #include "kudu/util/fault_injection.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/kernel_stack_watchdog.h"
 #include "kudu/util/logging.h"
 #include "kudu/util/metrics.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/path_util.h"
 #include "kudu/util/pb_util.h"
 #include "kudu/util/random.h"
 #include "kudu/util/scoped_cleanup.h"
 #include "kudu/util/stopwatch.h"
-#include "kudu/util/thread.h"
 #include "kudu/util/threadpool.h"
 #include "kudu/util/trace.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/log.h
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/log.h b/src/kudu/consensus/log.h
index c4d16a3..9f4d77c 100644
--- a/src/kudu/consensus/log.h
+++ b/src/kudu/consensus/log.h
@@ -18,30 +18,43 @@
 #ifndef KUDU_CONSENSUS_LOG_H_
 #define KUDU_CONSENSUS_LOG_H_
 
+#include <cstddef>
+#include <cstdint>
 #include <limits>
 #include <map>
 #include <memory>
 #include <string>
 #include <vector>
 
+#include <glog/logging.h>
+#include <gtest/gtest_prod.h>
+
 #include "kudu/common/schema.h"
+#include "kudu/consensus/consensus.pb.h"
+#include "kudu/consensus/log.pb.h"
 #include "kudu/consensus/log_util.h"
-#include "kudu/consensus/opid_util.h"
+#include "kudu/consensus/opid.pb.h"
 #include "kudu/consensus/ref_counted_replicate.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/ref_counted.h"
-#include "kudu/gutil/spinlock.h"
-#include "kudu/util/async_util.h"
 #include "kudu/util/blocking_queue.h"
+#include "kudu/util/faststring.h"
 #include "kudu/util/locks.h"
-#include "kudu/util/rw_mutex.h"
 #include "kudu/util/promise.h"
+#include "kudu/util/rw_mutex.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
+#include "kudu/util/status_callback.h"
 
 namespace kudu {
 
+class CompressionCodec;
 class FsManager;
 class MetricEntity;
 class ThreadPool;
+class WritableFile;
+struct WritableFileOptions;
 
 namespace log {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/log_anchor_registry-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/log_anchor_registry-test.cc b/src/kudu/consensus/log_anchor_registry-test.cc
index f6d255c..a824152 100644
--- a/src/kudu/consensus/log_anchor_registry-test.cc
+++ b/src/kudu/consensus/log_anchor_registry-test.cc
@@ -17,10 +17,16 @@
 
 #include "kudu/consensus/log_anchor_registry.h"
 
-#include <glog/logging.h>
+#include <cstdint>
+#include <string>
+
 #include <gtest/gtest.h>
 
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/util/monotime.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/consensus/log_anchor_registry.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/log_anchor_registry.cc b/src/kudu/consensus/log_anchor_registry.cc
index 0243d54..04c0928 100644
--- a/src/kudu/consensus/log_anchor_registry.cc
+++ b/src/kudu/consensus/log_anchor_registry.cc
@@ -16,11 +16,16 @@
 // under the License.
 
 #include "kudu/consensus/log_anchor_registry.h"
-#include "kudu/consensus/opid_util.h"
 
 #include <mutex>
+#include <ostream>
 #include <string>
+#include <utility>
+
+#include <glog/logging.h>
 
+#include "kudu/consensus/opid_util.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/substitute.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/log_anchor_registry.h
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/log_anchor_registry.h b/src/kudu/consensus/log_anchor_registry.h
index 42fbc91..56857d7 100644
--- a/src/kudu/consensus/log_anchor_registry.h
+++ b/src/kudu/consensus/log_anchor_registry.h
@@ -17,10 +17,13 @@
 #ifndef KUDU_CONSENSUS_LOG_ANCHOR_REGISTRY_
 #define KUDU_CONSENSUS_LOG_ANCHOR_REGISTRY_
 
-#include <gtest/gtest_prod.h>
+#include <cstddef>
+#include <cstdint>
 #include <map>
 #include <string>
 
+#include <gtest/gtest_prod.h>
+
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/util/locks.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/log_cache-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/log_cache-test.cc b/src/kudu/consensus/log_cache-test.cc
index 3ac9dcd..4c16efa 100644
--- a/src/kudu/consensus/log_cache-test.cc
+++ b/src/kudu/consensus/log_cache-test.cc
@@ -15,20 +15,39 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <gtest/gtest.h>
+#include <cstddef>
+#include <cstdint>
 #include <memory>
+#include <ostream>
 #include <string>
+#include <vector>
+
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
+#include <gtest/gtest.h>
 
+#include "kudu/clock/clock.h"
 #include "kudu/clock/hybrid_clock.h"
+#include "kudu/common/schema.h"
 #include "kudu/common/wire_protocol-test-util.h"
 #include "kudu/consensus/consensus-test-util.h"
+#include "kudu/consensus/consensus.pb.h"
 #include "kudu/consensus/log.h"
 #include "kudu/consensus/log_cache.h"
+#include "kudu/consensus/log_util.h"
+#include "kudu/consensus/opid.pb.h"
+#include "kudu/consensus/opid_util.h"
+#include "kudu/consensus/ref_counted_replicate.h"
 #include "kudu/fs/fs_manager.h"
-#include "kudu/gutil/bind_helpers.h"
-#include "kudu/gutil/stl_util.h"
+#include "kudu/gutil/bind.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
+#include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/mem_tracker.h"
 #include "kudu/util/metrics.h"
+#include "kudu/util/status.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/consensus/log_cache.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/log_cache.cc b/src/kudu/consensus/log_cache.cc
index 060b03a..7660918 100644
--- a/src/kudu/consensus/log_cache.cc
+++ b/src/kudu/consensus/log_cache.cc
@@ -17,26 +17,33 @@
 
 #include "kudu/consensus/log_cache.h"
 
-#include <algorithm>
-#include <gflags/gflags.h>
-#include <google/protobuf/wire_format_lite.h>
-#include <google/protobuf/wire_format_lite_inl.h>
 #include <map>
 #include <mutex>
 #include <vector>
+#include <ostream>
+#include <utility>
+
+#include <gflags/gflags.h>
+#include <glog/logging.h>
+#include <google/protobuf/wire_format_lite.h>
+#include <google/protobuf/wire_format_lite_inl.h>
 
+#include "kudu/consensus/consensus.pb.h"
 #include "kudu/consensus/log.h"
 #include "kudu/consensus/log_reader.h"
+#include "kudu/consensus/opid.pb.h"
+#include "kudu/consensus/opid_util.h"
 #include "kudu/consensus/ref_counted_replicate.h"
 #include "kudu/gutil/bind.h"
+#include "kudu/gutil/bind_helpers.h"
 #include "kudu/gutil/map-util.h"
-#include "kudu/gutil/stl_util.h"
+#include "kudu/gutil/mathlimits.h"
 #include "kudu/gutil/strings/human_readable.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/util/debug-util.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/locks.h"
 #include "kudu/util/logging.h"
+#include "kudu/util/make_shared.h"
 #include "kudu/util/mem_tracker.h"
 #include "kudu/util/metrics.h"
 #include "kudu/util/pb_util.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/log_cache.h
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/log_cache.h b/src/kudu/consensus/log_cache.h
index b056230..5ff8399 100644
--- a/src/kudu/consensus/log_cache.h
+++ b/src/kudu/consensus/log_cache.h
@@ -17,34 +17,34 @@
 #ifndef KUDU_CONSENSUS_LOG_CACHE_H
 #define KUDU_CONSENSUS_LOG_CACHE_H
 
+#include <cstdint>
+#include <iosfwd>
 #include <map>
 #include <memory>
 #include <string>
 #include <vector>
 
-#include "kudu/consensus/consensus.pb.h"
-#include "kudu/consensus/opid_util.h"
+#include <gtest/gtest_prod.h>
+
 #include "kudu/consensus/ref_counted_replicate.h"
-#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
-#include "kudu/util/async_util.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/util/locks.h"
 #include "kudu/util/metrics.h"
 #include "kudu/util/status.h"
+#include "kudu/util/status_callback.h"
 
 namespace kudu {
 
-class MetricEntity;
 class MemTracker;
 
 namespace log {
 class Log;
-class LogReader;
 } // namespace log
 
 namespace consensus {
 
-class ReplicateMsg;
+class OpId;
 
 // Write-through cache for the log.
 //

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/log_index-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/log_index-test.cc b/src/kudu/consensus/log_index-test.cc
index 7bbafea..310e329 100644
--- a/src/kudu/consensus/log_index-test.cc
+++ b/src/kudu/consensus/log_index-test.cc
@@ -15,10 +15,18 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include "kudu/consensus/log_index.h"
+#include <cstdint>
+#include <string>
+
+#include <gtest/gtest.h>
 
+#include "kudu/consensus/log_index.h"
+#include "kudu/consensus/opid.pb.h"
 #include "kudu/consensus/opid_util.h"
-#include "kudu/fs/fs_manager.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/log_index.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/log_index.cc b/src/kudu/consensus/log_index.cc
index e3d743f..7a77e90 100644
--- a/src/kudu/consensus/log_index.cc
+++ b/src/kudu/consensus/log_index.cc
@@ -29,20 +29,27 @@
 #include "kudu/consensus/log_index.h"
 
 #include <fcntl.h>
-#include <mutex>
-#include <string>
 #include <sys/mman.h>
-#include <sys/stat.h>
-#include <sys/types.h>
 #include <unistd.h>
+
+#include <cerrno>
+#include <cinttypes>
+#include <cstdint>
+#include <cstring>
+#include <mutex>
+#include <ostream>
+#include <string>
+#include <utility>
 #include <vector>
 
+#include <glog/logging.h>
+
 #include "kudu/consensus/opid_util.h"
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/stringprintf.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/errno.h"
-#include "kudu/util/locks.h"
 
 using std::string;
 using std::vector;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/log_index.h
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/log_index.h b/src/kudu/consensus/log_index.h
index 7d12ecd..1f9ce31 100644
--- a/src/kudu/consensus/log_index.h
+++ b/src/kudu/consensus/log_index.h
@@ -17,10 +17,11 @@
 #ifndef KUDU_CONSENSUS_LOG_INDEX_H
 #define KUDU_CONSENSUS_LOG_INDEX_H
 
+#include <cstdint>
 #include <string>
 #include <map>
 
-#include "kudu/consensus/consensus.pb.h"
+#include "kudu/consensus/opid.pb.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/util/locks.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/log_metrics.h
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/log_metrics.h b/src/kudu/consensus/log_metrics.h
index 30dfcde..cfedc20 100644
--- a/src/kudu/consensus/log_metrics.h
+++ b/src/kudu/consensus/log_metrics.h
@@ -17,16 +17,10 @@
 #ifndef KUDU_CONSENSUS_LOG_METRICS_H
 #define KUDU_CONSENSUS_LOG_METRICS_H
 
-#include "kudu/gutil/macros.h"
 #include "kudu/gutil/ref_counted.h"
-#include "kudu/util/monotime.h"
+#include "kudu/util/metrics.h"
 
 namespace kudu {
-
-class Counter;
-class Histogram;
-class MetricEntity;
-
 namespace log {
 
 struct LogMetrics {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/log_reader.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/log_reader.cc b/src/kudu/consensus/log_reader.cc
index 5057b06..330d658 100644
--- a/src/kudu/consensus/log_reader.cc
+++ b/src/kudu/consensus/log_reader.cc
@@ -19,16 +19,22 @@
 
 #include <algorithm>
 #include <mutex>
+#include <ostream>
 
+#include <glog/logging.h>
+
+#include "kudu/consensus/consensus.pb.h"
+#include "kudu/consensus/log.pb.h"
 #include "kudu/consensus/log_index.h"
-#include "kudu/consensus/opid_util.h"
-#include "kudu/gutil/map-util.h"
+#include "kudu/consensus/opid.pb.h"
+#include "kudu/fs/fs_manager.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/stl_util.h"
-#include "kudu/gutil/strings/util.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/util/coding.h"
-#include "kudu/util/env_util.h"
-#include "kudu/util/hexdump.h"
+#include "kudu/gutil/strings/util.h"
+#include "kudu/util/env.h"
+#include "kudu/util/faststring.h"
+#include "kudu/util/make_shared.h"
 #include "kudu/util/metrics.h"
 #include "kudu/util/path_util.h"
 #include "kudu/util/pb_util.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/log_reader.h
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/log_reader.h b/src/kudu/consensus/log_reader.h
index ecd9cd3..312868f 100644
--- a/src/kudu/consensus/log_reader.h
+++ b/src/kudu/consensus/log_reader.h
@@ -17,26 +17,37 @@
 #ifndef KUDU_LOG_LOG_READER_H_
 #define KUDU_LOG_LOG_READER_H_
 
-#include <gtest/gtest.h>
-#include <map>
+#include <cstdint>
 #include <memory>
 #include <string>
-#include <utility>
 #include <vector>
 
-#include "kudu/consensus/log_metrics.h"
+#include <gtest/gtest_prod.h>
+
 #include "kudu/consensus/log_util.h"
-#include "kudu/consensus/opid_util.h"
-#include "kudu/fs/fs_manager.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/ref_counted.h"
-#include "kudu/gutil/spinlock.h"
-#include "kudu/util/make_shared.h"
 #include "kudu/util/locks.h"
+#include "kudu/util/make_shared.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
+
+class Counter;
+class FsManager;
+class Histogram;
+class MetricEntity;
+class faststring;
+
+namespace consensus {
+class OpId;
+class ReplicateMsg;
+} // namespace consensus
+
 namespace log {
-class Log;
 class LogIndex;
+class LogEntryBatchPB;
 struct LogIndexEntry;
 
 // Reads a set of segments from a given path. Segment headers and footers

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/log_util.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/log_util.cc b/src/kudu/consensus/log_util.cc
index 497e22e..b77df66 100644
--- a/src/kudu/consensus/log_util.cc
+++ b/src/kudu/consensus/log_util.cc
@@ -18,23 +18,23 @@
 #include "kudu/consensus/log_util.h"
 
 #include <algorithm>
+#include <cstring>
 #include <iostream>
-#include <limits>
-#include <utility>
 
 #include <gflags/gflags.h>
 #include <glog/logging.h>
 
+#include "kudu/consensus/consensus.pb.h"
 #include "kudu/consensus/opid_util.h"
 #include "kudu/consensus/ref_counted_replicate.h"
 #include "kudu/fs/fs_manager.h"
-#include "kudu/gutil/map-util.h"
-#include "kudu/gutil/stl_util.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/split.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/gutil/strings/util.h"
 #include "kudu/util/coding-inl.h"
 #include "kudu/util/coding.h"
+#include "kudu/util/compression/compression.pb.h"
 #include "kudu/util/compression/compression_codec.h"
 #include "kudu/util/crc.h"
 #include "kudu/util/debug/trace_event.h"
@@ -42,8 +42,8 @@
 #include "kudu/util/fault_injection.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/logging.h"
+#include "kudu/util/make_shared.h"
 #include "kudu/util/pb_util.h"
-#include "kudu/util/scoped_cleanup.h"
 
 DEFINE_int32(log_segment_size_mb, 8,
              "The default size for log segments, in MB");

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/log_util.h
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/log_util.h b/src/kudu/consensus/log_util.h
index eb254a8..af81c82 100644
--- a/src/kudu/consensus/log_util.h
+++ b/src/kudu/consensus/log_util.h
@@ -18,21 +18,28 @@
 #ifndef KUDU_CONSENSUS_LOG_UTIL_H_
 #define KUDU_CONSENSUS_LOG_UTIL_H_
 
+#include <cstddef>
+#include <cstdint>
 #include <deque>
-#include <gtest/gtest.h>
-#include <iosfwd>
-#include <map>
 #include <memory>
 #include <string>
-#include <utility>
 #include <vector>
 
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
+#include <gtest/gtest_prod.h>
+
 #include "kudu/consensus/log.pb.h"
+#include "kudu/consensus/opid.pb.h"
 #include "kudu/consensus/ref_counted_replicate.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/util/atomic.h"
 #include "kudu/util/env.h"
+#include "kudu/util/faststring.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
 
 // Used by other classes, now part of the API.
 DECLARE_bool(log_force_fsync_all);
@@ -41,10 +48,6 @@ namespace kudu {
 
 class CompressionCodec;
 
-namespace consensus {
-struct OpIdBiggerThanFunctor;
-} // namespace consensus
-
 namespace log {
 
 // Each log entry is prefixed by a header. See DecodeEntryHeader()

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/mt-log-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/mt-log-test.cc b/src/kudu/consensus/mt-log-test.cc
index 133a895..b5502e6 100644
--- a/src/kudu/consensus/mt-log-test.cc
+++ b/src/kudu/consensus/mt-log-test.cc
@@ -15,21 +15,50 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include "kudu/consensus/log-test-base.h"
-
 #include <algorithm>
 #include <atomic>
+#include <cstdint>
+#include <map>
 #include <memory>
 #include <mutex>
+#include <ostream>
 #include <thread>
 #include <vector>
 
+#include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
+#include "kudu/clock/clock.h"
+#include "kudu/common/timestamp.h"
+#include "kudu/common/wire_protocol-test-util.h"
+#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/consensus/consensus.pb.h"
+#include "kudu/consensus/log-test-base.h"
+#include "kudu/consensus/log.h"
 #include "kudu/consensus/log_index.h"
+#include "kudu/consensus/log_reader.h"
+#include "kudu/consensus/log_util.h"
+#include "kudu/consensus/opid.pb.h"
+#include "kudu/consensus/ref_counted_replicate.h"
+#include "kudu/gutil/bind.h"
+#include "kudu/gutil/bind_helpers.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/tserver/tserver.pb.h"
+#include "kudu/util/countdown_latch.h"
 #include "kudu/util/fault_injection.h"
 #include "kudu/util/locks.h"
+#include "kudu/util/metrics.h"
 #include "kudu/util/random.h"
+#include "kudu/util/status.h"
+#include "kudu/util/status_callback.h"
+#include "kudu/util/stopwatch.h"
+#include "kudu/util/test_macros.h"
+#include "kudu/util/test_util.h"
 #include "kudu/util/thread.h"
 
 DEFINE_int32(num_writer_threads, 4, "Number of threads writing to the log");

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/opid_util.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/opid_util.cc b/src/kudu/consensus/opid_util.cc
index c39cb51..a64e852 100644
--- a/src/kudu/consensus/opid_util.cc
+++ b/src/kudu/consensus/opid_util.cc
@@ -17,11 +17,13 @@
 
 #include "kudu/consensus/opid_util.h"
 
-#include <algorithm>
-#include <glog/logging.h>
 #include <limits>
+#include <utility>
+
+#include <glog/logging.h>
 
 #include "kudu/consensus/consensus.pb.h"
+#include "kudu/consensus/opid.pb.h"
 #include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/substitute.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/opid_util.h
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/opid_util.h b/src/kudu/consensus/opid_util.h
index 7c1a40e..507b369 100644
--- a/src/kudu/consensus/opid_util.h
+++ b/src/kudu/consensus/opid_util.h
@@ -18,11 +18,10 @@
 #ifndef KUDU_CONSENSUS_OPID_UTIL_H_
 #define KUDU_CONSENSUS_OPID_UTIL_H_
 
-#include <stdint.h>
-
+#include <cstddef>
+#include <cstdint>
 #include <iosfwd>
 #include <string>
-#include <utility>
 
 namespace kudu {
 namespace consensus {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/peer_manager.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/peer_manager.cc b/src/kudu/consensus/peer_manager.cc
index 0dde6a6..55668d5 100644
--- a/src/kudu/consensus/peer_manager.cc
+++ b/src/kudu/consensus/peer_manager.cc
@@ -19,14 +19,21 @@
 
 #include <memory>
 #include <mutex>
+#include <ostream>
+#include <type_traits>
+#include <utility>
+
+#include <glog/logging.h>
 
 #include "kudu/consensus/consensus_peers.h"
 #include "kudu/consensus/log.h"
+#include "kudu/consensus/metadata.pb.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/map-util.h"
-#include "kudu/gutil/stl_util.h"
+#include "kudu/gutil/move.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/pb_util.h"
-#include "kudu/util/threadpool.h"
 
 using kudu::log::Log;
 using kudu::pb_util::SecureShortDebugString;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/peer_manager.h
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/peer_manager.h b/src/kudu/consensus/peer_manager.h
index 9825dea..6b7058a 100644
--- a/src/kudu/consensus/peer_manager.h
+++ b/src/kudu/consensus/peer_manager.h
@@ -21,7 +21,6 @@
 #include <string>
 #include <unordered_map>
 
-#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/util/locks.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/pending_rounds.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/pending_rounds.cc b/src/kudu/consensus/pending_rounds.cc
index 6484183..f334be8 100644
--- a/src/kudu/consensus/pending_rounds.cc
+++ b/src/kudu/consensus/pending_rounds.cc
@@ -17,13 +17,23 @@
 
 #include "kudu/consensus/pending_rounds.h"
 
+#include <ostream>
+#include <utility>
+
+#include <glog/logging.h>
+
+#include "kudu/consensus/consensus.pb.h"
+#include "kudu/consensus/opid_util.h"
 #include "kudu/consensus/raft_consensus.h"
 #include "kudu/consensus/time_manager.h"
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/util/debug-util.h"
 #include "kudu/util/logging.h"
 #include "kudu/util/pb_util.h"
 #include "kudu/util/status.h"
+#include "kudu/util/thread_restrictions.h"
 
 using kudu::pb_util::SecureShortDebugString;
 using std::string;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/pending_rounds.h
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/pending_rounds.h b/src/kudu/consensus/pending_rounds.h
index ccc9cd4..c1043b6 100644
--- a/src/kudu/consensus/pending_rounds.h
+++ b/src/kudu/consensus/pending_rounds.h
@@ -17,11 +17,11 @@
 
 #pragma once
 
+#include <cstdint>
 #include <map>
 #include <string>
 
 #include "kudu/consensus/opid.pb.h"
-#include "kudu/consensus/opid_util.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/ref_counted.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/quorum_util-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/quorum_util-test.cc b/src/kudu/consensus/quorum_util-test.cc
index 70e361c..87b30cd 100644
--- a/src/kudu/consensus/quorum_util-test.cc
+++ b/src/kudu/consensus/quorum_util-test.cc
@@ -15,11 +15,15 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <glog/logging.h>
-#include "kudu/consensus/quorum_util.h"
+#include <string>
+
+#include <gtest/gtest.h>
 
-#include "kudu/consensus/opid_util.h"
-#include "kudu/util/test_util.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/consensus/metadata.pb.h"
+#include "kudu/consensus/quorum_util.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 
 namespace kudu {
 namespace consensus {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/quorum_util.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/quorum_util.cc b/src/kudu/consensus/quorum_util.cc
index a433ec9..f4e88d2 100644
--- a/src/kudu/consensus/quorum_util.cc
+++ b/src/kudu/consensus/quorum_util.cc
@@ -22,6 +22,9 @@
 #include <utility>
 #include <vector>
 
+#include <glog/logging.h>
+
+#include "kudu/common/common.pb.h"
 #include "kudu/gutil/map-util.h"
 #include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/substitute.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/quorum_util.h
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/quorum_util.h b/src/kudu/consensus/quorum_util.h
index 2a8aa61..d502037 100644
--- a/src/kudu/consensus/quorum_util.h
+++ b/src/kudu/consensus/quorum_util.h
@@ -21,9 +21,9 @@
 #include <string>
 
 #include "kudu/consensus/metadata.pb.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
-class Status;
 
 namespace consensus {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/raft_consensus.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/raft_consensus.cc b/src/kudu/consensus/raft_consensus.cc
index a7140ce..2c900a5 100644
--- a/src/kudu/consensus/raft_consensus.cc
+++ b/src/kudu/consensus/raft_consensus.cc
@@ -18,27 +18,46 @@
 #include "kudu/consensus/raft_consensus.h"
 
 #include <algorithm>
+#include <cmath>
+#include <cstdint>
+#include <functional>
 #include <memory>
 #include <mutex>
 #include <ostream>
+#include <unordered_set>
+#include <type_traits>
 
-#include <boost/optional.hpp>
+#include <boost/optional/optional.hpp>
 #include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
 
-#include "kudu/clock/clock.h"
+#include "kudu/common/timestamp.h"
 #include "kudu/common/wire_protocol.h"
 #include "kudu/consensus/consensus.pb.h"
+#include "kudu/consensus/consensus_meta.h"
 #include "kudu/consensus/consensus_meta_manager.h"
 #include "kudu/consensus/consensus_peers.h"
 #include "kudu/consensus/leader_election.h"
 #include "kudu/consensus/log.h"
 #include "kudu/consensus/metadata.pb.h"
+#include "kudu/consensus/opid_util.h"
 #include "kudu/consensus/peer_manager.h"
+#include "kudu/consensus/pending_rounds.h"
 #include "kudu/consensus/quorum_util.h"
+#include "kudu/gutil/basictypes.h"
+#include "kudu/gutil/bind.h"
+#include "kudu/gutil/bind_helpers.h"
+#include "kudu/gutil/integral_types.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/stringprintf.h"
+#include "kudu/gutil/strings/stringpiece.h"
+#include "kudu/gutil/strings/substitute.h"
+#include "kudu/util/async_util.h"
 #include "kudu/util/debug/trace_event.h"
+#include "kudu/util/failure_detector.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/logging.h"
 #include "kudu/util/metrics.h"
@@ -46,6 +65,8 @@
 #include "kudu/util/process_memory.h"
 #include "kudu/util/random.h"
 #include "kudu/util/random_util.h"
+#include "kudu/util/status.h"
+#include "kudu/util/thread_restrictions.h"
 #include "kudu/util/threadpool.h"
 #include "kudu/util/trace.h"
 #include "kudu/util/url-coding.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/raft_consensus.h
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/raft_consensus.h b/src/kudu/consensus/raft_consensus.h
index 0eb3652..4ecb25e 100644
--- a/src/kudu/consensus/raft_consensus.h
+++ b/src/kudu/consensus/raft_consensus.h
@@ -17,62 +17,67 @@
 
 #pragma once
 
+#include <algorithm>
+#include <cstdint>
 #include <iosfwd>
 #include <memory>
 #include <mutex>
 #include <string>
-#include <utility>
 #include <vector>
 
-#include <boost/optional/optional_fwd.hpp>
+#include <glog/logging.h>
+#include <gtest/gtest_prod.h>
 
 #include "kudu/consensus/consensus.pb.h"
-#include "kudu/consensus/consensus_meta.h"
+#include "kudu/consensus/consensus_meta.h"  // IWYU pragma: keep
 #include "kudu/consensus/consensus_queue.h"
-#include "kudu/consensus/peer_manager.h"
-#include "kudu/consensus/pending_rounds.h"
+#include "kudu/consensus/log.h"
+#include "kudu/consensus/metadata.pb.h"
+#include "kudu/consensus/opid.pb.h"
+#include "kudu/consensus/ref_counted_replicate.h"
 #include "kudu/consensus/time_manager.h"
+#include "kudu/gutil/callback.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/ref_counted.h"
+#include "kudu/tserver/tserver.pb.h"
 #include "kudu/util/atomic.h"
-#include "kudu/util/failure_detector.h"
+#include "kudu/util/locks.h"
+#include "kudu/util/metrics.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/random.h"
 #include "kudu/util/status_callback.h"
 
+namespace boost {
+template <class T>
+class optional;
+}
+
 namespace kudu {
 
-class Counter;
 class FailureDetector;
-class HostPort;
-class MonoDelta;
+class RandomizedFailureMonitor;
+
+typedef std::lock_guard<simple_spinlock> Lock;
+typedef gscoped_ptr<Lock> ScopedLock;
+
 class ThreadPool;
 class ThreadPoolToken;
 class Status;
 
-namespace log {
-class Log;
-struct RetentionIndexes;
-}
-
-namespace rpc {
-class Messenger;
-}
-
-namespace server {
-class Clock;
-}
-
-namespace tserver {
-class TabletServerErrorPB;
-}
+template <typename Sig>
+class Callback;
 
 namespace consensus {
 
 class ConsensusMetadata;
+class ConsensusMetadataManager;
 class ConsensusRound;
-class Peer;
 class PeerProxyFactory;
 class PeerManager;
+class PendingRounds;
 class ReplicaTransactionFactory;
-class TimeManager;
 
 struct ConsensusBootstrapInfo;
 struct ElectionResult;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/raft_consensus_quorum-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/raft_consensus_quorum-test.cc b/src/kudu/consensus/raft_consensus_quorum-test.cc
index 43816b4..0790993 100644
--- a/src/kudu/consensus/raft_consensus_quorum-test.cc
+++ b/src/kudu/consensus/raft_consensus_quorum-test.cc
@@ -15,33 +15,62 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <gtest/gtest.h>
+#include <algorithm>
+#include <cstdint>
 #include <memory>
+#include <ostream>
+#include <string>
+#include <type_traits>
+#include <unordered_map>
+#include <unordered_set>
+#include <vector>
+
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
+#include <gtest/gtest.h>
 
+#include "kudu/clock/clock.h"
 #include "kudu/clock/logical_clock.h"
+#include "kudu/common/common.pb.h"
 #include "kudu/common/schema.h"
+#include "kudu/common/timestamp.h"
 #include "kudu/common/wire_protocol-test-util.h"
+#include "kudu/common/wire_protocol.pb.h"
 #include "kudu/consensus/consensus-test-util.h"
 #include "kudu/consensus/consensus.pb.h"
-#include "kudu/consensus/consensus.proxy.h"
+#include "kudu/consensus/consensus_meta.h"
 #include "kudu/consensus/consensus_meta_manager.h"
+#include "kudu/consensus/consensus_peers.h"
+#include "kudu/consensus/consensus_queue.h"
 #include "kudu/consensus/log.h"
+#include "kudu/consensus/log.pb.h"
 #include "kudu/consensus/log_index.h"
 #include "kudu/consensus/log_reader.h"
 #include "kudu/consensus/log_util.h"
 #include "kudu/consensus/metadata.pb.h"
+#include "kudu/consensus/opid.pb.h"
 #include "kudu/consensus/opid_util.h"
-#include "kudu/consensus/peer_manager.h"
 #include "kudu/consensus/quorum_util.h"
 #include "kudu/consensus/raft_consensus.h"
+#include "kudu/consensus/time_manager.h"
+#include "kudu/fs/fs_manager.h"
+#include "kudu/gutil/bind.h"
+#include "kudu/gutil/casts.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/map-util.h"
+#include "kudu/gutil/move.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/strcat.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/rpc/rpc_context.h"
-#include "kudu/util/auto_release_pool.h"
+#include "kudu/util/async_util.h"
+#include "kudu/util/make_shared.h"
 #include "kudu/util/mem_tracker.h"
 #include "kudu/util/metrics.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/pb_util.h"
+#include "kudu/util/status.h"
+#include "kudu/util/status_callback.h"
 #include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 #include "kudu/util/threadpool.h"
@@ -67,11 +96,6 @@ using strings::Substitute;
 using strings::SubstituteAndAppend;
 
 namespace kudu {
-
-namespace rpc {
-class RpcContext;
-}
-
 namespace consensus {
 
 const char* kTestTablet = "TestTablet";

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/time_manager-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/time_manager-test.cc b/src/kudu/consensus/time_manager-test.cc
index 5bed655..66075d6 100644
--- a/src/kudu/consensus/time_manager-test.cc
+++ b/src/kudu/consensus/time_manager-test.cc
@@ -15,16 +15,24 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <gtest/gtest.h>
+#include <memory>
 #include <thread>
+#include <vector>
+
+#include <glog/logging.h>
+#include <gtest/gtest.h>
 
 #include "kudu/clock/clock.h"
 #include "kudu/clock/hybrid_clock.h"
-#include "kudu/clock/logical_clock.h"
+#include "kudu/common/timestamp.h"
 #include "kudu/consensus/consensus.pb.h"
 #include "kudu/consensus/time_manager.h"
+#include "kudu/gutil/ref_counted.h"
+#include "kudu/util/countdown_latch.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
-#include "kudu/util/thread.h"
 
 namespace kudu {
 namespace consensus {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/time_manager.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/time_manager.cc b/src/kudu/consensus/time_manager.cc
index c9444cb..7a5083d 100644
--- a/src/kudu/consensus/time_manager.cc
+++ b/src/kudu/consensus/time_manager.cc
@@ -15,12 +15,22 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <algorithm>
+#include <cstdint>
 #include <mutex>
+#include <ostream>
+
 #include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
 
 #include "kudu/consensus/consensus.pb.h"
 #include "kudu/consensus/time_manager.h"
+#include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/tserver/tserver.pb.h"
+#include "kudu/util/countdown_latch.h"
 #include "kudu/util/flag_tags.h"
 
 DEFINE_bool(safe_time_advancement_without_writes, true,

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/time_manager.h
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/time_manager.h b/src/kudu/consensus/time_manager.h
index a54916a..966b791 100644
--- a/src/kudu/consensus/time_manager.h
+++ b/src/kudu/consensus/time_manager.h
@@ -16,17 +16,23 @@
 // under the License.
 #pragma once
 
-#include <algorithm>
 #include <string>
 #include <vector>
 
+#include <gtest/gtest_prod.h>
+
 #include "kudu/clock/clock.h"
+#include "kudu/common/common.pb.h"
 #include "kudu/common/timestamp.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/util/locks.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
+
+class CountDownLatch;
+
 namespace consensus {
 class ReplicateMsg;
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/experiments/merge-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/experiments/merge-test.cc b/src/kudu/experiments/merge-test.cc
index efe513f..880239a 100644
--- a/src/kudu/experiments/merge-test.cc
+++ b/src/kudu/experiments/merge-test.cc
@@ -15,12 +15,15 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <gflags/gflags.h>
-#include <glog/logging.h>
-#include <algorithm>
+#include <cstdlib>
+#include <memory>
+#include <queue>
 #include <string>
 #include <vector>
 
+#include <gflags/gflags.h>
+
+#include "kudu/util/make_shared.h"
 #include "kudu/util/stopwatch.h"
 
 DEFINE_int32(num_lists, 3, "Number of lists to merge");

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/experiments/rwlock-perf.cc
----------------------------------------------------------------------
diff --git a/src/kudu/experiments/rwlock-perf.cc b/src/kudu/experiments/rwlock-perf.cc
index a419c32..d51cb9a 100644
--- a/src/kudu/experiments/rwlock-perf.cc
+++ b/src/kudu/experiments/rwlock-perf.cc
@@ -15,16 +15,24 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <boost/smart_ptr/detail/spinlock.hpp>
-#include <gflags/gflags.h>
-#include <glog/logging.h>
+
+#include <sched.h>
+
+#include <cinttypes>
+#include <cstdint>
+#include <cstdio>
 #include <iostream>
 #include <mutex>
-#include <stdio.h>
 #include <thread>
-#include <unistd.h>
+#include <vector>
+
+#include <boost/smart_ptr/detail/spinlock.hpp>
+#include <gflags/gflags.h>
+#include <glog/logging.h>
 
 #include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/sysinfo.h"
 #include "kudu/gutil/walltime.h"
 #include "kudu/util/flags.h"
 #include "kudu/util/locks.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/fs/block_id.h
----------------------------------------------------------------------
diff --git a/src/kudu/fs/block_id.h b/src/kudu/fs/block_id.h
index 847ab4c..bbfba6c 100644
--- a/src/kudu/fs/block_id.h
+++ b/src/kudu/fs/block_id.h
@@ -17,26 +17,20 @@
 #ifndef KUDU_FS_BLOCK_ID_H
 #define KUDU_FS_BLOCK_ID_H
 
+#include <cinttypes>
+#include <cstddef>
+#include <cstdint>
 #include <iosfwd>
 #include <string>
 #include <unordered_set>
 #include <vector>
 
-#include <glog/logging.h>
-
-#include "kudu/gutil/macros.h"
 #include "kudu/gutil/stringprintf.h"
 
 namespace kudu {
 
 class BlockIdPB;
 
-namespace fs {
-namespace internal {
-class FileBlockLocation;
-} // namespace internal
-} // namespace fs
-
 class BlockId {
  public:
   BlockId()

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/fs/block_manager-stress-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/fs/block_manager-stress-test.cc b/src/kudu/fs/block_manager-stress-test.cc
index 876602d..4d1e919 100644
--- a/src/kudu/fs/block_manager-stress-test.cc
+++ b/src/kudu/fs/block_manager-stress-test.cc
@@ -15,26 +15,49 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <algorithm>
 #include <cmath>
+#include <cstdint>
+#include <cstring>
+#include <iterator>
+#include <memory>
 #include <mutex>
+#include <ostream>
 #include <string>
 #include <unordered_map>
 #include <vector>
 
+#include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
+#include "kudu/fs/block_id.h"
+#include "kudu/fs/block_manager.h"
+#include "kudu/fs/data_dirs.h"
 #include "kudu/fs/error_manager.h"
-#include "kudu/fs/file_block_manager.h"
+#include "kudu/fs/file_block_manager.h" // IWYU pragma: keep
 #include "kudu/fs/fs.pb.h"
 #include "kudu/fs/fs_report.h"
+#include "kudu/fs/log_block_manager.h"  // IWYU pragma: keep
 #include "kudu/fs/log_block_manager-test-util.h"
-#include "kudu/fs/log_block_manager.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/map-util.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/split.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/atomic.h"
+#include "kudu/util/countdown_latch.h"
+#include "kudu/util/env.h"
+#include "kudu/util/faststring.h"
 #include "kudu/util/file_cache-test-util.h"
-#include "kudu/util/metrics.h"
+#include "kudu/util/locks.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/random.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 #include "kudu/util/thread.h"
 
@@ -73,6 +96,9 @@ using strings::Substitute;
 namespace kudu {
 namespace fs {
 
+class FileBlockManager;
+class LogBlockManager;
+
 // This test attempts to simulate how a TS might use the block manager:
 //
 // writing threads (default 2) that do the following in a tight loop:

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/fs/block_manager-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/fs/block_manager-test.cc b/src/kudu/fs/block_manager-test.cc
index 47f4c07..b02407b 100644
--- a/src/kudu/fs/block_manager-test.cc
+++ b/src/kudu/fs/block_manager-test.cc
@@ -16,29 +16,46 @@
 // under the License.
 
 #include <algorithm>
+#include <cstddef>
+#include <cstdint>
 #include <memory>
+#include <ostream>
 #include <string>
+#include <unordered_set>
 #include <vector>
 
+#include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
 #include <google/protobuf/util/message_differencer.h>
+#include <gtest/gtest.h>
 
-#include "kudu/fs/data_dirs.h"
-#include "kudu/fs/error_manager.h"
+#include "kudu/fs/block_id.h"
+#include "kudu/fs/block_manager.h"
 #include "kudu/fs/file_block_manager.h"
 #include "kudu/fs/fs.pb.h"
 #include "kudu/fs/fs_report.h"
+#include "kudu/fs/data_dirs.h"
+#include "kudu/fs/error_manager.h"
 #include "kudu/fs/log_block_manager.h"
+#include "kudu/gutil/bind.h"
+#include "kudu/gutil/casts.h"
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/gutil/strings/util.h"
+#include "kudu/util/env.h"
 #include "kudu/util/mem_tracker.h"
 #include "kudu/util/metrics.h"
 #include "kudu/util/path_util.h"
 #include "kudu/util/pb_util.h"
 #include "kudu/util/random.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"
 #include "kudu/util/thread.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/fs/block_manager.cc
----------------------------------------------------------------------
diff --git a/src/kudu/fs/block_manager.cc b/src/kudu/fs/block_manager.cc
index 8034fd4..48aea93 100644
--- a/src/kudu/fs/block_manager.cc
+++ b/src/kudu/fs/block_manager.cc
@@ -18,10 +18,12 @@
 #include "kudu/fs/block_manager.h"
 
 #include <mutex>
+#include <ostream>
 
+#include <gflags/gflags.h>
 #include <glog/logging.h>
 
-#include "kudu/gutil/integral_types.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/env.h"
 #include "kudu/util/flag_tags.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/fs/block_manager.h
----------------------------------------------------------------------
diff --git a/src/kudu/fs/block_manager.h b/src/kudu/fs/block_manager.h
index 1e9ed47..aa13a97 100644
--- a/src/kudu/fs/block_manager.h
+++ b/src/kudu/fs/block_manager.h
@@ -23,14 +23,14 @@
 #include <string>
 #include <vector>
 
+#include <glog/logging.h>
+
 #include "kudu/fs/block_id.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/status.h"
 
-DECLARE_bool(block_coalesce_close);
-
 namespace kudu {
 
 class Env;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/fs/block_manager_metrics.h
----------------------------------------------------------------------
diff --git a/src/kudu/fs/block_manager_metrics.h b/src/kudu/fs/block_manager_metrics.h
index 926b9c7..760f98b 100644
--- a/src/kudu/fs/block_manager_metrics.h
+++ b/src/kudu/fs/block_manager_metrics.h
@@ -17,17 +17,12 @@
 #ifndef KUDU_FS_BLOCK_MANAGER_METRICS_H
 #define KUDU_FS_BLOCK_MANAGER_METRICS_H
 
-#include <stdint.h>
+#include <cstdint>
 
 #include "kudu/gutil/ref_counted.h"
+#include "kudu/util/metrics.h"
 
 namespace kudu {
-
-class Counter;
-template<class T>
-class AtomicGauge;
-class MetricEntity;
-
 namespace fs {
 namespace internal {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/fs/block_manager_util-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/fs/block_manager_util-test.cc b/src/kudu/fs/block_manager_util-test.cc
index f44cbca..0a73afb 100644
--- a/src/kudu/fs/block_manager_util-test.cc
+++ b/src/kudu/fs/block_manager_util-test.cc
@@ -14,18 +14,28 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-#include "kudu/fs/block_manager_util.h"
 
+#include <algorithm>
+#include <memory>
+#include <ostream>
 #include <string>
+#include <type_traits>
 #include <vector>
 
+#include <glog/logging.h>
 #include <google/protobuf/repeated_field.h>
 #include <gtest/gtest.h>
 
+#include "kudu/fs/block_manager_util.h"
 #include "kudu/fs/fs.pb.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/move.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/util/env.h"
 #include "kudu/util/path_util.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/fs/block_manager_util.cc
----------------------------------------------------------------------
diff --git a/src/kudu/fs/block_manager_util.cc b/src/kudu/fs/block_manager_util.cc
index 6dae6fe..a6f2d11 100644
--- a/src/kudu/fs/block_manager_util.cc
+++ b/src/kudu/fs/block_manager_util.cc
@@ -16,14 +16,19 @@
 // under the License.
 #include "kudu/fs/block_manager_util.h"
 
+#include <algorithm>
+#include <cstdint>
+#include <ostream>
 #include <set>
+#include <type_traits>
 #include <unordered_map>
-#include <utility>
 
-#include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
 
 #include "kudu/fs/fs.pb.h"
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/move.h"
 #include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/env.h"
@@ -125,6 +130,11 @@ Status PathInstanceMetadataFile::Unlock() {
   return Status::OK();
 }
 
+void PathInstanceMetadataFile::SetMetadataForTests(
+    gscoped_ptr<PathInstanceMetadataPB> metadata) {
+  metadata_ = std::move(metadata);
+}
+
 Status PathInstanceMetadataFile::CheckIntegrity(
     const vector<PathInstanceMetadataFile*>& instances) {
   CHECK(!instances.empty());

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/fs/block_manager_util.h
----------------------------------------------------------------------
diff --git a/src/kudu/fs/block_manager_util.h b/src/kudu/fs/block_manager_util.h
index 099a23c..4a20482 100644
--- a/src/kudu/fs/block_manager_util.h
+++ b/src/kudu/fs/block_manager_util.h
@@ -67,9 +67,7 @@ class PathInstanceMetadataFile {
   // Unlocks the instance metadata file. Must have been locked to begin with.
   Status Unlock();
 
-  void SetMetadataForTests(gscoped_ptr<PathInstanceMetadataPB> metadata) {
-    metadata_ = std::move(metadata);
-  }
+  void SetMetadataForTests(gscoped_ptr<PathInstanceMetadataPB> metadata);
 
   std::string path() const { return DirName(filename_); }
   PathInstanceMetadataPB* const metadata() const { return metadata_.get(); }

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/fs/data_dirs-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/fs/data_dirs-test.cc b/src/kudu/fs/data_dirs-test.cc
index c1c4f47..81a4036 100644
--- a/src/kudu/fs/data_dirs-test.cc
+++ b/src/kudu/fs/data_dirs-test.cc
@@ -27,6 +27,7 @@
 #include "kudu/fs/data_dirs.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/metrics.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 #include "kudu/gutil/map-util.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/fs/data_dirs.cc
----------------------------------------------------------------------
diff --git a/src/kudu/fs/data_dirs.cc b/src/kudu/fs/data_dirs.cc
index 2fbec20..99177cf 100644
--- a/src/kudu/fs/data_dirs.cc
+++ b/src/kudu/fs/data_dirs.cc
@@ -19,32 +19,35 @@
 
 #include <algorithm>
 #include <cerrno>
+#include <cstdint>
 #include <deque>
 #include <memory>
 #include <mutex>
 #include <numeric>
+#include <ostream>
+#include <random>
 #include <string>
 #include <unordered_map>
 #include <unordered_set>
 #include <utility>
 #include <vector>
 
-#include <boost/optional.hpp>
 #include <gflags/gflags.h>
 #include <glog/logging.h>
 
 #include "kudu/fs/block_manager.h"
 #include "kudu/fs/block_manager_util.h"
+#include "kudu/gutil/bind.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/util/atomic.h"
 #include "kudu/util/env.h"
 #include "kudu/util/env_util.h"
 #include "kudu/util/flag_tags.h"
-#include "kudu/util/locks.h"
 #include "kudu/util/metrics.h"
 #include "kudu/util/monotime.h"
 #include "kudu/util/oid_generator.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/fs/data_dirs.h
----------------------------------------------------------------------
diff --git a/src/kudu/fs/data_dirs.h b/src/kudu/fs/data_dirs.h
index 5cb17cc..4334e78 100644
--- a/src/kudu/fs/data_dirs.h
+++ b/src/kudu/fs/data_dirs.h
@@ -17,6 +17,8 @@
 
 #pragma once
 
+#include <algorithm>
+#include <cstdint>
 #include <memory>
 #include <mutex>
 #include <string>
@@ -24,33 +26,29 @@
 #include <set>
 #include <vector>
 
-#include <boost/optional.hpp>
+#include <glog/logging.h>
 #include <gtest/gtest_prod.h>
 
 #include "kudu/fs/fs.pb.h"
-#include "kudu/gutil/callback_forward.h"
+#include "kudu/gutil/callback.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/macros.h"
-#include "kudu/util/atomic.h"
+#include "kudu/gutil/map-util.h"
 #include "kudu/util/locks.h"
+#include "kudu/util/metrics.h"
 #include "kudu/util/monotime.h"
 #include "kudu/util/random.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
-template<typename T>
-class AtomicGauge;
 class Env;
-class MetricEntity;
 class ThreadPool;
-class DataDirGroupPB;
 
 namespace fs {
 
 typedef std::unordered_map<uint16_t, std::string> UuidByUuidIndexMap;
 typedef std::unordered_map<std::string, uint16_t> UuidIndexByUuidMap;
 
-class DataDirManager;
 class PathInstanceMetadataFile;
 struct CreateBlockOptions;
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/fs/error_manager.h
----------------------------------------------------------------------
diff --git a/src/kudu/fs/error_manager.h b/src/kudu/fs/error_manager.h
index 7724e4b..cf0fdf7 100644
--- a/src/kudu/fs/error_manager.h
+++ b/src/kudu/fs/error_manager.h
@@ -22,6 +22,7 @@
 
 #include "kudu/fs/block_manager_util.h"
 #include "kudu/fs/data_dirs.h"
+#include "kudu/gutil/bind.h"
 #include "kudu/gutil/callback_forward.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/fault_injection.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/fs/file_block_manager.cc
----------------------------------------------------------------------
diff --git a/src/kudu/fs/file_block_manager.cc b/src/kudu/fs/file_block_manager.cc
index 8744e6a..3d5f8ef 100644
--- a/src/kudu/fs/file_block_manager.cc
+++ b/src/kudu/fs/file_block_manager.cc
@@ -17,15 +17,27 @@
 
 #include "kudu/fs/file_block_manager.h"
 
+#include <cstddef>
 #include <memory>
+#include <mutex>
 #include <numeric>
+#include <ostream>
 #include <string>
+#include <utility>
 #include <vector>
 
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
+
+#include "kudu/fs/block_id.h"
 #include "kudu/fs/block_manager_metrics.h"
 #include "kudu/fs/data_dirs.h"
 #include "kudu/fs/error_manager.h"
 #include "kudu/fs/fs_report.h"
+#include "kudu/gutil/bind.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
+#include "kudu/gutil/stringprintf.h"
 #include "kudu/gutil/strings/numbers.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/atomic.h"
@@ -33,10 +45,12 @@
 #include "kudu/util/env_util.h"
 #include "kudu/util/file_cache.h"
 #include "kudu/util/malloc.h"
+#include "kudu/util/make_shared.h"
 #include "kudu/util/mem_tracker.h"
 #include "kudu/util/metrics.h"
 #include "kudu/util/path_util.h"
 #include "kudu/util/random_util.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
 
 using std::accumulate;
@@ -46,8 +60,9 @@ using std::unique_ptr;
 using std::vector;
 using strings::Substitute;
 
-DECLARE_bool(enable_data_block_fsync);
+DECLARE_bool(block_coalesce_close);
 DECLARE_bool(block_manager_lock_dirs);
+DECLARE_bool(enable_data_block_fsync);
 
 namespace kudu {
 namespace fs {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/fs/file_block_manager.h
----------------------------------------------------------------------
diff --git a/src/kudu/fs/file_block_manager.h b/src/kudu/fs/file_block_manager.h
index ad3886e..afd02c7 100644
--- a/src/kudu/fs/file_block_manager.h
+++ b/src/kudu/fs/file_block_manager.h
@@ -18,26 +18,27 @@
 #ifndef KUDU_FS_FILE_BLOCK_MANAGER_H
 #define KUDU_FS_FILE_BLOCK_MANAGER_H
 
+#include <cstdint>
 #include <memory>
 #include <string>
 #include <unordered_set>
 #include <vector>
 
-#include "kudu/fs/block_id.h"
 #include "kudu/fs/block_manager.h"
 #include "kudu/fs/data_dirs.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/util/atomic.h"
 #include "kudu/util/file_cache.h"
 #include "kudu/util/locks.h"
 #include "kudu/util/random.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 
+class BlockId;
 class Env;
 class MemTracker;
-class MetricEntity;
 class RandomAccessFile;
-class WritableFile;
 
 namespace fs {
 class FsErrorManager;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/fs/fs_manager-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/fs/fs_manager-test.cc b/src/kudu/fs/fs_manager-test.cc
index 1764671..f0e34e0 100644
--- a/src/kudu/fs/fs_manager-test.cc
+++ b/src/kudu/fs/fs_manager-test.cc
@@ -18,22 +18,32 @@
 #include <sys/stat.h>
 #include <unistd.h>
 
+#include <cstdint>
+#include <iostream>
 #include <memory>
+#include <string>
 #include <unordered_set>
+#include <vector>
 
+#include <gflags/gflags_declare.h>
 #include <glog/logging.h>
 #include <glog/stl_logging.h>
 #include <gtest/gtest.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/gutil/stringprintf.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/gutil/strings/util.h"
+#include "kudu/util/env.h"
 #include "kudu/util/env_util.h"
 #include "kudu/util/flags.h"
-#include "kudu/util/metrics.h"
 #include "kudu/util/oid_generator.h"
+#include "kudu/util/path_util.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.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/fs/fs_manager.cc
----------------------------------------------------------------------
diff --git a/src/kudu/fs/fs_manager.cc b/src/kudu/fs/fs_manager.cc
index 846be68..5859476 100644
--- a/src/kudu/fs/fs_manager.cc
+++ b/src/kudu/fs/fs_manager.cc
@@ -17,36 +17,38 @@
 
 #include "kudu/fs/fs_manager.h"
 
+#include <algorithm>
+#include <cinttypes>
+#include <ctime>
 #include <deque>
 #include <iostream>
 #include <map>
 #include <stack>
 #include <unordered_set>
 
-#include <boost/optional.hpp>
+#include <boost/optional/optional.hpp>
+#include <gflags/gflags.h>
 #include <glog/logging.h>
 #include <glog/stl_logging.h>
-#include <google/protobuf/message.h>
 
 #include "kudu/fs/block_id.h"
+#include "kudu/fs/block_manager.h"
 #include "kudu/fs/error_manager.h"
 #include "kudu/fs/file_block_manager.h"
 #include "kudu/fs/fs.pb.h"
 #include "kudu/fs/log_block_manager.h"
 #include "kudu/gutil/gscoped_ptr.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/strcat.h"
 #include "kudu/gutil/strings/strip.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/gutil/strings/util.h"
-#include "kudu/gutil/strtoint.h"
 #include "kudu/gutil/walltime.h"
 #include "kudu/util/env_util.h"
-#include "kudu/util/errno.h"
-#include "kudu/util/flags.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/metrics.h"
 #include "kudu/util/net/net_util.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/fs/fs_manager.h
----------------------------------------------------------------------
diff --git a/src/kudu/fs/fs_manager.h b/src/kudu/fs/fs_manager.h
index 386e4c5..c5899f4 100644
--- a/src/kudu/fs/fs_manager.h
+++ b/src/kudu/fs/fs_manager.h
@@ -18,25 +18,27 @@
 #ifndef KUDU_FS_FS_MANAGER_H
 #define KUDU_FS_FS_MANAGER_H
 
-#include <boost/none.hpp>
-#include <boost/optional/optional.hpp>
-#include <gtest/gtest_prod.h>
+#include <cstddef>
+#include <cstdint>
 #include <iosfwd>
 #include <memory>
 #include <set>
 #include <string>
 #include <vector>
 
+#include <boost/optional/optional.hpp>
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
+#include <gtest/gtest_prod.h>
+
 #include "kudu/fs/error_manager.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/util/env.h"
 #include "kudu/util/path_util.h"
+#include "kudu/util/status.h"
 
-namespace google {
-namespace protobuf {
-class Message;
-} // namespace protobuf
-} // namespace google
+DECLARE_bool(enable_data_block_fsync);
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/fs/fs_report.cc
----------------------------------------------------------------------
diff --git a/src/kudu/fs/fs_report.cc b/src/kudu/fs/fs_report.cc
index dd353c5..6c3dd6e 100644
--- a/src/kudu/fs/fs_report.cc
+++ b/src/kudu/fs/fs_report.cc
@@ -17,11 +17,13 @@
 #include "kudu/fs/fs_report.h"
 
 #include <iostream>
-#include <map>
 #include <string>
 #include <utility>
+#include <unordered_map>
 #include <vector>
 
+#include <glog/logging.h>
+
 #include "kudu/fs/fs.pb.h"
 #include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/substitute.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/fs/fs_report.h
----------------------------------------------------------------------
diff --git a/src/kudu/fs/fs_report.h b/src/kudu/fs/fs_report.h
index c656edd..1c72425 100644
--- a/src/kudu/fs/fs_report.h
+++ b/src/kudu/fs/fs_report.h
@@ -16,6 +16,7 @@
 // under the License.
 #pragma once
 
+#include <cstdint>
 #include <string>
 #include <vector>
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/fs/log_block_manager-test-util.cc
----------------------------------------------------------------------
diff --git a/src/kudu/fs/log_block_manager-test-util.cc b/src/kudu/fs/log_block_manager-test-util.cc
index 1a36fd5..8f6d984 100644
--- a/src/kudu/fs/log_block_manager-test-util.cc
+++ b/src/kudu/fs/log_block_manager-test-util.cc
@@ -18,24 +18,27 @@
 #include "kudu/fs/log_block_manager-test-util.h"
 
 #include <algorithm>
-#include <iterator>
+#include <cstring>
 #include <memory>
+#include <ostream>
 #include <string>
 #include <unordered_map>
+#include <utility>
 #include <vector>
 
 #include <gflags/gflags_declare.h>
 #include <glog/logging.h>
 
+#include "kudu/fs/block_id.h"
 #include "kudu/fs/fs.pb.h"
 #include "kudu/fs/log_block_manager.h"
 #include "kudu/gutil/integral_types.h"
-#include "kudu/gutil/map-util.h"
 #include "kudu/gutil/strings/strcat.h"
 #include "kudu/gutil/strings/strip.h"
 #include "kudu/util/env.h"
 #include "kudu/util/path_util.h"
 #include "kudu/util/pb_util.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
 
 DECLARE_uint64(log_container_max_size);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/fs/log_block_manager-test-util.h
----------------------------------------------------------------------
diff --git a/src/kudu/fs/log_block_manager-test-util.h b/src/kudu/fs/log_block_manager-test-util.h
index fa260eb..7cafbec 100644
--- a/src/kudu/fs/log_block_manager-test-util.h
+++ b/src/kudu/fs/log_block_manager-test-util.h
@@ -16,11 +16,11 @@
 // under the License.
 #pragma once
 
+#include <cstdint>
 #include <memory>
 #include <string>
 #include <vector>
 
-#include "kudu/fs/block_id.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/util/env.h"
 #include "kudu/util/oid_generator.h"
@@ -29,6 +29,8 @@
 
 namespace kudu {
 
+class BlockId;
+
 namespace pb_util {
 class WritablePBContainerFile;
 } // namespace pb_util

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/fs/log_block_manager-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/fs/log_block_manager-test.cc b/src/kudu/fs/log_block_manager-test.cc
index cf0cbb9..d022ff7 100644
--- a/src/kudu/fs/log_block_manager-test.cc
+++ b/src/kudu/fs/log_block_manager-test.cc
@@ -35,6 +35,7 @@
 #include "kudu/util/path_util.h"
 #include "kudu/util/pb_util.h"
 #include "kudu/util/random.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 using kudu::pb_util::ReadablePBContainerFile;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/fs/log_block_manager.cc
----------------------------------------------------------------------
diff --git a/src/kudu/fs/log_block_manager.cc b/src/kudu/fs/log_block_manager.cc
index c1bba27..273a18c 100644
--- a/src/kudu/fs/log_block_manager.cc
+++ b/src/kudu/fs/log_block_manager.cc
@@ -18,22 +18,37 @@
 #include "kudu/fs/log_block_manager.h"
 
 #include <algorithm>
+#include <cerrno>
+#include <cstddef>
+#include <cstdint>
 #include <map>
 #include <memory>
 #include <mutex>
+#include <numeric>
+#include <ostream>
+#include <set>
 #include <unordered_map>
 #include <unordered_set>
 #include <vector>
 
+#include <boost/optional/optional.hpp>
+#include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
+
 #include "kudu/fs/block_manager_metrics.h"
 #include "kudu/fs/block_manager_util.h"
 #include "kudu/fs/data_dirs.h"
 #include "kudu/fs/error_manager.h"
 #include "kudu/fs/fs.pb.h"
 #include "kudu/fs/fs_report.h"
+#include "kudu/gutil/bind.h"
+#include "kudu/gutil/bind_helpers.h"
 #include "kudu/gutil/callback.h"
 #include "kudu/gutil/integral_types.h"
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/numbers.h"
 #include "kudu/gutil/strings/strcat.h"
 #include "kudu/gutil/strings/strip.h"
@@ -47,21 +62,22 @@
 #include "kudu/util/file_cache.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/locks.h"
+#include "kudu/util/make_shared.h"
 #include "kudu/util/malloc.h"
 #include "kudu/util/metrics.h"
 #include "kudu/util/monotime.h"
-#include "kudu/util/mutex.h"
 #include "kudu/util/path_util.h"
 #include "kudu/util/pb_util.h"
+#include "kudu/util/random.h"
 #include "kudu/util/random_util.h"
 #include "kudu/util/scoped_cleanup.h"
-#include "kudu/util/stopwatch.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/test_util_prod.h"
-#include "kudu/util/threadpool.h"
 #include "kudu/util/trace.h"
 
-DECLARE_bool(enable_data_block_fsync);
 DECLARE_bool(block_manager_lock_dirs);
+DECLARE_bool(block_coalesce_close);
+DECLARE_bool(enable_data_block_fsync);
 
 // TODO(unknown): How should this be configured? Should provide some guidance.
 DEFINE_uint64(log_container_max_size, 10LU * 1024 * 1024 * 1024,

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/fs/log_block_manager.h
----------------------------------------------------------------------
diff --git a/src/kudu/fs/log_block_manager.h b/src/kudu/fs/log_block_manager.h
index 530c493..3c52602 100644
--- a/src/kudu/fs/log_block_manager.h
+++ b/src/kudu/fs/log_block_manager.h
@@ -17,6 +17,7 @@
 
 #pragma once
 
+#include <cstdint>
 #include <deque>
 #include <map>
 #include <memory>
@@ -26,31 +27,27 @@
 #include <utility>
 #include <vector>
 
-#include <boost/optional/optional.hpp>
-#include <gtest/gtest_prod.h>
+#include <boost/optional/optional.hpp>  // IWYU pragma: keep
 #include <sparsehash/sparse_hash_map>
+#include <gtest/gtest_prod.h>
 
 #include "kudu/fs/block_id.h"
 #include "kudu/fs/block_manager.h"
 #include "kudu/fs/data_dirs.h"
-#include "kudu/fs/fs.pb.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/util/atomic.h"
 #include "kudu/util/file_cache.h"
+#include "kudu/util/locks.h"
 #include "kudu/util/mem_tracker.h"
 #include "kudu/util/oid_generator.h"
-#include "kudu/util/random.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
+
+class BlockRecordPB;
 class Env;
-class MetricEntity;
 class RWFile;
-class ThreadPool;
-class FsManager;
-
-namespace pb_util {
-class WritablePBContainerFile;
-} // namespace pb_util
 
 namespace fs {
 class FsErrorManager;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/atomicops-internals-macosx.h
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/atomicops-internals-macosx.h b/src/kudu/gutil/atomicops-internals-macosx.h
index 15efaef..d141d1d 100644
--- a/src/kudu/gutil/atomicops-internals-macosx.h
+++ b/src/kudu/gutil/atomicops-internals-macosx.h
@@ -5,6 +5,7 @@
 // Implementation of atomic operations for Mac OS X.  This file should not
 // be included directly.  Clients should instead include
 // "base/atomicops.h".
+// IWYU pragma: private, include "kudu/gutil/atomicops.h"
 
 #ifndef BASE_AUXILIARY_ATOMICOPS_INTERNALS_MACOSX_H_
 #define BASE_AUXILIARY_ATOMICOPS_INTERNALS_MACOSX_H_

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/atomicops-internals-powerpc.h
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/atomicops-internals-powerpc.h b/src/kudu/gutil/atomicops-internals-powerpc.h
index 0e56475..18eaa1f 100644
--- a/src/kudu/gutil/atomicops-internals-powerpc.h
+++ b/src/kudu/gutil/atomicops-internals-powerpc.h
@@ -23,6 +23,7 @@
 // Implementation of atomic operations for PowerPC.  This file should not
 // be included directly.  Clients should instead include
 // "base/atomicops.h".
+// IWYU pragma: private, include "kudu/gutil/atomicops.h"
 
 // *** WARNING EXPERIMENTAL CODE ***
 // This is not tested and may contain bugs.  Until we have bootstrapped

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/atomicops-internals-tsan.h
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/atomicops-internals-tsan.h b/src/kudu/gutil/atomicops-internals-tsan.h
index be9c144..dea45b0 100644
--- a/src/kudu/gutil/atomicops-internals-tsan.h
+++ b/src/kudu/gutil/atomicops-internals-tsan.h
@@ -4,6 +4,7 @@
 
 // This file is an internal atomic implementation for compiler-based
 // ThreadSanitizer. Use base/atomicops.h instead.
+// IWYU pragma: private, include "kudu/gutil/atomicops.h"
 
 #ifndef BASE_ATOMICOPS_INTERNALS_TSAN_H_
 #define BASE_ATOMICOPS_INTERNALS_TSAN_H_

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/atomicops-internals-x86.cc
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/atomicops-internals-x86.cc b/src/kudu/gutil/atomicops-internals-x86.cc
index 541429e..92e1e58 100644
--- a/src/kudu/gutil/atomicops-internals-x86.cc
+++ b/src/kudu/gutil/atomicops-internals-x86.cc
@@ -28,7 +28,7 @@
 #include <string.h>
 
 #include <glog/logging.h>
-#include "kudu/gutil/logging-inl.h"
+
 #include "kudu/gutil/integral_types.h"
 
 // This file only makes sense with atomicops-internals-x86.h -- it

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/atomicops-internals-x86.h
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/atomicops-internals-x86.h b/src/kudu/gutil/atomicops-internals-x86.h
index 1d2a5c4..c209b78 100644
--- a/src/kudu/gutil/atomicops-internals-x86.h
+++ b/src/kudu/gutil/atomicops-internals-x86.h
@@ -19,15 +19,16 @@
 //
 // All Rights Reserved.
 //
-//
 // Implementation of atomic operations for x86.  This file should not
 // be included directly.  Clients should instead include
 // "base/atomicops.h".
+// IWYU pragma: private, include "kudu/gutil/atomicops.h"
 
 #ifndef GUTIL_ATOMICOPS_INTERNALS_X86_H_
 #define GUTIL_ATOMICOPS_INTERNALS_X86_H_
 
-#include <stdint.h>
+#include <cstdint>
+#include <ostream>
 
 #include <glog/logging.h>
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/atomicops.h
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/atomicops.h b/src/kudu/gutil/atomicops.h
index fa4c44c..c29a02f 100644
--- a/src/kudu/gutil/atomicops.h
+++ b/src/kudu/gutil/atomicops.h
@@ -51,7 +51,7 @@
 #ifndef THREAD_ATOMICOPS_H_
 #define THREAD_ATOMICOPS_H_
 
-#include <stdint.h>
+#include <cstdint>
 
 // ------------------------------------------------------------------------
 // Include the platform specific implementations of the types
@@ -71,19 +71,19 @@
 
 // ThreadSanitizer provides own implementation of atomicops.
 #if defined(THREAD_SANITIZER)
-#include "kudu/gutil/atomicops-internals-tsan.h"
+#include "kudu/gutil/atomicops-internals-tsan.h" // IWYU pragma: export
 #elif defined(__APPLE__)
-#include "kudu/gutil/atomicops-internals-macosx.h"
+#include "kudu/gutil/atomicops-internals-macosx.h" // IWYU pragma: export
 #elif defined(__GNUC__) && defined(ARMV6)
-#include "kudu/gutil/atomicops-internals-arm-v6plus.h"
+#include "kudu/gutil/atomicops-internals-arm-v6plus.h" // IWYU pragma: export
 #elif defined(ARMV3)
-#include "kudu/gutil/atomicops-internals-arm-generic.h"
+#include "kudu/gutil/atomicops-internals-arm-generic.h" // IWYU pragma: export
 #elif defined(__GNUC__) && (defined(__i386) || defined(__x86_64__))
-#include "kudu/gutil/atomicops-internals-x86.h"
+#include "kudu/gutil/atomicops-internals-x86.h" // IWYU pragma: export
 #elif defined(__GNUC__) && defined(ARCH_POWERPC64)
-#include "kudu/gutil/atomicops-internals-powerpc.h"
+#include "kudu/gutil/atomicops-internals-powerpc.h" // IWYU pragma: export
 #elif defined(OS_WINDOWS)
-#include "kudu/gutil/atomicops-internals-windows.h"
+#include "kudu/gutil/atomicops-internals-windows.h" // IWYU pragma: export
 #else
 #error You need to implement atomic operations for this architecture
 #endif

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/bits.h
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/bits.h b/src/kudu/gutil/bits.h
index 639186e..b4a4327 100644
--- a/src/kudu/gutil/bits.h
+++ b/src/kudu/gutil/bits.h
@@ -2,11 +2,7 @@
 //
 // A collection of useful (static) bit-twiddling functions.
 
-#include <glog/logging.h>
-
-#include "kudu/gutil/basictypes.h"
 #include "kudu/gutil/integral_types.h"
-#include "kudu/gutil/logging-inl.h"
 #include "kudu/gutil/macros.h"
 
 #ifndef _BITS_H_

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/callback_internal.cc
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/callback_internal.cc b/src/kudu/gutil/callback_internal.cc
index 05b9e8f..1ed1af3 100644
--- a/src/kudu/gutil/callback_internal.cc
+++ b/src/kudu/gutil/callback_internal.cc
@@ -4,6 +4,8 @@
 
 #include "kudu/gutil/callback_internal.h"
 
+#include <glog/logging.h>
+
 namespace kudu {
 namespace internal {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/callback_internal.h
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/callback_internal.h b/src/kudu/gutil/callback_internal.h
index 47b5655..f409c87 100644
--- a/src/kudu/gutil/callback_internal.h
+++ b/src/kudu/gutil/callback_internal.h
@@ -8,13 +8,11 @@
 #ifndef KUDU_GUTIL_CALLBACK_INTERNAL_H_
 #define KUDU_GUTIL_CALLBACK_INTERNAL_H_
 
-#include <stddef.h>
+#include <cstddef>
 
-#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/ref_counted.h"
-
-template <typename T>
-class ScopedVector;
+#include "kudu/gutil/template_util.h"
+#include "kudu/gutil/type_traits.h"
 
 namespace kudu {
 namespace internal {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/cpu.cc
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/cpu.cc b/src/kudu/gutil/cpu.cc
index f4c3885a..cd2b16c 100644
--- a/src/kudu/gutil/cpu.cc
+++ b/src/kudu/gutil/cpu.cc
@@ -4,13 +4,10 @@
 
 #include "kudu/gutil/cpu.h"
 
-#include <stdlib.h>
-#include <string.h>
-
+#include <cstring>
 #include <algorithm>
 
-#include "kudu/gutil/basictypes.h"
-#include "kudu/gutil/strings/stringpiece.h"
+#include "kudu/gutil/integral_types.h"
 
 #if defined(__x86_64__)
 #if defined(_MSC_VER)

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/hash/builtin_type_hash.h
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/hash/builtin_type_hash.h b/src/kudu/gutil/hash/builtin_type_hash.h
index c979eb2..0e8a183 100644
--- a/src/kudu/gutil/hash/builtin_type_hash.h
+++ b/src/kudu/gutil/hash/builtin_type_hash.h
@@ -7,8 +7,8 @@
 #ifndef UTIL_HASH_BUILTIN_TYPE_HASH_H_
 #define UTIL_HASH_BUILTIN_TYPE_HASH_H_
 
-#include <stddef.h>
-#include <stdint.h>
+#include <cstddef>
+#include <cstdint>
 
 #include "kudu/gutil/casts.h"
 #include "kudu/gutil/integral_types.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/hash/city.cc
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/hash/city.cc b/src/kudu/gutil/hash/city.cc
index cc00ff7..e3ff7fc 100644
--- a/src/kudu/gutil/hash/city.cc
+++ b/src/kudu/gutil/hash/city.cc
@@ -18,22 +18,26 @@
 
 #include <sys/types.h>
 #include <algorithm>
+#include <iterator>
+#include <utility>
+#include <vector>
+
+#include <glog/logging.h>
+
+#include "kudu/gutil/endian.h"
+#include "kudu/gutil/int128.h"
+#include "kudu/gutil/integral_types.h"
+#include "kudu/gutil/hash/hash128to64.h"
+#include "kudu/gutil/port.h"
+
 using std::copy;
+using std::make_pair;
 using std::max;
 using std::min;
+using std::pair;
 using std::reverse;
 using std::sort;
 using std::swap;
-#include <utility>
-using std::make_pair;
-using std::pair;
-
-#include "kudu/gutil/int128.h"
-#include "kudu/gutil/integral_types.h"
-#include <glog/logging.h>
-#include "kudu/gutil/logging-inl.h"
-#include "kudu/gutil/hash/hash128to64.h"
-#include "kudu/gutil/endian.h"
 
 namespace util_hash {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/hash/hash.cc
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/hash/hash.cc b/src/kudu/gutil/hash/hash.cc
index 24fc310..c708da3 100644
--- a/src/kudu/gutil/hash/hash.cc
+++ b/src/kudu/gutil/hash/hash.cc
@@ -9,9 +9,9 @@
 
 #include "kudu/gutil/hash/hash.h"
 
-#include "kudu/gutil/integral_types.h"
 #include <glog/logging.h>
-#include "kudu/gutil/logging-inl.h"
+
+#include "kudu/gutil/integral_types.h"
 #include "kudu/gutil/hash/jenkins.h"
 #include "kudu/gutil/hash/jenkins_lookup2.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/hash/hash.h
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/hash/hash.h b/src/kudu/gutil/hash/hash.h
index 299a8e2..6d4c6fc 100644
--- a/src/kudu/gutil/hash/hash.h
+++ b/src/kudu/gutil/hash/hash.h
@@ -73,21 +73,15 @@
 #ifndef UTIL_HASH_HASH_H_
 #define UTIL_HASH_HASH_H_
 
-#include <stddef.h>
-#include <stdint.h>     // for uintptr_t
-#include <string.h>
-#include <algorithm>
-#include <unordered_map>
-#include <unordered_set>
+#include <cstddef>
+#include <cstring>
 #include <string>
+#include <unordered_map>
 #include <utility>
 
-#include "kudu/gutil/casts.h"
 #include "kudu/gutil/int128.h"
 #include "kudu/gutil/integral_types.h"
-#include "kudu/gutil/macros.h"
-#include "kudu/gutil/port.h"
-#include "kudu/gutil/hash/city.h"
+#include "kudu/gutil/hash/builtin_type_hash.h"
 #include "kudu/gutil/hash/hash128to64.h"
 #include "kudu/gutil/hash/jenkins.h"
 #include "kudu/gutil/hash/jenkins_lookup2.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/hash/jenkins.cc
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/hash/jenkins.cc b/src/kudu/gutil/hash/jenkins.cc
index 70a7e30..2c5e580 100644
--- a/src/kudu/gutil/hash/jenkins.cc
+++ b/src/kudu/gutil/hash/jenkins.cc
@@ -18,9 +18,9 @@
 
 #include "kudu/gutil/hash/jenkins.h"
 
-#include "kudu/gutil/integral_types.h"
 #include <glog/logging.h>
-#include "kudu/gutil/logging-inl.h"
+
+#include "kudu/gutil/integral_types.h"
 #include "kudu/gutil/hash/jenkins_lookup2.h"
 
 static inline uint32 char2unsigned(char c) {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/mathlimits.h
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/mathlimits.h b/src/kudu/gutil/mathlimits.h
index 9d69733..6b09aa0 100644
--- a/src/kudu/gutil/mathlimits.h
+++ b/src/kudu/gutil/mathlimits.h
@@ -31,8 +31,6 @@
 #ifndef UTIL_MATH_MATHLIMITS_H__
 #define UTIL_MATH_MATHLIMITS_H__
 
-#include <math.h>
-#include <string.h>
 #include <cfloat>
 #include <cmath>
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/once.cc
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/once.cc b/src/kudu/gutil/once.cc
index 1b97f8f..34787c6 100644
--- a/src/kudu/gutil/once.cc
+++ b/src/kudu/gutil/once.cc
@@ -1,9 +1,14 @@
 // Copyright 2008 Google Inc. All Rights Reserved.
 
+#include <ostream>
+
 #include <glog/logging.h>
+
+#include "kudu/gutil/atomicops.h"
+#include "kudu/gutil/dynamic_annotations.h"
+#include "kudu/gutil/integral_types.h"
 #include "kudu/gutil/logging-inl.h"
 #include "kudu/gutil/once.h"
-#include "kudu/gutil/dynamic_annotations.h"
 #include "kudu/gutil/spinlock_internal.h"
 
 // All modifications to a GoogleOnceType occur inside GoogleOnceInternalInit.

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/once.h
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/once.h b/src/kudu/gutil/once.h
index ff161c5..460a2ec 100644
--- a/src/kudu/gutil/once.h
+++ b/src/kudu/gutil/once.h
@@ -25,7 +25,6 @@
 #define BASE_ONCE_H_
 
 #include "kudu/gutil/atomicops.h"
-#include "kudu/gutil/integral_types.h"
 #include "kudu/gutil/dynamic_annotations.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/port.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/ref_counted.cc
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/ref_counted.cc b/src/kudu/gutil/ref_counted.cc
index a15a1e2..500752e 100644
--- a/src/kudu/gutil/ref_counted.cc
+++ b/src/kudu/gutil/ref_counted.cc
@@ -2,10 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "kudu/gutil/ref_counted.h"
+#include <ostream>
 
 #include <glog/logging.h>
-#include "kudu/gutil/threading/thread_collision_warner.h"
+
+#include "kudu/gutil/atomic_refcount.h"
+#include "kudu/gutil/ref_counted.h"
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/ref_counted.h
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/ref_counted.h b/src/kudu/gutil/ref_counted.h
index 8b6a553..66cdac9 100644
--- a/src/kudu/gutil/ref_counted.h
+++ b/src/kudu/gutil/ref_counted.h
@@ -6,9 +6,10 @@
 #define BASE_MEMORY_REF_COUNTED_H_
 
 #include <cassert>
+#include <cstddef>
 
-#include "kudu/gutil/atomic_refcount.h"
-#include "kudu/gutil/port.h"
+#include "kudu/gutil/atomicops.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/threading/thread_collision_warner.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/ref_counted_memory.cc
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/ref_counted_memory.cc b/src/kudu/gutil/ref_counted_memory.cc
index 1d695d9..babd0ff 100644
--- a/src/kudu/gutil/ref_counted_memory.cc
+++ b/src/kudu/gutil/ref_counted_memory.cc
@@ -4,7 +4,9 @@
 
 #include "kudu/gutil/ref_counted_memory.h"
 
-#include <stdlib.h>
+#include <algorithm>
+#include <cstdlib>
+#include <cstring>
 
 #include <glog/logging.h>
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/ref_counted_memory.h
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/ref_counted_memory.h b/src/kudu/gutil/ref_counted_memory.h
index 550a142..d180db9 100644
--- a/src/kudu/gutil/ref_counted_memory.h
+++ b/src/kudu/gutil/ref_counted_memory.h
@@ -5,12 +5,15 @@
 #ifndef KUDU_GUTIL_REF_COUNTED_MEMORY_H_
 #define KUDU_GUTIL_REF_COUNTED_MEMORY_H_
 
+#include <cstddef>
+
 #include <string>
 #include <vector>
 
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/port.h"
+#include "kudu/gutil/threading/thread_collision_warner.h"
 
 #ifndef BASE_EXPORT
 #define BASE_EXPORT

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/spinlock.cc
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/spinlock.cc b/src/kudu/gutil/spinlock.cc
index 63b8513..9d1256a 100644
--- a/src/kudu/gutil/spinlock.cc
+++ b/src/kudu/gutil/spinlock.cc
@@ -33,10 +33,10 @@
  */
 
 #include "kudu/gutil/spinlock.h"
-#include "kudu/gutil/synchronization_profiling.h"
 #include "kudu/gutil/spinlock_internal.h"
-#include "kudu/gutil/walltime.h"
+#include "kudu/gutil/synchronization_profiling.h"
 #include "kudu/gutil/sysinfo.h"   /* for NumCPUs() */
+#include "kudu/gutil/walltime.h"
 
 namespace base {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/spinlock.h
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/spinlock.h b/src/kudu/gutil/spinlock.h
index fcd6287..eced3ef 100644
--- a/src/kudu/gutil/spinlock.h
+++ b/src/kudu/gutil/spinlock.h
@@ -40,8 +40,9 @@
 #define BASE_SPINLOCK_H_
 
 #include "kudu/gutil/atomicops.h"
-#include "kudu/gutil/basictypes.h"
 #include "kudu/gutil/dynamic_annotations.h"
+#include "kudu/gutil/integral_types.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/thread_annotations.h"
 
 // This isn't originally in the base:: namespace in tcmalloc,

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/spinlock_internal.h
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/spinlock_internal.h b/src/kudu/gutil/spinlock_internal.h
index c235893..55a4eba 100644
--- a/src/kudu/gutil/spinlock_internal.h
+++ b/src/kudu/gutil/spinlock_internal.h
@@ -36,8 +36,8 @@
 #ifndef BASE_SPINLOCK_INTERNAL_H_
 #define BASE_SPINLOCK_INTERNAL_H_
 
-#include "kudu/gutil/basictypes.h"
 #include "kudu/gutil/atomicops.h"
+#include "kudu/gutil/integral_types.h"
 
 namespace base {
 namespace internal {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/gutil/stringprintf.cc
----------------------------------------------------------------------
diff --git a/src/kudu/gutil/stringprintf.cc b/src/kudu/gutil/stringprintf.cc
index 45a0cde..f083f2b 100644
--- a/src/kudu/gutil/stringprintf.cc
+++ b/src/kudu/gutil/stringprintf.cc
@@ -2,12 +2,13 @@
 
 #include "kudu/gutil/stringprintf.h"
 
-#include <errno.h>
-#include <stdarg.h> // For va_list and related operations
-#include <stdio.h> // MSVC requires this for _vsnprintf
+#include <cstdio> // MSVC requires this for _vsnprintf
+#include <memory>
+#include <ostream>
 #include <vector>
+
 #include <glog/logging.h>
-#include "kudu/gutil/logging-inl.h"
+
 #include "kudu/gutil/macros.h"
 
 using std::string;


[14/14] kudu git commit: [iwyu] update on the internal and boost mappings

Posted by al...@apache.org.
[iwyu] update on the internal and boost mappings

Updated the internal and boost mappings to avoid some bogus suggestions
generated by the include-what-you-use tool.  Also, shortened the list
of files where IWYU suggestions are 'muted'.

The IWYU patch is updated to deal with int{16,32,64}_t-related quirks.
For some reason, IWYU suggests to use boost headers instead of std
library headers in some .cc files where both <cstdint> and
boost/function.hpp (or boost/optional/optional.hpp) are present.

Change-Id: I9a20616093f362a5b5ae30627b6121313b50efa2
Reviewed-on: http://gerrit.cloudera.org:8080/7696
Reviewed-by: Adar Dembo <ad...@cloudera.com>
Tested-by: Kudu Jenkins


Project: http://git-wip-us.apache.org/repos/asf/kudu/repo
Commit: http://git-wip-us.apache.org/repos/asf/kudu/commit/1d560664
Tree: http://git-wip-us.apache.org/repos/asf/kudu/tree/1d560664
Diff: http://git-wip-us.apache.org/repos/asf/kudu/diff/1d560664

Branch: refs/heads/master
Commit: 1d56066454efd0da30b58c514f08c03cbb38f8ee
Parents: 0f6dcf8
Author: Alexey Serbin <as...@cloudera.com>
Authored: Wed Aug 16 13:55:57 2017 -0700
Committer: Alexey Serbin <as...@cloudera.com>
Committed: Mon Aug 21 20:54:08 2017 +0000

----------------------------------------------------------------------
 build-support/iwyu/iwyu-filter.awk              | 214 +------------------
 build-support/iwyu/mappings/boost-extra.imp     |  23 ++
 thirdparty/download-thirdparty.sh               |   2 +-
 .../patches/llvm-iwyu-include-picker.patch      |  16 +-
 4 files changed, 44 insertions(+), 211 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kudu/blob/1d560664/build-support/iwyu/iwyu-filter.awk
----------------------------------------------------------------------
diff --git a/build-support/iwyu/iwyu-filter.awk b/build-support/iwyu/iwyu-filter.awk
index ea3f5f2..e442113 100644
--- a/build-support/iwyu/iwyu-filter.awk
+++ b/build-support/iwyu/iwyu-filter.awk
@@ -70,287 +70,83 @@ BEGIN {
   # ignored. Eventually, this list should become empty as soon as all the valid
   # suggestions are addressed and invalid ones are taken care either by proper
   # IWYU pragmas or adding special mappings (e.g. like boost mappings).
-  muted["kudu/benchmarks/tpch/rpc_line_item_dao-test.cc"]
-  muted["kudu/cfile/block_cache-test.cc"]
-  muted["kudu/cfile/bloomfile-test.cc"]
-  muted["kudu/cfile/cfile-test.cc"]
   muted["kudu/cfile/cfile_writer.h"]
-  muted["kudu/cfile/encoding-test.cc"]
-  muted["kudu/cfile/index-test.cc"]
   muted["kudu/cfile/mt-bloomfile-test.cc"]
-  muted["kudu/client/client-internal.cc"]
   muted["kudu/client/client-internal.h"]
   muted["kudu/client/client-test.cc"]
-  muted["kudu/client/meta_cache.h"]
-  muted["kudu/client/predicate-test.cc"]
-  muted["kudu/client/scan_token-test.cc"]
   muted["kudu/clock/hybrid_clock-test.cc"]
   muted["kudu/clock/logical_clock-test.cc"]
   muted["kudu/codegen/codegen-test.cc"]
-  muted["kudu/common/column_predicate-test.cc"]
   muted["kudu/common/encoded_key-test.cc"]
-  muted["kudu/common/generic_iterators-test.cc"]
-  muted["kudu/common/key_util-test.cc"]
-  muted["kudu/common/partial_row-test.cc"]
   muted["kudu/common/partition-test.cc"]
   muted["kudu/common/partition_pruner-test.cc"]
-  muted["kudu/common/row_changelist-test.cc"]
-  muted["kudu/common/row_operations-test.cc"]
-  muted["kudu/common/scan_spec.cc"]
-  muted["kudu/common/scan_spec-test.cc"]
-  muted["kudu/common/schema-test.cc"]
-  muted["kudu/common/schema.cc"]
   muted["kudu/common/schema.h"]
-  muted["kudu/common/types-test.cc"]
-  muted["kudu/common/wire_protocol-test.cc"]
-  muted["kudu/common/wire_protocol.cc"]
-  muted["kudu/common/wire_protocol.h"]
   muted["kudu/consensus/consensus_meta-test.cc"]
   muted["kudu/consensus/consensus_meta_manager-stress-test.cc"]
-  muted["kudu/consensus/consensus_meta_manager-test.cc"]
-  muted["kudu/consensus/consensus_peers-test.cc"]
-  muted["kudu/consensus/consensus_queue-test.cc"]
-  muted["kudu/consensus/consensus_queue.cc"]
-  muted["kudu/consensus/leader_election-test.cc"]
-  muted["kudu/consensus/log-test.cc"]
-  muted["kudu/consensus/log_anchor_registry-test.cc"]
-  muted["kudu/consensus/log_cache-test.cc"]
-  muted["kudu/consensus/log_index-test.cc"]
-  muted["kudu/consensus/mt-log-test.cc"]
   muted["kudu/consensus/raft_consensus.h"]
   muted["kudu/consensus/raft_consensus_quorum-test.cc"]
-  muted["kudu/consensus/time_manager-test.cc"]
-  muted["kudu/experiments/merge-test.cc"]
   muted["kudu/experiments/rwlock-perf.cc"]
   muted["kudu/fs/block_manager-stress-test.cc"]
-  muted["kudu/fs/block_manager-test.cc"]
   muted["kudu/fs/block_manager_util-test.cc"]
   muted["kudu/fs/data_dirs-test.cc"]
   muted["kudu/fs/fs_manager-test.cc"]
   muted["kudu/fs/log_block_manager-test.cc"]
-  muted["kudu/fs/log_block_manager.cc"]
-  muted["kudu/fs/log_block_manager.h"]
-  muted["kudu/integration-tests/all_types-itest.cc"]
-  muted["kudu/integration-tests/alter_table-randomized-test.cc"]
-  muted["kudu/integration-tests/alter_table-test.cc"]
-  muted["kudu/integration-tests/authn_token_expire-itest.cc"]
-  muted["kudu/integration-tests/catalog_manager_tsk-itest.cc"]
-  muted["kudu/integration-tests/client-negotiation-failover-itest.cc"]
-  muted["kudu/integration-tests/client-stress-test.cc"]
-  muted["kudu/integration-tests/client_failover-itest.cc"]
-  muted["kudu/integration-tests/cluster_itest_util.cc"]
-  muted["kudu/integration-tests/cluster_verifier.cc"]
-  muted["kudu/integration-tests/consistency-itest.cc"]
-  muted["kudu/integration-tests/create-table-itest.cc"]
-  muted["kudu/integration-tests/create-table-stress-test.cc"]
-  muted["kudu/integration-tests/delete_table-itest.cc"]
-  muted["kudu/integration-tests/delete_tablet-itest.cc"]
-  muted["kudu/integration-tests/dense_node-itest.cc"]
-  muted["kudu/integration-tests/disk_reservation-itest.cc"]
-  muted["kudu/integration-tests/exactly_once_writes-itest.cc"]
-  muted["kudu/integration-tests/external_mini_cluster-itest-base.cc"]
+  muted["kudu/gutil/atomicops-internals-x86.cc"]
   muted["kudu/integration-tests/external_mini_cluster-itest-base.h"]
-  muted["kudu/integration-tests/external_mini_cluster-test.cc"]
-  muted["kudu/integration-tests/external_mini_cluster.cc"]
-  muted["kudu/integration-tests/external_mini_cluster.h"]
   muted["kudu/integration-tests/external_mini_cluster_fs_inspector.cc"]
-  muted["kudu/integration-tests/flex_partitioning-itest.cc"]
-  muted["kudu/integration-tests/full_stack-insert-scan-test.cc"]
-  muted["kudu/integration-tests/fuzz-itest.cc"]
-  muted["kudu/integration-tests/internal_mini_cluster-itest-base.cc"]
   muted["kudu/integration-tests/internal_mini_cluster-itest-base.h"]
   muted["kudu/integration-tests/internal_mini_cluster.h"]
-  muted["kudu/integration-tests/linked_list-test.cc"]
-  muted["kudu/integration-tests/log-rolling-itest.cc"]
   muted["kudu/integration-tests/log_verifier.cc"]
-  muted["kudu/integration-tests/master-stress-test.cc"]
-  muted["kudu/integration-tests/master_cert_authority-itest.cc"]
-  muted["kudu/integration-tests/master_failover-itest.cc"]
-  muted["kudu/integration-tests/master_migration-itest.cc"]
-  muted["kudu/integration-tests/master_replication-itest.cc"]
-  muted["kudu/integration-tests/minidump_generation-itest.cc"]
-  muted["kudu/integration-tests/multidir_cluster-itest.cc"]
-  muted["kudu/integration-tests/open-readonly-fs-itest.cc"]
-  muted["kudu/integration-tests/raft_consensus-itest.cc"]
-  muted["kudu/integration-tests/registration-test.cc"]
-  muted["kudu/integration-tests/security-faults-itest.cc"]
-  muted["kudu/integration-tests/security-itest.cc"]
-  muted["kudu/integration-tests/security-unknown-tsk-itest.cc"]
-  muted["kudu/integration-tests/table_locations-itest.cc"]
-  muted["kudu/integration-tests/tablet_copy-itest.cc"]
-  muted["kudu/integration-tests/tablet_copy_client_session-itest.cc"]
-  muted["kudu/integration-tests/tablet_history_gc-itest.cc"]
-  muted["kudu/integration-tests/tablet_replacement-itest.cc"]
-  muted["kudu/integration-tests/test_workload.cc"]
-  muted["kudu/integration-tests/test_workload.h"]
   muted["kudu/integration-tests/token_signer-itest.cc"]
-  muted["kudu/integration-tests/ts_recovery-itest.cc"]
-  muted["kudu/integration-tests/ts_tablet_manager-itest.cc"]
-  muted["kudu/integration-tests/update_scan_delta_compact-test.cc"]
-  muted["kudu/integration-tests/version_migration-test.cc"]
-  muted["kudu/integration-tests/webserver-stress-itest.cc"]
-  muted["kudu/integration-tests/write_throttling-itest.cc"]
-  muted["kudu/master/catalog_manager-test.cc"]
-  muted["kudu/master/catalog_manager.cc"]
-  muted["kudu/master/master-test.cc"]
-  muted["kudu/master/mini_master-test.cc"]
-  muted["kudu/master/sys_catalog-test.cc"]
-  muted["kudu/rpc/client_negotiation.cc"]
-  muted["kudu/rpc/messenger.h"]
   muted["kudu/rpc/negotiation-test.cc"]
   muted["kudu/rpc/negotiation.cc"]
-  muted["kudu/rpc/protoc-gen-krpc.cc"]
   muted["kudu/rpc/reactor.cc"]
   muted["kudu/rpc/reactor.h"]
-  muted["kudu/rpc/remote_user.cc"]
-  muted["kudu/rpc/request_tracker-test.cc"]
-  muted["kudu/rpc/result_tracker.h"]
   muted["kudu/rpc/rpc-test.cc"]
-  muted["kudu/rpc/rpc_sidecar.cc"]
   muted["kudu/rpc/rpc_sidecar.h"]
   muted["kudu/rpc/rpc_stub-test.cc"]
-  muted["kudu/rpc/server_negotiation.cc"]
-  muted["kudu/rpc/service_if.h"]
-  muted["kudu/rpc/service_pool.cc"]
-  muted["kudu/rpc/service_queue-test.cc"]
-  muted["kudu/rpc/service_queue.h"]
   muted["kudu/security/ca/cert_management-test.cc"]
   muted["kudu/security/ca/cert_management.cc"]
   muted["kudu/security/ca/cert_management.h"]
   muted["kudu/security/cert-test.cc"]
   muted["kudu/security/cert.cc"]
+  muted["kudu/security/cert.h"]
   muted["kudu/security/crypto-test.cc"]
+  muted["kudu/security/openssl_util.cc"]
   muted["kudu/security/openssl_util.h"]
-  muted["kudu/security/test/mini_kdc-test.cc"]
   muted["kudu/security/tls_context.cc"]
-  muted["kudu/security/tls_context.h"]
   muted["kudu/security/tls_handshake-test.cc"]
   muted["kudu/security/tls_handshake.cc"]
+  muted["kudu/security/tls_socket.h"]
   muted["kudu/security/token-test.cc"]
+  muted["kudu/security/x509_check_host.cc"]
   muted["kudu/server/default-path-handlers.cc"]
   muted["kudu/server/rpc_server-test.cc"]
-  muted["kudu/server/server_base.cc"]
-  muted["kudu/server/webserver-test.cc"]
   muted["kudu/server/webserver.cc"]
   muted["kudu/tablet/all_types-scan-correctness-test.cc"]
-  muted["kudu/tablet/cbtree-test.cc"]
-  muted["kudu/tablet/cfile_set-test.cc"]
-  muted["kudu/tablet/cfile_set.cc"]
-  muted["kudu/tablet/compaction-test.cc"]
-  muted["kudu/tablet/compaction_policy-test.cc"]
-  muted["kudu/tablet/composite-pushdown-test.cc"]
-  muted["kudu/tablet/delta_compaction-test.cc"]
-  muted["kudu/tablet/deltafile-test.cc"]
-  muted["kudu/tablet/deltamemstore-test.cc"]
-  muted["kudu/tablet/diskrowset-test.cc"]
   muted["kudu/tablet/diskrowset.cc"]
-  muted["kudu/tablet/lock_manager-test.cc"]
-  muted["kudu/tablet/major_delta_compaction-test.cc"]
-  muted["kudu/tablet/memrowset-test.cc"]
   muted["kudu/tablet/memrowset.h"]
-  muted["kudu/tablet/mt-diskrowset-test.cc"]
   muted["kudu/tablet/mt-rowset_delta_compaction-test.cc"]
   muted["kudu/tablet/mt-tablet-test.cc"]
-  muted["kudu/tablet/mvcc-test.cc"]
-  muted["kudu/tablet/rowset_tree-test.cc"]
-  muted["kudu/tablet/tablet-decoder-eval-test.cc"]
-  muted["kudu/tablet/tablet-pushdown-test.cc"]
-  muted["kudu/tablet/tablet-schema-test.cc"]
-  muted["kudu/tablet/tablet-test.cc"]
   muted["kudu/tablet/tablet.cc"]
-  muted["kudu/tablet/tablet.h"]
-  muted["kudu/tablet/tablet_bootstrap-test.cc"]
   muted["kudu/tablet/tablet_history_gc-test.cc"]
-  muted["kudu/tablet/tablet_metadata-test.cc"]
-  muted["kudu/tablet/tablet_mm_ops-test.cc"]
-  muted["kudu/tablet/tablet_random_access-test.cc"]
-  muted["kudu/tablet/tablet_replica-test.cc"]
-  muted["kudu/tablet/tablet_throttle-test.cc"]
   muted["kudu/tablet/transactions/transaction_tracker-test.cc"]
-  muted["kudu/tools/ksck-test.cc"]
-  muted["kudu/tools/ksck.cc"]
-  muted["kudu/tools/ksck.h"]
-  muted["kudu/tools/ksck_remote-test.cc"]
-  muted["kudu/tools/ksck_remote.cc"]
-  muted["kudu/tools/kudu-admin-test.cc"]
-  muted["kudu/tools/kudu-tool-test.cc"]
-  muted["kudu/tools/kudu-ts-cli-test.cc"]
-  muted["kudu/tools/tool_action-test.cc"]
   muted["kudu/tools/tool_action.cc"]
   muted["kudu/tools/tool_action_local_replica.cc"]
   muted["kudu/tools/tool_action_master.cc"]
-  muted["kudu/tools/tool_action_pbc.cc"]
-  muted["kudu/tools/tool_action_perf.cc"]
-  muted["kudu/tools/tool_action_remote_replica.cc"]
-  muted["kudu/tools/tool_action_table.cc"]
   muted["kudu/tools/tool_action_tablet.cc"]
   muted["kudu/tools/tool_action_tserver.cc"]
-  muted["kudu/tools/tool_action_wal.cc"]
-  muted["kudu/tools/tool_main.cc"]
-  muted["kudu/tserver/heartbeater.cc"]
-  muted["kudu/tserver/mini_tablet_server-test.cc"]
-  muted["kudu/tserver/scanners-test.cc"]
-  muted["kudu/tserver/tablet_copy_client-test.cc"]
   muted["kudu/tserver/tablet_copy_service-test.cc"]
-  muted["kudu/tserver/tablet_copy_source_session-test.cc"]
-  muted["kudu/tserver/tablet_server-stress-test.cc"]
-  muted["kudu/tserver/tablet_server-test.cc"]
-  muted["kudu/tserver/tablet_service.cc"]
-  muted["kudu/tserver/ts_tablet_manager-test.cc"]
-  muted["kudu/twitter-demo/ingest_firehose.cc"]
-  muted["kudu/twitter-demo/parser-test.cc"]
-  muted["kudu/util/atomic-test.cc"]
   muted["kudu/util/bit-util-test.cc"]
-  muted["kudu/util/bitmap-test.cc"]
-  muted["kudu/util/blocking_queue-test.cc"]
-  muted["kudu/util/bloom_filter-test.cc"]
-  muted["kudu/util/cache-test.cc"]
   muted["kudu/util/compression/compression-test.cc"]
-  muted["kudu/util/crc-test.cc"]
-  muted["kudu/util/easy_json-test.cc"]
-  muted["kudu/util/env-test.cc"]
   muted["kudu/util/env_util-test.cc"]
   muted["kudu/util/failure_detector-test.cc"]
-  muted["kudu/util/faststring-test.cc"]
   muted["kudu/util/file_cache-stress-test.cc"]
-  muted["kudu/util/file_cache-test.cc"]
-  muted["kudu/util/flag_tags-test.cc"]
-  muted["kudu/util/flag_validators-test.cc"]
-  muted["kudu/util/flags-test.cc"]
   muted["kudu/util/group_varint-test.cc"]
-  muted["kudu/util/inline_slice-test.cc"]
-  muted["kudu/util/interval_tree-test.cc"]
-  muted["kudu/util/jsonreader-test.cc"]
-  muted["kudu/util/jsonwriter-test.cc"]
-  muted["kudu/util/knapsack_solver-test.cc"]
-  muted["kudu/util/logging-test.cc"]
-  muted["kudu/util/maintenance_manager-test.cc"]
-  muted["kudu/util/mem_tracker-test.cc"]
-  muted["kudu/util/memory/arena-test.cc"]
-  muted["kudu/util/metrics-test.cc"]
-  muted["kudu/util/minidump-test.cc"]
   muted["kudu/util/minidump.cc"]
-  muted["kudu/util/mt-hdr_histogram-test.cc"]
   muted["kudu/util/mt-metrics-test.cc"]
-  muted["kudu/util/mt-threadlocal-test.cc"]
-  muted["kudu/util/net/net_util-test.cc"]
-  muted["kudu/util/object_pool-test.cc"]
-  muted["kudu/util/once-test.cc"]
-  muted["kudu/util/os-util-test.cc"]
-  muted["kudu/util/pb_util-test.cc"]
-  muted["kudu/util/process_memory-test.cc"]
   muted["kudu/util/process_memory.cc"]
-  muted["kudu/util/pstack_watcher-test.cc"]
-  muted["kudu/util/resettable_heartbeater-test.cc"]
   muted["kudu/util/rle-test.cc"]
-  muted["kudu/util/rolling_log-test.cc"]
-  muted["kudu/util/spinlock_profiling-test.cc"]
-  muted["kudu/util/stack_watchdog-test.cc"]
-  muted["kudu/util/subprocess-test.cc"]
-  muted["kudu/util/thread-test.cc"]
-  muted["kudu/util/threadpool-test.cc"]
-  muted["kudu/util/throttler-test.cc"]
-  muted["kudu/util/trace-test.cc"]
 }
 
 # mute all suggestions for the auto-generated files

http://git-wip-us.apache.org/repos/asf/kudu/blob/1d560664/build-support/iwyu/mappings/boost-extra.imp
----------------------------------------------------------------------
diff --git a/build-support/iwyu/mappings/boost-extra.imp b/build-support/iwyu/mappings/boost-extra.imp
new file mode 100644
index 0000000..aba1e41
--- /dev/null
+++ b/build-support/iwyu/mappings/boost-extra.imp
@@ -0,0 +1,23 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+[
+    { include: ["<boost/core/explicit_operator_bool.hpp>", private, "<boost/optional/optional.hpp>", public ] },
+    { include: ["<boost/cstdint.hpp>", private, "<cstdint>", public ] },
+    { include: ["<boost/none.hpp>", private, "<boost/optional/optional.hpp>", public ] },
+    { include: ["<boost/optional/detail/optional_relops.hpp>", private, "<boost/optional/optional.hpp>", public ] },
+    { include: ["<boost/optional/detail/optional_reference_spec.hpp>", private, "<boost/optional/optional.hpp>", public ] }
+]

http://git-wip-us.apache.org/repos/asf/kudu/blob/1d560664/thirdparty/download-thirdparty.sh
----------------------------------------------------------------------
diff --git a/thirdparty/download-thirdparty.sh b/thirdparty/download-thirdparty.sh
index 2c27ebb..3cba006 100755
--- a/thirdparty/download-thirdparty.sh
+++ b/thirdparty/download-thirdparty.sh
@@ -247,7 +247,7 @@ if [ ! -d $PYTHON_SOURCE ]; then
   fetch_and_expand python-${PYTHON_VERSION}.tar.gz
 fi
 
-LLVM_PATCHLEVEL=5
+LLVM_PATCHLEVEL=6
 delete_if_wrong_patchlevel $LLVM_SOURCE $LLVM_PATCHLEVEL
 if [ ! -d $LLVM_SOURCE ]; then
   fetch_and_expand llvm-${LLVM_VERSION}-iwyu-${IWYU_VERSION}.src.tar.gz

http://git-wip-us.apache.org/repos/asf/kudu/blob/1d560664/thirdparty/patches/llvm-iwyu-include-picker.patch
----------------------------------------------------------------------
diff --git a/thirdparty/patches/llvm-iwyu-include-picker.patch b/thirdparty/patches/llvm-iwyu-include-picker.patch
index 1a2d39a..664c975 100644
--- a/thirdparty/patches/llvm-iwyu-include-picker.patch
+++ b/thirdparty/patches/llvm-iwyu-include-picker.patch
@@ -1,6 +1,20 @@
 --- a/tools/clang/tools/include-what-you-use/iwyu_include_picker.cc 2017-08-07 16:41:03.193267222 -0700
 +++ b/tools/clang/tools/include-what-you-use/iwyu_include_picker.cc	2017-08-07 16:41:12.603327180 -0700
-@@ -288,6 +288,7 @@ const IncludeMapEntry libc_include_map[] = {
+@@ -123,6 +123,13 @@ const IncludeMapEntry libc_symbol_map[] = {
+   { "ino_t", kPrivate, "<sys/stat.h>", kPublic },
+   { "int8_t", kPrivate, "<sys/types.h>", kPublic },
+   { "int8_t", kPrivate, "<stdint.h>", kPublic },
++  { "uint8_t", kPrivate, "<stdint.h>", kPublic },
++  { "int16_t", kPrivate, "<stdint.h>", kPublic },
++  { "uint16_t", kPrivate, "<stdint.h>", kPublic },
++  { "int32_t", kPrivate, "<stdint.h>", kPublic },
++  { "uint32_t", kPrivate, "<stdint.h>", kPublic },
++  { "int64_t", kPrivate, "<stdint.h>", kPublic },
++  { "uint64_t", kPrivate, "<stdint.h>", kPublic },
+   { "intptr_t", kPrivate, "<stdint.h>", kPublic },
+   { "intptr_t", kPrivate, "<unistd.h>", kPublic },
+   { "key_t", kPrivate, "<sys/types.h>", kPublic },
+@@ -288,6 +295,7 @@ const IncludeMapEntry libc_include_map[] = {
    { "<bits/param.h>", kPrivate, "<sys/param.h>", kPublic },
    { "<bits/poll.h>", kPrivate, "<sys/poll.h>", kPrivate },
    { "<bits/poll2.h>", kPrivate, "<sys/poll.h>", kPrivate },


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

Posted by al...@apache.org.
http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/knapsack_solver-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/knapsack_solver-test.cc b/src/kudu/util/knapsack_solver-test.cc
index 00b04cd..9f717c4 100644
--- a/src/kudu/util/knapsack_solver-test.cc
+++ b/src/kudu/util/knapsack_solver-test.cc
@@ -15,13 +15,15 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <glog/logging.h>
-#include <gtest/gtest.h>
+#include <cstdlib>
+#include <memory>
 #include <string>
 #include <vector>
 
+#include <gtest/gtest.h>
+
 #include "kudu/util/knapsack_solver.h"
-#include "kudu/util/stopwatch.h"
+#include "kudu/util/stopwatch.h"  // IWYU pragma: keep
 #include "kudu/util/test_util.h"
 
 using std::string;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/locks.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/locks.cc b/src/kudu/util/locks.cc
index 2fe9661..380bee4 100644
--- a/src/kudu/util/locks.cc
+++ b/src/kudu/util/locks.cc
@@ -17,6 +17,7 @@
 
 #include "kudu/util/locks.h"
 
+#include "kudu/gutil/atomicops.h"
 #include "kudu/util/malloc.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/locks.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/locks.h b/src/kudu/util/locks.h
index f4ab4a7..51467b9 100644
--- a/src/kudu/util/locks.h
+++ b/src/kudu/util/locks.h
@@ -17,11 +17,14 @@
 #ifndef KUDU_UTIL_LOCKS_H
 #define KUDU_UTIL_LOCKS_H
 
-#include <algorithm>
-#include <glog/logging.h>
+#include <sched.h>
+
+#include <algorithm>  // IWYU pragma: keep
+#include <cstddef>
 #include <mutex>
 
-#include "kudu/gutil/atomicops.h"
+#include <glog/logging.h>
+
 #include "kudu/gutil/dynamic_annotations.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/port.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/logging-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/logging-test.cc b/src/kudu/util/logging-test.cc
index e3a0771..d9ba2ca 100644
--- a/src/kudu/util/logging-test.cc
+++ b/src/kudu/util/logging-test.cc
@@ -16,20 +16,24 @@
 // under the License.
 
 #include <atomic>
-#include <glog/logging.h>
-#include <gmock/gmock.h>
+#include <ctime>
+#include <ostream>
 #include <string>
 #include <thread>
 #include <vector>
 
+#include <glog/logging.h>
+#include <gmock/gmock-matchers.h>
+#include <gtest/gtest.h>
+
+#include "kudu/gutil/integral_types.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/async_logger.h"
 #include "kudu/util/barrier.h"
-#include "kudu/util/locks.h"
 #include "kudu/util/logging.h"
 #include "kudu/util/logging_test_util.h"
 #include "kudu/util/monotime.h"
-#include "kudu/util/stopwatch.h"
+#include "kudu/util/test_macros.h"  // IWYU pragma: keep
 #include "kudu/util/test_util.h"
 
 using std::string;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/logging.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/logging.cc b/src/kudu/util/logging.cc
index c62bfe7..64ada87 100644
--- a/src/kudu/util/logging.cc
+++ b/src/kudu/util/logging.cc
@@ -16,34 +16,36 @@
 // under the License.
 #include "kudu/util/logging.h"
 
-#include <stdio.h>
+#include <unistd.h>
 
 #include <algorithm>
+#include <cstdio>
+#include <cstdlib>
 #include <fstream>
-#include <iostream>
 #include <mutex>
-#include <sstream>
-#include <utility>
-#include <vector>
+#include <type_traits> // IWYU pragma: keep
 
-#include <boost/uuid/uuid.hpp>
-#include <boost/uuid/uuid_generators.hpp>
+#include <boost/uuid/random_generator.hpp>
 #include <boost/uuid/uuid_io.hpp>
+#include <gflags/gflags.h>
 #include <glog/logging.h>
 
-#include "kudu/gutil/callback.h"
+#include "kudu/gutil/callback.h"  // IWYU pragma: keep
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/spinlock.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/async_logger.h"
 #include "kudu/util/debug-util.h"
 #include "kudu/util/debug/leakcheck_disabler.h"
-#include "kudu/util/env.h"
 #include "kudu/util/env_util.h"
 #include "kudu/util/flag_tags.h"
+#include "kudu/util/logging_callback.h"
 #include "kudu/util/minidump.h"
 #include "kudu/util/signal.h"
 #include "kudu/util/status.h"
 
+struct tm;
+
 DEFINE_string(log_filename, "",
     "Prefix of log filename - "
     "full path is <log_dir>/<log_filename>.[INFO|WARN|ERROR|FATAL]");

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/logging.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/logging.h b/src/kudu/util/logging.h
index 682431e..bbef2d8 100644
--- a/src/kudu/util/logging.h
+++ b/src/kudu/util/logging.h
@@ -17,15 +17,16 @@
 #ifndef KUDU_UTIL_LOGGING_H
 #define KUDU_UTIL_LOGGING_H
 
+#include <cstdint>
+#include <iosfwd>
 #include <string>
-#include <gflags/gflags_declare.h>
+
 #include <glog/logging.h>
 
 #include "kudu/gutil/atomicops.h"
 #include "kudu/gutil/dynamic_annotations.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/walltime.h"
-#include "kudu/util/flags.h"
 #include "kudu/util/logging_callback.h"
 #include "kudu/util/status.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/maintenance_manager-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/maintenance_manager-test.cc b/src/kudu/util/maintenance_manager-test.cc
index 9e9654e..7cc6398 100644
--- a/src/kudu/util/maintenance_manager-test.cc
+++ b/src/kudu/util/maintenance_manager-test.cc
@@ -16,17 +16,27 @@
 // under the License.
 
 #include <atomic>
+#include <cstdint>
 #include <memory>
 #include <mutex>
+#include <ostream>
+#include <string>
 #include <vector>
 
-#include <gflags/gflags.h>
+#include <boost/bind.hpp> // IWYU pragma: keep
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
 #include <gtest/gtest.h>
 
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/maintenance_manager.h"
-#include "kudu/util/mem_tracker.h"
+#include "kudu/util/maintenance_manager.pb.h"
 #include "kudu/util/metrics.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/mutex.h"
+#include "kudu/util/status.h"
 #include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 #include "kudu/util/thread.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/maintenance_manager.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/maintenance_manager.cc b/src/kudu/util/maintenance_manager.cc
index dbe865f..3f27806 100644
--- a/src/kudu/util/maintenance_manager.cc
+++ b/src/kudu/util/maintenance_manager.cc
@@ -17,13 +17,18 @@
 
 #include "kudu/util/maintenance_manager.h"
 
-#include <gflags/gflags.h>
+#include <cstddef>
+#include <cstdint>
 #include <memory>
-#include <stdint.h>
+#include <mutex>
+#include <sstream>
 #include <string>
-#include <thread>
 #include <utility>
 
+#include <boost/bind.hpp>
+#include <gflags/gflags.h>
+
+#include "kudu/gutil/dynamic_annotations.h"
 #include "kudu/gutil/map-util.h"
 #include "kudu/gutil/stringprintf.h"
 #include "kudu/gutil/strings/substitute.h"
@@ -31,12 +36,15 @@
 #include "kudu/util/debug/trace_logging.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/logging.h"
+#include "kudu/util/maintenance_manager.pb.h"
+#include "kudu/util/make_shared.h"
 #include "kudu/util/metrics.h"
 #include "kudu/util/process_memory.h"
 #include "kudu/util/random_util.h"
 #include "kudu/util/scoped_cleanup.h"
 #include "kudu/util/stopwatch.h"
 #include "kudu/util/thread.h"
+#include "kudu/util/threadpool.h"
 #include "kudu/util/trace.h"
 
 using std::pair;
@@ -114,6 +122,18 @@ void MaintenanceOp::Unregister() {
   manager_->UnregisterOp(this);
 }
 
+MaintenanceManagerStatusPB_OpInstancePB OpInstance::DumpToPB() const {
+  MaintenanceManagerStatusPB_OpInstancePB pb;
+  pb.set_thread_id(thread_id);
+  pb.set_name(name);
+  if (duration.Initialized()) {
+    pb.set_duration_millis(duration.ToMilliseconds());
+  }
+  MonoDelta delta(MonoTime::Now() - start_mono_time);
+  pb.set_millis_since_start(delta.ToMilliseconds());
+  return pb;
+}
+
 const MaintenanceManager::Options MaintenanceManager::kDefaultOptions = {
   .num_threads = 0,
   .polling_interval_ms = 0,

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/maintenance_manager.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/maintenance_manager.h b/src/kudu/util/maintenance_manager.h
index e939583..cfbc287 100644
--- a/src/kudu/util/maintenance_manager.h
+++ b/src/kudu/util/maintenance_manager.h
@@ -17,26 +17,29 @@
 
 #pragma once
 
-#include <stdint.h>
+#include <cstdint>
 
+#include <algorithm>
 #include <functional>
 #include <map>
 #include <memory>
-#include <set>
+#include <mutex>
 #include <string>
-#include <thread>
+#include <unordered_map>
 #include <vector>
 
+#include <glog/logging.h>
+#include <gtest/gtest_prod.h>
+
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/util/atomic.h"
 #include "kudu/util/condition_variable.h"
-#include "kudu/util/countdown_latch.h"
-#include "kudu/util/maintenance_manager.pb.h"
 #include "kudu/util/monotime.h"
 #include "kudu/util/mutex.h"
 #include "kudu/util/random.h"
-#include "kudu/util/thread.h"
-#include "kudu/util/threadpool.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 
@@ -44,6 +47,10 @@ template<class T>
 class AtomicGauge;
 class Histogram;
 class MaintenanceManager;
+class MaintenanceManagerStatusPB;
+class MaintenanceManagerStatusPB_OpInstancePB;
+class Thread;
+class ThreadPool;
 
 class MaintenanceOpStats {
  public:
@@ -156,17 +163,7 @@ struct OpInstance {
   MonoDelta duration;
   MonoTime start_mono_time;
 
-  MaintenanceManagerStatusPB_OpInstancePB DumpToPB() const {
-    MaintenanceManagerStatusPB_OpInstancePB pb;
-    pb.set_thread_id(thread_id);
-    pb.set_name(name);
-    if (duration.Initialized()) {
-      pb.set_duration_millis(duration.ToMilliseconds());
-    }
-    MonoDelta delta(MonoTime::Now() - start_mono_time);
-    pb.set_millis_since_start(delta.ToMilliseconds());
-    return pb;
-  }
+  MaintenanceManagerStatusPB_OpInstancePB DumpToPB() const;
 };
 
 // MaintenanceOp objects represent background operations that the

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/make_shared.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/make_shared.h b/src/kudu/util/make_shared.h
index af254df..c534ebf 100644
--- a/src/kudu/util/make_shared.h
+++ b/src/kudu/util/make_shared.h
@@ -18,6 +18,10 @@
 #ifndef KUDU_UTIL_MAKE_SHARED_H_
 #define KUDU_UTIL_MAKE_SHARED_H_
 
+#ifdef __GLIBCXX__
+#include <ext/alloc_traits.h>  // IWYU pragma: export
+#endif
+
 #include <memory>
 
 // It isn't possible to use std::make_shared() with a class that has private

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/map-util-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/map-util-test.cc b/src/kudu/util/map-util-test.cc
index eb456d3..afbee94 100644
--- a/src/kudu/util/map-util-test.cc
+++ b/src/kudu/util/map-util-test.cc
@@ -19,9 +19,12 @@
 // part of util.
 #include "kudu/gutil/map-util.h"
 
-#include <gtest/gtest.h>
 #include <map>
 #include <memory>
+#include <string>
+#include <utility>
+
+#include <gtest/gtest.h>
 
 using std::map;
 using std::string;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/mem_tracker-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/mem_tracker-test.cc b/src/kudu/util/mem_tracker-test.cc
index 075931a..dbadd09 100644
--- a/src/kudu/util/mem_tracker-test.cc
+++ b/src/kudu/util/mem_tracker-test.cc
@@ -18,13 +18,20 @@
 #include "kudu/util/mem_tracker.h"
 
 #include <atomic>
+#include <functional>
+#include <memory>
 #include <string>
+#include <system_error>
 #include <thread>
 #include <unordered_map>
 #include <utility>
 #include <vector>
 
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/test_util.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/mem_tracker.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/mem_tracker.cc b/src/kudu/util/mem_tracker.cc
index 88e1d23..a074354 100644
--- a/src/kudu/util/mem_tracker.cc
+++ b/src/kudu/util/mem_tracker.cc
@@ -18,18 +18,20 @@
 #include "kudu/util/mem_tracker.h"
 
 #include <algorithm>
+#include <cstddef>
 #include <deque>
 #include <limits>
 #include <list>
 #include <memory>
-#include <mutex>
+#include <ostream>
+
+#include <gperftools/malloc_extension.h>  // IWYU pragma: keep
 
-#include "kudu/gutil/map-util.h"
 #include "kudu/gutil/once.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/mutex.h"
 #include "kudu/util/process_memory.h"
-#include "kudu/util/status.h"
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/mem_tracker.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/mem_tracker.h b/src/kudu/util/mem_tracker.h
index a43e9a2..0a5af4f 100644
--- a/src/kudu/util/mem_tracker.h
+++ b/src/kudu/util/mem_tracker.h
@@ -17,22 +17,20 @@
 #ifndef KUDU_UTIL_MEM_TRACKER_H
 #define KUDU_UTIL_MEM_TRACKER_H
 
+#include <algorithm>
+#include <cstdint>
 #include <list>
 #include <memory>
-#include <stdint.h>
 #include <string>
 #include <vector>
 
-#include "kudu/gutil/ref_counted.h"
+#include <glog/logging.h>
+
 #include "kudu/util/high_water_mark.h"
-#include "kudu/util/locks.h"
 #include "kudu/util/mutex.h"
 
 namespace kudu {
 
-class Status;
-class MemTracker;
-
 // A MemTracker tracks memory consumption; it contains an optional limit and is
 // arranged into a tree structure such that the consumption tracked by a
 // MemTracker is also tracked by its ancestors.

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/memcmpable_varint-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/memcmpable_varint-test.cc b/src/kudu/util/memcmpable_varint-test.cc
index 8342937..fcbe25d 100644
--- a/src/kudu/util/memcmpable_varint-test.cc
+++ b/src/kudu/util/memcmpable_varint-test.cc
@@ -15,13 +15,20 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <glog/logging.h>
+#include <cstdint>
+#include <ostream>
+#include <string>
+#include <utility>
+#include <vector>
+
 #include <gtest/gtest.h>
 
+#include "kudu/util/faststring.h"
 #include "kudu/util/hexdump.h"
 #include "kudu/util/memcmpable_varint.h"
 #include "kudu/util/random.h"
-#include "kudu/util/stopwatch.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/stopwatch.h"  // IWYU pragma: keep
 #include "kudu/util/test_util.h"
 
 // Add operator<< to print pairs, used in a test below.

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/memcmpable_varint.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/memcmpable_varint.cc b/src/kudu/util/memcmpable_varint.cc
index 35314f8..b30eff6 100644
--- a/src/kudu/util/memcmpable_varint.cc
+++ b/src/kudu/util/memcmpable_varint.cc
@@ -94,11 +94,11 @@
 //      7      2**48-1      14.4
 //      8      2**56-1      16.8
 //      9      2**64-1      19.2
-//
+
+#include <cstddef>
 
 #include <glog/logging.h>
 
-#include "kudu/gutil/endian.h"
 #include "kudu/util/faststring.h"
 #include "kudu/util/memcmpable_varint.h"
 #include "kudu/util/slice.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/memcmpable_varint.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/memcmpable_varint.h b/src/kudu/util/memcmpable_varint.h
index c1ce071..955f89d 100644
--- a/src/kudu/util/memcmpable_varint.h
+++ b/src/kudu/util/memcmpable_varint.h
@@ -27,11 +27,13 @@
 #ifndef KUDU_UTIL_MEMCMPABLE_VARINT_H
 #define KUDU_UTIL_MEMCMPABLE_VARINT_H
 
-#include "kudu/util/faststring.h"
-#include "kudu/util/slice.h"
+#include <cstdint>
 
 namespace kudu {
 
+class Slice;
+class faststring;
+
 void PutMemcmpableVarint64(faststring *dst, uint64_t value);
 
 // Standard Get... routines parse a value from the beginning of a Slice

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/memory/arena-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/memory/arena-test.cc b/src/kudu/util/memory/arena-test.cc
index e476560..f4691c4 100644
--- a/src/kudu/util/memory/arena-test.cc
+++ b/src/kudu/util/memory/arena-test.cc
@@ -15,13 +15,17 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <gflags/gflags.h>
-#include <glog/logging.h>
-#include <gtest/gtest.h>
+#include <cstdint>
+#include <cstring>
 #include <memory>
+#include <string>
 #include <thread>
 #include <vector>
 
+#include <gflags/gflags.h>
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
 #include "kudu/gutil/stringprintf.h"
 #include "kudu/util/memory/arena.h"
 #include "kudu/util/memory/memory.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/memory/arena.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/memory/arena.cc b/src/kudu/util/memory/arena.cc
index 427072f..6f65df4 100644
--- a/src/kudu/util/memory/arena.cc
+++ b/src/kudu/util/memory/arena.cc
@@ -20,17 +20,10 @@
 #include "kudu/util/memory/arena.h"
 
 #include <algorithm>
+#include <memory>
 #include <mutex>
 
-#include "kudu/util/debug-util.h"
-#include "kudu/util/flag_tags.h"
-
-using std::copy;
-using std::max;
 using std::min;
-using std::reverse;
-using std::sort;
-using std::swap;
 using std::unique_ptr;
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/memory/arena.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/memory/arena.h b/src/kudu/util/memory/arena.h
index 1db5585..750e9d9 100644
--- a/src/kudu/util/memory/arena.h
+++ b/src/kudu/util/memory/arena.h
@@ -23,19 +23,24 @@
 #ifndef KUDU_UTIL_MEMORY_ARENA_H_
 #define KUDU_UTIL_MEMORY_ARENA_H_
 
-#include <boost/signals2/dummy_mutex.hpp>
-#include <glog/logging.h>
+#include <algorithm>
+#include <cstddef>
+#include <cstdint>
+#include <cstring>
 #include <memory>
-#include <mutex>
 #include <new>
-#include <stddef.h>
-#include <string.h>
+#include <ostream>
 #include <vector>
 
+#include <boost/signals2/dummy_mutex.hpp>
+#include <glog/logging.h>
+
+#include "kudu/gutil/atomicops.h"
 #include "kudu/gutil/dynamic_annotations.h"
 #include "kudu/gutil/gscoped_ptr.h"
-#include "kudu/gutil/logging-inl.h"
 #include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/strings/stringpiece.h"
 #include "kudu/util/alignment.h"
 #include "kudu/util/locks.h"
 #include "kudu/util/memory/memory.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/memory/memory.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/memory/memory.cc b/src/kudu/util/memory/memory.cc
index e393540..b3964df 100644
--- a/src/kudu/util/memory/memory.cc
+++ b/src/kudu/util/memory/memory.cc
@@ -20,10 +20,11 @@
 
 #include "kudu/util/memory/memory.h"
 
-#include <string.h>
+#include <mm_malloc.h>
 
 #include <algorithm>
 #include <cstdlib>
+#include <cstring>
 
 #include <gflags/gflags.h>
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/memory/memory.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/memory/memory.h b/src/kudu/util/memory/memory.h
index ffe0a7c..972589e 100644
--- a/src/kudu/util/memory/memory.h
+++ b/src/kudu/util/memory/memory.h
@@ -33,18 +33,22 @@
 #define KUDU_UTIL_MEMORY_MEMORY_H_
 
 #include <algorithm>
-#include <glog/logging.h>
+#include <cstddef>
+#include <cstdint>
 #include <limits>
 #include <memory>
-#include <stddef.h>
+#include <ostream>
 #include <vector>
 
+#include <glog/logging.h>
+
 #include "kudu/util/boost_mutex_utils.h"
 #include "kudu/util/memory/overwrite.h"
 #include "kudu/util/mutex.h"
 #include "kudu/gutil/gscoped_ptr.h"
-#include "kudu/gutil/logging-inl.h"
+#include "kudu/gutil/integral_types.h"
 #include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/singleton.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/memory/overwrite.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/memory/overwrite.h b/src/kudu/util/memory/overwrite.h
index 04286ed..37c6512 100644
--- a/src/kudu/util/memory/overwrite.h
+++ b/src/kudu/util/memory/overwrite.h
@@ -17,6 +17,8 @@
 #ifndef KUDU_MEMORY_OVERWRITE_H
 #define KUDU_MEMORY_OVERWRITE_H
 
+#include <cstddef>
+
 #include "kudu/gutil/strings/stringpiece.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/metrics-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/metrics-test.cc b/src/kudu/util/metrics-test.cc
index 7493056..698fd7d 100644
--- a/src/kudu/util/metrics-test.cc
+++ b/src/kudu/util/metrics-test.cc
@@ -15,18 +15,28 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <gtest/gtest.h>
-#include <rapidjson/document.h>
+#include <cstdint>
+#include <ostream>
 #include <string>
 #include <unordered_set>
 #include <vector>
 
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+#include <rapidjson/document.h>
+
 #include "kudu/gutil/bind.h"
+#include "kudu/gutil/bind_helpers.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/util/hdr_histogram.h"
 #include "kudu/util/jsonreader.h"
 #include "kudu/util/jsonwriter.h"
 #include "kudu/util/metrics.h"
+#include "kudu/util/monotime.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/util/metrics.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/metrics.cc b/src/kudu/util/metrics.cc
index df226d4..a0d39ba 100644
--- a/src/kudu/util/metrics.cc
+++ b/src/kudu/util/metrics.cc
@@ -16,24 +16,21 @@
 // under the License.
 #include "kudu/util/metrics.h"
 
+#include <algorithm>
+#include <cstdlib>
 #include <iostream>
-#include <sstream>
 #include <map>
-#include <set>
+#include <utility>
 
 #include <gflags/gflags.h>
+#include <glog/logging.h>
 
-#include "kudu/gutil/atomicops.h"
-#include "kudu/gutil/casts.h"
 #include "kudu/gutil/map-util.h"
 #include "kudu/gutil/singleton.h"
-#include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/hdr_histogram.h"
 #include "kudu/util/histogram.pb.h"
-#include "kudu/util/jsonwriter.h"
-#include "kudu/util/locks.h"
 #include "kudu/util/status.h"
 
 DEFINE_int32(metrics_retirement_age_ms, 120 * 1000,

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/metrics.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/metrics.h b/src/kudu/util/metrics.h
index b9b8509..f59a32c 100644
--- a/src/kudu/util/metrics.h
+++ b/src/kudu/util/metrics.h
@@ -223,7 +223,8 @@
 //
 /////////////////////////////////////////////////////
 
-#include <algorithm>
+#include <cstddef>
+#include <cstdint>
 #include <mutex>
 #include <string>
 #include <unordered_map>
@@ -234,11 +235,14 @@
 #include "kudu/gutil/bind.h"
 #include "kudu/gutil/callback.h"
 #include "kudu/gutil/casts.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/ref_counted.h"
-#include "kudu/gutil/singleton.h"
 #include "kudu/util/atomic.h"
-#include "kudu/util/jsonwriter.h"
+#include "kudu/util/hdr_histogram.h"
+#include "kudu/util/jsonwriter.h" // IWYU pragma: keep
 #include "kudu/util/locks.h"
 #include "kudu/util/monotime.h"
 #include "kudu/util/status.h"
@@ -317,6 +321,8 @@
 #define METRIC_DECLARE_gauge_size METRIC_DECLARE_gauge_uint64
 #endif
 
+template <typename Type> class Singleton;
+
 namespace kudu {
 
 class Counter;
@@ -324,9 +330,10 @@ class CounterPrototype;
 
 template<typename T>
 class AtomicGauge;
+template <typename Sig>
+class Callback;
 template<typename T>
 class FunctionGauge;
-class Gauge;
 template<typename T>
 class GaugePrototype;
 
@@ -335,7 +342,6 @@ class MetricEntityPrototype;
 class MetricPrototype;
 class MetricRegistry;
 
-class HdrHistogram;
 class Histogram;
 class HistogramPrototype;
 class HistogramSnapshotPB;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/minidump-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/minidump-test.cc b/src/kudu/util/minidump-test.cc
index f4c44e2..5c756b6 100644
--- a/src/kudu/util/minidump-test.cc
+++ b/src/kudu/util/minidump-test.cc
@@ -15,19 +15,24 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <signal.h>
-#include <sys/types.h>
 #include <unistd.h>
 
+#include <csignal>
+#include <cstdlib>
+#include <cstring>
+#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/gutil/strings/substitute.h"
 #include "kudu/util/minidump.h"
 #include "kudu/util/path_util.h"
 #include "kudu/util/test_macros.h"
+#include "kudu/util/env.h"
+#include "kudu/util/status.h"
 #include "kudu/util/test_util.h"
 
 using std::string;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/minidump.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/minidump.cc b/src/kudu/util/minidump.cc
index c088ae7..d02dc5d 100644
--- a/src/kudu/util/minidump.cc
+++ b/src/kudu/util/minidump.cc
@@ -17,12 +17,14 @@
 
 #include "kudu/util/minidump.h"
 
-#include <signal.h>
-#include <sys/types.h>
 #include <unistd.h>
 
 #include <atomic>
+#include <csignal>
+#include <cstdint>
+#include <cstdlib>
 #include <memory>
+#include <ostream>
 #include <string>
 
 #if defined(__linux__)
@@ -31,17 +33,19 @@
 #endif // defined(__linux__)
 
 #include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
 #include <glog/logging.h>
 
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/linux_syscall_support.h"
 #include "kudu/gutil/strings/human_readable.h"
 #include "kudu/util/errno.h"
 #include "kudu/util/env.h"
 #include "kudu/util/env_util.h"
 #include "kudu/util/flag_tags.h"
-#include "kudu/util/logging.h"
 #include "kudu/util/path_util.h"
 #include "kudu/util/status.h"
+#include "kudu/util/thread.h"
 
 using kudu::env_util::CreateDirIfMissing;
 using std::string;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/minidump.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/minidump.h b/src/kudu/util/minidump.h
index 459639b..893440a 100644
--- a/src/kudu/util/minidump.h
+++ b/src/kudu/util/minidump.h
@@ -22,8 +22,6 @@
 #include <string>
 
 #include "kudu/gutil/ref_counted.h"
-#include "kudu/util/locks.h"
-#include "kudu/util/thread.h"
 
 namespace google_breakpad {
 class ExceptionHandler;
@@ -33,6 +31,7 @@ namespace kudu {
 
 class Env;
 class Status;
+class Thread;
 
 // While an instance of this class is in scope, a Breakpad minidump handler
 // will generate a minidump for the current program if it crashes or if it

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/monotime-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/monotime-test.cc b/src/kudu/util/monotime-test.cc
index f193ecd..755dac5 100644
--- a/src/kudu/util/monotime-test.cc
+++ b/src/kudu/util/monotime-test.cc
@@ -20,6 +20,11 @@
 #include <sys/time.h>
 #include <unistd.h>
 
+#include <cstdint>
+#include <ctime>
+#include <ostream>
+#include <string>
+
 #include <glog/logging.h>
 #include <gtest/gtest.h>
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/monotime.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/monotime.cc b/src/kudu/util/monotime.cc
index b67be42..abe3664 100644
--- a/src/kudu/util/monotime.cc
+++ b/src/kudu/util/monotime.cc
@@ -17,17 +17,21 @@
 
 #include "kudu/util/monotime.h"
 
-#include <glog/logging.h>
-#include <limits>
-#include <stdlib.h>
-#include <string.h>
 #include <sys/time.h>
-#include <time.h>
 
+#include <ctime>
+#include <limits>
+
+#include <glog/logging.h>
+
+#include "kudu/gutil/integral_types.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/stringprintf.h"
 #include "kudu/gutil/sysinfo.h"
-#include "kudu/gutil/walltime.h"
 #include "kudu/util/thread_restrictions.h"
+#if defined(__APPLE__)
+#include "kudu/gutil/walltime.h"
+#endif
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/monotime.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/monotime.h b/src/kudu/util/monotime.h
index f261a99..59d92f0 100644
--- a/src/kudu/util/monotime.h
+++ b/src/kudu/util/monotime.h
@@ -17,7 +17,10 @@
 #ifndef KUDU_UTIL_MONOTIME_H
 #define KUDU_UTIL_MONOTIME_H
 
+// NOTE: using stdint.h instead of cstdint because this file is supposed
+//       to be processed by a compiler lacking C++11 support.
 #include <stdint.h>
+
 #include <string>
 
 #ifdef KUDU_HEADERS_NO_STUBS
@@ -32,11 +35,9 @@
 
 #include "kudu/util/kudu_export.h"
 
-struct timeval;
-struct timespec;
+struct timeval;   // IWYU pragma: keep
 
 namespace kudu {
-class MonoTime;
 
 /// @brief A representation of a time interval.
 ///

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/mt-hdr_histogram-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/mt-hdr_histogram-test.cc b/src/kudu/util/mt-hdr_histogram-test.cc
index 879c5e3..7221644 100644
--- a/src/kudu/util/mt-hdr_histogram-test.cc
+++ b/src/kudu/util/mt-hdr_histogram-test.cc
@@ -14,14 +14,19 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-#include <gtest/gtest.h>
-#include <gflags/gflags.h>
+
+#include <cstdint>
 #include <vector>
 
+#include <gflags/gflags.h>
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/hdr_histogram.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/status.h"
 #include "kudu/util/test_util.h"
 #include "kudu/util/thread.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/mt-metrics-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/mt-metrics-test.cc b/src/kudu/util/mt-metrics-test.cc
index c333215..2480d57 100644
--- a/src/kudu/util/mt-metrics-test.cc
+++ b/src/kudu/util/mt-metrics-test.cc
@@ -15,20 +15,26 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <cstdint>
+#include <cstring>
+#include <memory>
+#include <string>
 #include <vector>
 
-#include <boost/bind.hpp>
-#include <boost/function.hpp>
+#include <boost/bind.hpp> // IWYU pragma: keep
+#include <boost/function.hpp> // IWYU pragma: keep
 #include <gflags/gflags.h>
+#include <glog/logging.h>
 #include <gtest/gtest.h>
 
-#include "kudu/gutil/atomicops.h"
 #include "kudu/gutil/ref_counted.h"
+#include "kudu/gutil/stringprintf.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/debug/leakcheck_disabler.h"
-#include "kudu/util/jsonwriter.h"
+#include "kudu/util/env.h"
 #include "kudu/util/metrics.h"
-#include "kudu/util/monotime.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 #include "kudu/util/thread.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/mt-threadlocal-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/mt-threadlocal-test.cc b/src/kudu/util/mt-threadlocal-test.cc
index 2390b82..c0609d2 100644
--- a/src/kudu/util/mt-threadlocal-test.cc
+++ b/src/kudu/util/mt-threadlocal-test.cc
@@ -15,11 +15,16 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <glog/logging.h>
+#include <cstdint>
 #include <mutex>
+#include <ostream>
 #include <string>
+#include <vector>
 #include <unordered_set>
 
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/map-util.h"
 #include "kudu/gutil/ref_counted.h"
@@ -28,6 +33,10 @@
 #include "kudu/util/countdown_latch.h"
 #include "kudu/util/env.h"
 #include "kudu/util/locks.h"
+#include "kudu/util/make_shared.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/mutex.h"
+#include "kudu/util/status.h"
 #include "kudu/util/test_util.h"
 #include "kudu/util/thread.h"
 #include "kudu/util/threadlocal.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/mutex.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/mutex.cc b/src/kudu/util/mutex.cc
index bd9539b..d55ccaf 100644
--- a/src/kudu/util/mutex.cc
+++ b/src/kudu/util/mutex.cc
@@ -19,9 +19,16 @@
 
 #include "kudu/util/mutex.h"
 
+#include <cerrno>
+#include <cstdint>
+#include <cstring>
+#include <ostream>
+#include <string>
+
 #include <gflags/gflags.h>
 #include <glog/logging.h>
 
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/gutil/walltime.h"
 #include "kudu/util/debug-util.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/net/dns_resolver-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/net/dns_resolver-test.cc b/src/kudu/util/net/dns_resolver-test.cc
index 55be284..f08b089 100644
--- a/src/kudu/util/net/dns_resolver-test.cc
+++ b/src/kudu/util/net/dns_resolver-test.cc
@@ -17,14 +17,18 @@
 
 #include "kudu/util/net/dns_resolver.h"
 
-#include <boost/bind.hpp>
-#include <gtest/gtest.h>
+#include <ostream>
+#include <string>
 #include <vector>
 
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
 #include "kudu/gutil/strings/util.h"
-#include "kudu/util/countdown_latch.h"
+#include "kudu/util/async_util.h"
 #include "kudu/util/net/net_util.h"
 #include "kudu/util/net/sockaddr.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 using std::vector;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/net/dns_resolver.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/net/dns_resolver.cc b/src/kudu/util/net/dns_resolver.cc
index 4c37a95..8031c10 100644
--- a/src/kudu/util/net/dns_resolver.cc
+++ b/src/kudu/util/net/dns_resolver.cc
@@ -17,15 +17,17 @@
 
 #include "kudu/util/net/dns_resolver.h"
 
-#include <boost/bind.hpp>
+#include <vector>
+
+#include <boost/bind.hpp> // IWYU pragma: keep
 #include <gflags/gflags.h>
 #include <glog/logging.h>
-#include <vector>
 
+#include "kudu/gutil/callback.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/threadpool.h"
 #include "kudu/util/net/net_util.h"
-#include "kudu/util/net/sockaddr.h"
+#include "kudu/util/status.h"
 
 DEFINE_int32(dns_num_resolver_threads, 1, "The number of threads to use for DNS resolution");
 TAG_FLAG(dns_num_resolver_threads, advanced);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/net/dns_resolver.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/net/dns_resolver.h b/src/kudu/util/net/dns_resolver.h
index 4232174..06dfa48 100644
--- a/src/kudu/util/net/dns_resolver.h
+++ b/src/kudu/util/net/dns_resolver.h
@@ -21,8 +21,7 @@
 
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
-#include "kudu/util/async_util.h"
-#include "kudu/util/status.h"
+#include "kudu/util/status_callback.h"
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/net/net_util-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/net/net_util-test.cc b/src/kudu/util/net/net_util-test.cc
index 3316316..1717d04 100644
--- a/src/kudu/util/net/net_util-test.cc
+++ b/src/kudu/util/net/net_util-test.cc
@@ -15,18 +15,22 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <gtest/gtest.h>
-
 #include <algorithm>
+#include <cstdint>
+#include <ostream>
 #include <string>
 #include <vector>
 
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
 #include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/util.h"
 #include "kudu/util/net/net_util.h"
 #include "kudu/util/net/socket.h"
 #include "kudu/util/net/sockaddr.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/util/net/net_util.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/net/net_util.cc b/src/kudu/util/net/net_util.cc
index 94dbb02..e5918b0 100644
--- a/src/kudu/util/net/net_util.cc
+++ b/src/kudu/util/net/net_util.cc
@@ -15,24 +15,31 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <arpa/inet.h>
+#include <sys/socket.h>
 #include <ifaddrs.h>
+#include <limits.h>
 #include <netdb.h>
-#include <sys/types.h>
-#include <sys/socket.h>
+#include <netinet/in.h>
+#include <unistd.h>
 
 #include <algorithm>
+#include <cerrno>
+#include <cstring>
 #include <functional>
 #include <memory>
+#include <ostream>
 #include <unordered_set>
 #include <utility>
 #include <vector>
 
-#include <boost/functional/hash.hpp>
+#include <boost/functional/hash/hash.hpp>
 #include <gflags/gflags.h>
+#include <glog/logging.h>
 
 #include "kudu/gutil/endian.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/numbers.h"
 #include "kudu/gutil/strings/split.h"
@@ -41,7 +48,6 @@
 #include "kudu/gutil/strings/util.h"
 #include "kudu/util/debug/trace_event.h"
 #include "kudu/util/errno.h"
-#include "kudu/util/faststring.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/net/net_util.h"
 #include "kudu/util/net/sockaddr.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/net/net_util.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/net/net_util.h b/src/kudu/util/net/net_util.h
index b246c5e..c471ae8 100644
--- a/src/kudu/util/net/net_util.h
+++ b/src/kudu/util/net/net_util.h
@@ -17,6 +17,8 @@
 #ifndef KUDU_UTIL_NET_NET_UTIL_H
 #define KUDU_UTIL_NET_NET_UTIL_H
 
+#include <cstddef>
+#include <cstdint>
 #include <string>
 #include <vector>
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/net/sockaddr.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/net/sockaddr.cc b/src/kudu/util/net/sockaddr.cc
index 0379382..428d4bd 100644
--- a/src/kudu/util/net/sockaddr.cc
+++ b/src/kudu/util/net/sockaddr.cc
@@ -18,15 +18,16 @@
 #include "kudu/util/net/sockaddr.h"
 
 #include <arpa/inet.h>
-#include <errno.h>
 #include <netdb.h>
-#include <stdio.h>
-#include <string.h>
+#include <sys/socket.h>
+
+#include <cerrno>
+#include <cstring>
 #include <string>
 
 #include "kudu/gutil/endian.h"
 #include "kudu/gutil/hash/builtin_type_hash.h"
-#include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/stringprintf.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/net/net_util.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/net/sockaddr.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/net/sockaddr.h b/src/kudu/util/net/sockaddr.h
index 09777f3..3253b39 100644
--- a/src/kudu/util/net/sockaddr.h
+++ b/src/kudu/util/net/sockaddr.h
@@ -18,7 +18,9 @@
 #define KUDU_UTIL_NET_SOCKADDR_H
 
 #include <netinet/in.h>
-#include <iosfwd>
+
+#include <cstdint>
+#include <functional>
 #include <string>
 
 #include "kudu/util/status.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/net/socket.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/net/socket.cc b/src/kudu/util/net/socket.cc
index 748c773..a7ccfcc 100644
--- a/src/kudu/util/net/socket.cc
+++ b/src/kudu/util/net/socket.cc
@@ -17,20 +17,25 @@
 
 #include "kudu/util/net/socket.h"
 
-#include <errno.h>
 #include <fcntl.h>
 #include <netinet/in.h>
 #include <netinet/tcp.h>
 #include <sys/socket.h>
-#include <sys/types.h>
+#include <sys/time.h>
 #include <unistd.h>
 
+#include <cerrno>
+#include <cinttypes>
+#include <cstring>
 #include <limits>
+#include <ostream>
 #include <string>
 
+#include <gflags/gflags.h>
 #include <glog/logging.h>
 
 #include "kudu/gutil/basictypes.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/stringprintf.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/debug/trace_event.h"
@@ -41,7 +46,7 @@
 #include "kudu/util/net/sockaddr.h"
 #include "kudu/util/random.h"
 #include "kudu/util/random_util.h"
-#include "kudu/util/subprocess.h"
+#include "kudu/util/slice.h"
 
 DEFINE_string(local_ip_for_outbound_sockets, "",
               "IP to bind to when making outgoing socket connections. "

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/net/socket.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/net/socket.h b/src/kudu/util/net/socket.h
index 7c04ff6..bc86634 100644
--- a/src/kudu/util/net/socket.h
+++ b/src/kudu/util/net/socket.h
@@ -17,12 +17,15 @@
 #ifndef KUDU_UTIL_NET_SOCKET_H
 #define KUDU_UTIL_NET_SOCKET_H
 
-#include <sys/uio.h>
+#include <cstddef>
+#include <cstdint>
 #include <string>
 
 #include "kudu/gutil/macros.h"
 #include "kudu/util/status.h"
 
+struct iovec;
+
 namespace kudu {
 
 class MonoDelta;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/nvm_cache.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/nvm_cache.cc b/src/kudu/util/nvm_cache.cc
index 7346f21..fef188c 100644
--- a/src/kudu/util/nvm_cache.cc
+++ b/src/kudu/util/nvm_cache.cc
@@ -20,27 +20,33 @@
 
 #include "kudu/util/nvm_cache.h"
 
-#include <gflags/gflags.h>
-#include <glog/logging.h>
+#include <cstdint>
+#include <cstring>
 #include <iostream>
-#include <libvmem.h>
 #include <memory>
 #include <mutex>
-#include <stdlib.h>
 #include <string>
 #include <vector>
 
+#include <gflags/gflags.h>
+#include <glog/logging.h>
+#include <libvmem.h>
+
+#include "kudu/gutil/atomicops.h"
 #include "kudu/gutil/atomic_refcount.h"
+#include "kudu/gutil/dynamic_annotations.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/gutil/ref_counted.h"
 #include "kudu/gutil/stl_util.h"
-#include "kudu/gutil/strings/substitute.h"
-#include "kudu/util/atomic.h"
 #include "kudu/util/cache.h"
 #include "kudu/util/cache_metrics.h"
-#include "kudu/util/flags.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/locks.h"
 #include "kudu/util/metrics.h"
+#include "kudu/util/slice.h"
 
 DEFINE_string(nvm_cache_path, "/vmem",
               "The path at which the NVM cache will try to allocate its memory. "
@@ -62,8 +68,6 @@ TAG_FLAG(nvm_cache_simulate_allocation_failure, unsafe);
 
 namespace kudu {
 
-class MetricEntity;
-
 namespace {
 
 using std::shared_ptr;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/nvm_cache.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/nvm_cache.h b/src/kudu/util/nvm_cache.h
index 38962f2..9a65316 100644
--- a/src/kudu/util/nvm_cache.h
+++ b/src/kudu/util/nvm_cache.h
@@ -17,6 +17,7 @@
 #ifndef KUDU_UTIL_NVM_CACHE_H_
 #define KUDU_UTIL_NVM_CACHE_H_
 
+#include <cstddef>
 #include <string>
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/object_pool-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/object_pool-test.cc b/src/kudu/util/object_pool-test.cc
index d6b34ae..954b834 100644
--- a/src/kudu/util/object_pool-test.cc
+++ b/src/kudu/util/object_pool-test.cc
@@ -16,6 +16,9 @@
 // under the License.
 
 #include <gtest/gtest.h>
+
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/move.h"
 #include "kudu/util/object_pool.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/oid_generator-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/oid_generator-test.cc b/src/kudu/util/oid_generator-test.cc
index a38b496..be88061 100644
--- a/src/kudu/util/oid_generator-test.cc
+++ b/src/kudu/util/oid_generator-test.cc
@@ -17,10 +17,12 @@
 
 #include "kudu/util/oid_generator.h"
 
-#include <gtest/gtest.h>
 #include <string>
 
-#include "kudu/util/test_util.h"
+#include <gtest/gtest.h>
+
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 
 using std::string;
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/oid_generator.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/oid_generator.cc b/src/kudu/util/oid_generator.cc
index 4e558bf..eee7316 100644
--- a/src/kudu/util/oid_generator.cc
+++ b/src/kudu/util/oid_generator.cc
@@ -17,11 +17,13 @@
 
 #include "kudu/util/oid_generator.h"
 
-#include <boost/uuid/uuid_generators.hpp>
+#include <cstdint>
 #include <exception>
 #include <mutex>
 #include <string>
 
+#include <boost/uuid/uuid.hpp>
+
 #include "kudu/gutil/stringprintf.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/status.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/oid_generator.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/oid_generator.h b/src/kudu/util/oid_generator.h
index 7acccc9..c1cc88f 100644
--- a/src/kudu/util/oid_generator.h
+++ b/src/kudu/util/oid_generator.h
@@ -18,9 +18,11 @@
 #ifndef KUDU_UTIL_OID_GENERATOR_H
 #define KUDU_UTIL_OID_GENERATOR_H
 
-#include <boost/uuid/uuid_generators.hpp>
 #include <string>
 
+#include <boost/uuid/random_generator.hpp>
+#include <boost/uuid/string_generator.hpp>
+
 #include "kudu/gutil/macros.h"
 #include "kudu/util/locks.h"
 #include "kudu/util/status.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/once-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/once-test.cc b/src/kudu/util/once-test.cc
index 8ccd8b6..e5eecc7 100644
--- a/src/kudu/util/once-test.cc
+++ b/src/kudu/util/once-test.cc
@@ -15,13 +15,16 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <ostream>
 #include <vector>
 
+#include <glog/logging.h>
 #include <gtest/gtest.h>
 
-#include "kudu/gutil/bind.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/once.h"
+#include "kudu/util/status.h"
 #include "kudu/util/test_macros.h"
 #include "kudu/util/thread.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/os-util-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/os-util-test.cc b/src/kudu/util/os-util-test.cc
index b7a59d5..a96e69d 100644
--- a/src/kudu/util/os-util-test.cc
+++ b/src/kudu/util/os-util-test.cc
@@ -17,10 +17,13 @@
 
 #include "kudu/util/os-util.h"
 
+#include <unistd.h>
+
+#include <string>
+
 #include <gtest/gtest.h>
 
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/util/errno.h"
 #include "kudu/util/test_macros.h"
 
 using std::string;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/os-util.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/os-util.cc b/src/kudu/util/os-util.cc
index 5fedc4d..8277821 100644
--- a/src/kudu/util/os-util.cc
+++ b/src/kudu/util/os-util.cc
@@ -25,17 +25,20 @@
 #include "kudu/util/os-util.h"
 
 #include <fcntl.h>
+#include <sys/resource.h>
+#include <unistd.h>
+
+#include <glog/logging.h>
+
+#include <cstddef>
 #include <fstream>
-#include <sstream>
 #include <string>
-#include <sys/resource.h>
 #include <vector>
-#include <unistd.h>
 
+#include "kudu/gutil/integral_types.h"
 #include "kudu/gutil/strings/numbers.h"
 #include "kudu/gutil/strings/split.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/util/errno.h"
 
 using std::ifstream;
 using std::istreambuf_iterator;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/os-util.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/os-util.h b/src/kudu/util/os-util.h
index a5f80f7..bd1a444 100644
--- a/src/kudu/util/os-util.h
+++ b/src/kudu/util/os-util.h
@@ -23,6 +23,7 @@
 #ifndef KUDU_UTIL_OS_UTIL_H
 #define KUDU_UTIL_OS_UTIL_H
 
+#include <cstdint>
 #include <string>
 
 #include "kudu/util/status.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/path_util.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/path_util.cc b/src/kudu/util/path_util.cc
index 091950a..201bac6 100644
--- a/src/kudu/util/path_util.cc
+++ b/src/kudu/util/path_util.cc
@@ -20,15 +20,19 @@
 // Use the POSIX version of dirname(3).
 #include <libgen.h>
 
-#include <glog/logging.h>
+#include <cstring>
+#if defined(__APPLE__)
+#include <mutex>
+#endif // defined(__APPLE__)
+#include <ostream>
 #include <string>
 
+#include <glog/logging.h>
+
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/strings/split.h"
+#include "kudu/gutil/strings/stringpiece.h"
 
-#if defined(__APPLE__)
-#include <mutex>
-#endif // defined(__APPLE__)
 
 using std::string;
 using std::vector;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/pb_util-internal.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/pb_util-internal.cc b/src/kudu/util/pb_util-internal.cc
index d891d75..380072c 100644
--- a/src/kudu/util/pb_util-internal.cc
+++ b/src/kudu/util/pb_util-internal.cc
@@ -16,6 +16,9 @@
 // under the License.
 #include "kudu/util/pb_util-internal.h"
 
+#include <ostream>
+#include <string>
+
 namespace kudu {
 namespace pb_util {
 namespace internal {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/pb_util-internal.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/pb_util-internal.h b/src/kudu/util/pb_util-internal.h
index 770d730..b148166 100644
--- a/src/kudu/util/pb_util-internal.h
+++ b/src/kudu/util/pb_util-internal.h
@@ -20,12 +20,18 @@
 #ifndef KUDU_UTIL_PB_UTIL_INTERNAL_H
 #define KUDU_UTIL_PB_UTIL_INTERNAL_H
 
+#include <cstddef>
+#include <cstdint>
 #include <memory>
 
 #include <glog/logging.h>
 #include <google/protobuf/io/zero_copy_stream.h>
 
+#include "kudu/gutil/integral_types.h"
+#include "kudu/gutil/port.h"
 #include "kudu/util/env.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 namespace pb_util {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/pb_util-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/pb_util-test.cc b/src/kudu/util/pb_util-test.cc
index eddc799..9db30bf 100644
--- a/src/kudu/util/pb_util-test.cc
+++ b/src/kudu/util/pb_util-test.cc
@@ -15,17 +15,21 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <sys/types.h>
-#include <unistd.h>
-
+#include <algorithm>
+#include <cstdint>
+#include <ostream>
 #include <memory>
 #include <string>
 #include <vector>
 
-#include <gflags/gflags_declare.h>
+#include <google/protobuf/descriptor.h>
 #include <google/protobuf/descriptor.pb.h>
+#include <gflags/gflags.h>
 #include <gtest/gtest.h>
 
+#include "kudu/gutil/port.h"
+#include "kudu/util/faststring.h"
+#include "kudu/util/env.h"
 #include "kudu/util/env_util.h"
 #include "kudu/util/pb_util-internal.h"
 #include "kudu/util/pb_util.h"
@@ -33,7 +37,9 @@
 #include "kudu/util/proto_container_test.pb.h"
 #include "kudu/util/proto_container_test2.pb.h"
 #include "kudu/util/proto_container_test3.pb.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/pb_util.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/pb_util.cc b/src/kudu/util/pb_util.cc
index 0c09712..f2fd3d8 100644
--- a/src/kudu/util/pb_util.cc
+++ b/src/kudu/util/pb_util.cc
@@ -23,12 +23,13 @@
 
 #include "kudu/util/pb_util.h"
 
+#include <algorithm>
+#include <cstddef>
 #include <deque>
 #include <initializer_list>
 #include <memory>
 #include <mutex>
-#include <ostream>
-#include <sstream>
+#include <ostream>  // IWYU pragma: keep
 #include <string>
 #include <unordered_set>
 #include <vector>
@@ -39,16 +40,17 @@
 #include <google/protobuf/descriptor_database.h>
 #include <google/protobuf/dynamic_message.h>
 #include <google/protobuf/io/coded_stream.h>
-#include <google/protobuf/io/zero_copy_stream.h>
 #include <google/protobuf/io/zero_copy_stream_impl_lite.h>
 #include <google/protobuf/message.h>
 #include <google/protobuf/message_lite.h>
+#include <google/protobuf/stubs/status.h>
 #include <google/protobuf/text_format.h>
 #include <google/protobuf/util/json_util.h>
 
-#include "kudu/gutil/bind.h"
-#include "kudu/gutil/callback.h"
+#include "kudu/gutil/integral_types.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/escaping.h"
 #include "kudu/gutil/strings/fastmem.h"
 #include "kudu/gutil/strings/substitute.h"
@@ -59,12 +61,13 @@
 #include "kudu/util/debug/trace_event.h"
 #include "kudu/util/env.h"
 #include "kudu/util/env_util.h"
+#include "kudu/util/faststring.h"
 #include "kudu/util/jsonwriter.h"
 #include "kudu/util/logging.h"
-#include "kudu/util/mutex.h"
 #include "kudu/util/path_util.h"
 #include "kudu/util/pb_util-internal.h"
 #include "kudu/util/pb_util.pb.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
 
 using google::protobuf::Descriptor;
@@ -427,9 +430,9 @@ void SerializeToString(const MessageLite &msg, faststring *output) {
 }
 
 Status ParseFromSequentialFile(MessageLite *msg, SequentialFile *rfile) {
-  SequentialFileFileInputStream istream(rfile);
-  if (!msg->ParseFromZeroCopyStream(&istream)) {
-    RETURN_NOT_OK(istream.status());
+  SequentialFileFileInputStream input(rfile);
+  if (!msg->ParseFromZeroCopyStream(&input)) {
+    RETURN_NOT_OK(input.status());
 
     // If it's not a file IO error then it's a parsing error.
     // Probably, we read wrong or damaged data here.
@@ -455,9 +458,9 @@ Status WritePBToPath(Env* env, const std::string& path,
   RETURN_NOT_OK(env->NewTempWritableFile(WritableFileOptions(), tmp_template, &tmp_path, &file));
   env_util::ScopedFileDeleter tmp_deleter(env, tmp_path);
 
-  WritableFileOutputStream ostream(file.get());
-  bool res = msg.SerializeToZeroCopyStream(&ostream);
-  if (!res || !ostream.Flush()) {
+  WritableFileOutputStream output(file.get());
+  bool res = msg.SerializeToZeroCopyStream(&output);
+  if (!res || !output.Flush()) {
     return Status::IOError("Unable to serialize PB to file");
   }
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/pb_util.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/pb_util.h b/src/kudu/util/pb_util.h
index d74784b..c3d0f4e 100644
--- a/src/kudu/util/pb_util.h
+++ b/src/kudu/util/pb_util.h
@@ -21,22 +21,23 @@
 #ifndef KUDU_UTIL_PB_UTIL_H
 #define KUDU_UTIL_PB_UTIL_H
 
+#include <cstdint>
+#include <iosfwd>
 #include <memory>
 #include <string>
 
+#include <google/protobuf/message.h>
 #include <gtest/gtest_prod.h>
 
-#include "kudu/util/debug/trace_event.h"
-#include "kudu/util/faststring.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/util/mutex.h"
+#include "kudu/util/debug/trace_event_impl.h"
 
 namespace google {
 namespace protobuf {
 class DescriptorPool;
 class FileDescriptor;
 class FileDescriptorSet;
-class Message;
-class MessageFactory;
 class MessageLite;
 class SimpleDescriptorDatabase;
 } // namespace protobuf
@@ -50,6 +51,7 @@ class SequentialFile;
 class Slice;
 class Status;
 class RWFile;
+class faststring;
 
 namespace pb_util {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/process_memory-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/process_memory-test.cc b/src/kudu/util/process_memory-test.cc
index 38922f5..36df1a9 100644
--- a/src/kudu/util/process_memory-test.cc
+++ b/src/kudu/util/process_memory-test.cc
@@ -16,12 +16,16 @@
 // under the License.
 
 #include <atomic>
+#include <cstdint>
+#include <ostream>
 #include <thread>
 #include <vector>
 
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
 #include "kudu/util/monotime.h"
 #include "kudu/util/process_memory.h"
-#include "kudu/util/test_util.h"
 
 using std::atomic;
 using std::thread;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/process_memory.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/process_memory.cc b/src/kudu/util/process_memory.cc
index 3ffcc43..7c0d4ee 100644
--- a/src/kudu/util/process_memory.cc
+++ b/src/kudu/util/process_memory.cc
@@ -15,21 +15,30 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <sys/resource.h>
+#include <cstddef>
+#include <memory>
+#include <ostream>
+#include <string>
 
 #include <gflags/gflags.h>
+#include <glog/logging.h>
 #include <gperftools/malloc_extension.h>
 
+#include "kudu/gutil/atomicops.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/once.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/stringprintf.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/gutil/walltime.h"
-#include "kudu/util/debug/trace_event.h"
+#include "kudu/gutil/walltime.h"          // IWYU pragma: keep
+#include "kudu/util/debug/trace_event.h"  // IWYU pragma: keep
 #include "kudu/util/env.h"
 #include "kudu/util/flag_tags.h"
-#include "kudu/util/mem_tracker.h"
+#include "kudu/util/locks.h"
+#include "kudu/util/mem_tracker.h"        // IWYU pragma: keep
 #include "kudu/util/process_memory.h"
 #include "kudu/util/random.h"
-#include "kudu/util/striped64.h"
+#include "kudu/util/status.h"
 
 DEFINE_int64(memory_limit_hard_bytes, 0,
              "Maximum amount of memory this daemon should use, in bytes. "

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/protoc-gen-insertions.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/protoc-gen-insertions.cc b/src/kudu/util/protoc-gen-insertions.cc
index cd87c87..5d1097e 100644
--- a/src/kudu/util/protoc-gen-insertions.cc
+++ b/src/kudu/util/protoc-gen-insertions.cc
@@ -18,13 +18,17 @@
 // Simple protoc plugin which inserts some code at the top of each generated protobuf.
 // Currently, this just adds an include of protobuf-annotations.h, a file which hooks up
 // the protobuf concurrency annotations to our TSAN annotations.
-#include <glog/logging.h>
+
+#include <string>
+
 #include <google/protobuf/compiler/code_generator.h>
 #include <google/protobuf/compiler/plugin.h>
 #include <google/protobuf/descriptor.h>
 #include <google/protobuf/io/printer.h>
 #include <google/protobuf/io/zero_copy_stream.h>
+
 #include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/strip.h"
 #include "kudu/gutil/strings/substitute.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/pstack_watcher-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/pstack_watcher-test.cc b/src/kudu/util/pstack_watcher-test.cc
index 652fec2..abc39e4 100644
--- a/src/kudu/util/pstack_watcher-test.cc
+++ b/src/kudu/util/pstack_watcher-test.cc
@@ -17,17 +17,22 @@
 
 #include "kudu/util/pstack_watcher.h"
 
-#include <gtest/gtest.h>
-#include <memory>
-#include <poll.h>
-#include <stdio.h>
 #include <unistd.h>
-#include <vector>
+
+#include <cerrno>
+#include <memory>
+#include <cstdio>
+#include <string>
+
+#include <glog/logging.h>
+#include <gtest/gtest.h>
 
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/util/bitmap.h"
 #include "kudu/util/env.h"
 #include "kudu/util/errno.h"
+#include "kudu/util/faststring.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/status.h"
 #include "kudu/util/test_macros.h"
 
 using std::shared_ptr;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/pstack_watcher.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/pstack_watcher.cc b/src/kudu/util/pstack_watcher.cc
index 1963f99..6cf63d3 100644
--- a/src/kudu/util/pstack_watcher.cc
+++ b/src/kudu/util/pstack_watcher.cc
@@ -17,18 +17,23 @@
 
 #include "kudu/util/pstack_watcher.h"
 
+#include <unistd.h>
+
+#include <cerrno>
+#include <cstdio>
 #include <memory>
-#include <stdio.h>
 #include <string>
-#include <sys/types.h>
-#include <unistd.h>
 #include <vector>
 
+#include <boost/bind.hpp>
+#include <glog/logging.h>
+
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/env.h"
 #include "kudu/util/errno.h"
 #include "kudu/util/status.h"
 #include "kudu/util/subprocess.h"
+#include "kudu/util/thread.h"
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/pstack_watcher.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/pstack_watcher.h b/src/kudu/util/pstack_watcher.h
index 396bf94..5d11d3d 100644
--- a/src/kudu/util/pstack_watcher.h
+++ b/src/kudu/util/pstack_watcher.h
@@ -17,17 +17,21 @@
 #ifndef KUDU_UTIL_PSTACK_WATCHER_H
 #define KUDU_UTIL_PSTACK_WATCHER_H
 
+#include <sys/types.h>
+
 #include <string>
 #include <vector>
 
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/util/condition_variable.h"
 #include "kudu/util/monotime.h"
 #include "kudu/util/mutex.h"
 #include "kudu/util/status.h"
-#include "kudu/util/thread.h"
 
 namespace kudu {
 
+class Thread;
+
 // PstackWatcher is an object which will pstack the current process and print
 // the results to stdout.  It does this after a certain timeout has occured.
 class PstackWatcher {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/random-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/random-test.cc b/src/kudu/util/random-test.cc
index 0528b93..26c7ab5 100644
--- a/src/kudu/util/random-test.cc
+++ b/src/kudu/util/random-test.cc
@@ -15,10 +15,13 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <cmath>
+#include <cstdint>
 #include <limits>
 #include <unordered_set>
+#include <vector>
 
-#include <glog/stl_logging.h>
+#include <gtest/gtest.h>
 
 #include "kudu/util/random.h"
 #include "kudu/util/test_util.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/random_util-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/random_util-test.cc b/src/kudu/util/random_util-test.cc
index f3eb7d5..993ef15 100644
--- a/src/kudu/util/random_util-test.cc
+++ b/src/kudu/util/random_util-test.cc
@@ -17,9 +17,11 @@
 
 #include "kudu/util/random_util.h"
 
-#include <algorithm>
-#include <cmath>
 #include <cstring>
+#include <ostream>
+
+#include <glog/logging.h>
+#include <gtest/gtest.h>
 
 #include "kudu/util/random.h"
 #include "kudu/util/test_util.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/random_util.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/random_util.cc b/src/kudu/util/random_util.cc
index 21a4144..a102a32 100644
--- a/src/kudu/util/random_util.cc
+++ b/src/kudu/util/random_util.cc
@@ -17,11 +17,10 @@
 
 #include "kudu/util/random_util.h"
 
-#include <cmath>
+#include <unistd.h>
+
 #include <cstdlib>
 #include <cstring>
-#include <sys/types.h>
-#include <unistd.h>
 
 #include "kudu/util/env.h"
 #include "kudu/util/random.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/resettable_heartbeater-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/resettable_heartbeater-test.cc b/src/kudu/util/resettable_heartbeater-test.cc
index 0e4cf3b..e3989b7 100644
--- a/src/kudu/util/resettable_heartbeater-test.cc
+++ b/src/kudu/util/resettable_heartbeater-test.cc
@@ -17,15 +17,19 @@
 
 #include "kudu/util/resettable_heartbeater.h"
 
-#include <boost/bind.hpp>
-#include <gtest/gtest.h>
+#include <cstdint>
+#include <ostream>
 #include <string>
 
+#include <boost/bind.hpp> // IWYU pragma: keep
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/util/countdown_latch.h"
-#include "kudu/util/locks.h"
 #include "kudu/util/monotime.h"
 #include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/resettable_heartbeater.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/resettable_heartbeater.cc b/src/kudu/util/resettable_heartbeater.cc
index 848590c..5ec87fc 100644
--- a/src/kudu/util/resettable_heartbeater.cc
+++ b/src/kudu/util/resettable_heartbeater.cc
@@ -17,13 +17,19 @@
 
 #include "kudu/util/resettable_heartbeater.h"
 
-#include <glog/logging.h>
+#include <algorithm>
+#include <cstdint>
+#include <cstdlib>
 #include <mutex>
+#include <ostream>
+
+#include <glog/logging.h>
 
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/countdown_latch.h"
 #include "kudu/util/locks.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/random.h"
 #include "kudu/util/status.h"
 #include "kudu/util/thread.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/resettable_heartbeater.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/resettable_heartbeater.h b/src/kudu/util/resettable_heartbeater.h
index 40bbe29..5699f91 100644
--- a/src/kudu/util/resettable_heartbeater.h
+++ b/src/kudu/util/resettable_heartbeater.h
@@ -18,9 +18,10 @@
 #ifndef KUDU_UTIL_RESETTABLE_HEARTBEATER_H_
 #define KUDU_UTIL_RESETTABLE_HEARTBEATER_H_
 
-#include <boost/function.hpp>
 #include <string>
 
+#include <boost/function.hpp>
+
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/rle-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/rle-test.cc b/src/kudu/util/rle-test.cc
index 874bd71..20d0a27 100644
--- a/src/kudu/util/rle-test.cc
+++ b/src/kudu/util/rle-test.cc
@@ -14,20 +14,29 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-#include <stdlib.h>
-#include <stdio.h>
+
+#include <algorithm>
+#include <cstdint>
+#include <cstdlib>
+#include <cstring>
+#include <ostream>
+#include <string>
+#include <vector>
 
 // Must come before gtest.h.
 #include "kudu/gutil/mathlimits.h"
 
 #include <boost/utility/binary.hpp>
+#include <glog/logging.h>
 #include <gtest/gtest.h>
-#include <string>
-#include <vector>
 
-#include "kudu/util/rle-encoding.h"
 #include "kudu/util/bit-stream-utils.h"
+#include "kudu/util/bit-stream-utils.inline.h"
+#include "kudu/util/bit-util.h"
+#include "kudu/util/faststring.h"
 #include "kudu/util/hexdump.h"
+#include "kudu/util/rle-encoding.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/test_util.h"
 
 using std::string;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/rolling_log-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/rolling_log-test.cc b/src/kudu/util/rolling_log-test.cc
index 3c6f60b..626c0de 100644
--- a/src/kudu/util/rolling_log-test.cc
+++ b/src/kudu/util/rolling_log-test.cc
@@ -17,15 +17,23 @@
 
 #include "kudu/util/rolling_log.h"
 
-#include <glog/logging.h>
-#include <glog/stl_logging.h>
+#include <unistd.h>
+
+#include <cstdint>
 #include <string>
 #include <vector>
 
+#include <glog/stl_logging.h>
+#include <gtest/gtest.h>
+
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/strings/stringpiece.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/gutil/strings/util.h"
 #include "kudu/util/env.h"
+#include "kudu/util/faststring.h"
 #include "kudu/util/path_util.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/util/rolling_log.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/rolling_log.cc b/src/kudu/util/rolling_log.cc
index 486abc0..cc24b8a 100644
--- a/src/kudu/util/rolling_log.cc
+++ b/src/kudu/util/rolling_log.cc
@@ -18,13 +18,16 @@
 #include "kudu/util/rolling_log.h"
 
 #include <unistd.h>
-#include <sys/types.h>
 
+#include <algorithm>
+#include <ctime>
 #include <iomanip>
 #include <memory>
 #include <ostream>
 #include <string>
 
+#include <gflags/gflags.h>
+#include <glog/logging.h>
 #include <zlib.h>
 
 #include "kudu/gutil/strings/numbers.h"
@@ -33,7 +36,7 @@
 #include "kudu/util/env.h"
 #include "kudu/util/net/net_util.h"
 #include "kudu/util/path_util.h"
-#include "kudu/util/thread_restrictions.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/user.h"
 
 using std::ostringstream;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/rolling_log.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/rolling_log.h b/src/kudu/util/rolling_log.h
index 2559d6d..01829f0 100644
--- a/src/kudu/util/rolling_log.h
+++ b/src/kudu/util/rolling_log.h
@@ -17,6 +17,7 @@
 #ifndef KUDU_UTIL_ROLLING_LOG_H
 #define KUDU_UTIL_ROLLING_LOG_H
 
+#include <cstdint>
 #include <memory>
 #include <string>
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/rw_mutex-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/rw_mutex-test.cc b/src/kudu/util/rw_mutex-test.cc
index 7f9e376..c2cb394 100644
--- a/src/kudu/util/rw_mutex-test.cc
+++ b/src/kudu/util/rw_mutex-test.cc
@@ -15,12 +15,15 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <gtest/gtest.h>
+#include <cstdint>
 #include <mutex>
+#include <ostream>
 #include <thread>
 #include <vector>
 
-#include "kudu/gutil/integral_types.h"
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
 #include "kudu/util/atomic.h"
 #include "kudu/util/locks.h"
 #include "kudu/util/monotime.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/rw_mutex.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/rw_mutex.cc b/src/kudu/util/rw_mutex.cc
index 6dd8f3e..59139af 100644
--- a/src/kudu/util/rw_mutex.cc
+++ b/src/kudu/util/rw_mutex.cc
@@ -17,8 +17,12 @@
 
 #include "kudu/util/rw_mutex.h"
 
-#include <glog/logging.h>
+#include <cerrno>
+#include <cstring>
 #include <mutex>
+#include <ostream>
+
+#include <glog/logging.h>
 
 #include "kudu/gutil/map-util.h"
 #include "kudu/util/env.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/rw_mutex.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/rw_mutex.h b/src/kudu/util/rw_mutex.h
index 969f2be..84f77d2 100644
--- a/src/kudu/util/rw_mutex.h
+++ b/src/kudu/util/rw_mutex.h
@@ -18,6 +18,8 @@
 #pragma once
 
 #include <pthread.h>
+#include <sys/types.h>
+
 #include <unordered_set>
 
 #include "kudu/gutil/macros.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/rw_semaphore-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/rw_semaphore-test.cc b/src/kudu/util/rw_semaphore-test.cc
index d12fda1..7717608 100644
--- a/src/kudu/util/rw_semaphore-test.cc
+++ b/src/kudu/util/rw_semaphore-test.cc
@@ -15,11 +15,14 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <gtest/gtest.h>
+#include <cstdint>
 #include <mutex>
 #include <thread>
 #include <vector>
 
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
 #include "kudu/util/locks.h"
 #include "kudu/util/monotime.h"
 #include "kudu/util/rw_semaphore.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/rwc_lock-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/rwc_lock-test.cc b/src/kudu/util/rwc_lock-test.cc
index 99c8071..17c2b19 100644
--- a/src/kudu/util/rwc_lock-test.cc
+++ b/src/kudu/util/rwc_lock-test.cc
@@ -20,10 +20,14 @@
 #include <thread>
 #include <vector>
 
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
 #include "kudu/gutil/atomicops.h"
+#include "kudu/util/locks.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/rwc_lock.h"
 #include "kudu/util/test_util.h"
-#include "kudu/util/locks.h"
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/rwc_lock.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/rwc_lock.cc b/src/kudu/util/rwc_lock.cc
index efe3ccc..0749822 100644
--- a/src/kudu/util/rwc_lock.cc
+++ b/src/kudu/util/rwc_lock.cc
@@ -22,7 +22,6 @@
 #ifndef NDEBUG
 #include "kudu/gutil/walltime.h"
 #include "kudu/util/debug-util.h"
-#include "kudu/util/env.h"
 #include "kudu/util/thread.h"
 #endif // NDEBUG
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/rwc_lock.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/rwc_lock.h b/src/kudu/util/rwc_lock.h
index 6d4cb70..98c7965 100644
--- a/src/kudu/util/rwc_lock.h
+++ b/src/kudu/util/rwc_lock.h
@@ -17,6 +17,8 @@
 #ifndef KUDU_UTIL_RWC_LOCK_H
 #define KUDU_UTIL_RWC_LOCK_H
 
+#include <cstdint>
+
 #include "kudu/gutil/macros.h"
 #include "kudu/util/condition_variable.h"
 #include "kudu/util/mutex.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/semaphore.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/semaphore.cc b/src/kudu/util/semaphore.cc
index 985da44..d9bc5a5 100644
--- a/src/kudu/util/semaphore.cc
+++ b/src/kudu/util/semaphore.cc
@@ -18,8 +18,18 @@
 #include "kudu/util/semaphore.h"
 
 #include <semaphore.h>
+
+#include <cerrno>
+#include <cstdint>
+#include <cstdlib>
+#include <ctime>
+#include <ostream>
+
 #include <glog/logging.h>
+
 #include "kudu/gutil/walltime.h"
+#include "kudu/util/monotime.h"
+
 namespace kudu {
 
 Semaphore::Semaphore(int capacity) {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/semaphore.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/semaphore.h b/src/kudu/util/semaphore.h
index 88a1086..4f12658 100644
--- a/src/kudu/util/semaphore.h
+++ b/src/kudu/util/semaphore.h
@@ -25,10 +25,11 @@
 
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/port.h"
-#include "kudu/util/monotime.h"
 
 namespace kudu {
 
+class MonoDelta;
+
 // Wrapper for POSIX semaphores.
 class Semaphore {
  public:

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/semaphore_macosx.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/semaphore_macosx.cc b/src/kudu/util/semaphore_macosx.cc
index 7cc5f08..e2d235c 100644
--- a/src/kudu/util/semaphore_macosx.cc
+++ b/src/kudu/util/semaphore_macosx.cc
@@ -18,8 +18,11 @@
 #include "kudu/util/semaphore.h"
 
 #include <semaphore.h>
+
 #include <glog/logging.h>
+
 #include "kudu/gutil/walltime.h"
+#include "kudu/util/monotime.h"
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/signal.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/signal.cc b/src/kudu/util/signal.cc
index 2de3000..e8b6e79 100644
--- a/src/kudu/util/signal.cc
+++ b/src/kudu/util/signal.cc
@@ -17,7 +17,7 @@
 
 #include "kudu/util/signal.h"
 
-#include "kudu/util/logging.h"
+#include <glog/logging.h>
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/slice-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/slice-test.cc b/src/kudu/util/slice-test.cc
index b0d3bef..0f7a893 100644
--- a/src/kudu/util/slice-test.cc
+++ b/src/kudu/util/slice-test.cc
@@ -17,6 +17,11 @@
 
 #include "kudu/util/slice.h"
 
+#include <cstdint>
+#include <map>
+#include <string>
+#include <utility>
+
 #include <gtest/gtest.h>
 
 #include "kudu/gutil/map-util.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/slice.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/slice.cc b/src/kudu/util/slice.cc
index 7e6ab50..5d672ae 100644
--- a/src/kudu/util/slice.cc
+++ b/src/kudu/util/slice.cc
@@ -17,6 +17,9 @@
 
 #include "kudu/util/slice.h"
 
+#include <cctype>
+
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/stringprintf.h"
 #include "kudu/util/status.h"
 #include "kudu/util/logging.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/slice.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/slice.h b/src/kudu/util/slice.h
index 8738a5d..72ad305 100644
--- a/src/kudu/util/slice.h
+++ b/src/kudu/util/slice.h
@@ -7,11 +7,15 @@
 #ifndef KUDU_UTIL_SLICE_H_
 #define KUDU_UTIL_SLICE_H_
 
-#include <assert.h>
-#include <map>
-#include <stddef.h>
+// NOTE: using stdint.h instead of cstdint because this file is supposed
+//       to be processed by a compiler lacking C++11 support.
 #include <stdint.h>
-#include <string.h>
+
+#include <cassert>
+#include <cstddef>
+#include <cstring>
+#include <iosfwd>
+#include <map>
 #include <string>
 
 #ifdef KUDU_HEADERS_USE_RICH_SLICE

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/spinlock_profiling-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/spinlock_profiling-test.cc b/src/kudu/util/spinlock_profiling-test.cc
index 54d8327..5a9fd6b 100644
--- a/src/kudu/util/spinlock_profiling-test.cc
+++ b/src/kudu/util/spinlock_profiling-test.cc
@@ -15,12 +15,18 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <cstdint>
+#include <ostream>
+#include <string>
+
 #include <gtest/gtest.h>
 #include <glog/logging.h>
-#include <strstream>
 
+#include "kudu/gutil/integral_types.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/spinlock.h"
 #include "kudu/util/spinlock_profiling.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 #include "kudu/util/trace.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/spinlock_profiling.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/spinlock_profiling.cc b/src/kudu/util/spinlock_profiling.cc
index 001f8d5..8e639ac 100644
--- a/src/kudu/util/spinlock_profiling.cc
+++ b/src/kudu/util/spinlock_profiling.cc
@@ -18,21 +18,28 @@
 #include "kudu/util/spinlock_profiling.h"
 
 #include <sstream>
+#include <string>
 
 #include <glog/logging.h>
 #include <gflags/gflags.h>
 
 #include "kudu/gutil/atomicops.h"
-#include "kudu/gutil/basictypes.h"
+#include "kudu/gutil/bind.h"
+#include "kudu/gutil/casts.h"
+#include "kudu/gutil/integral_types.h"
 #include "kudu/gutil/macros.h"
+#include "kudu/gutil/once.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/spinlock.h"
 #include "kudu/gutil/strings/human_readable.h"
 #include "kudu/gutil/sysinfo.h"
+#include "kudu/util/atomic.h"
 #include "kudu/util/debug-util.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/metrics.h"
 #include "kudu/util/striped64.h"
 #include "kudu/util/trace.h"
+#include "kudu/util/trace_metrics.h"
 
 DEFINE_int32(lock_contention_trace_threshold_cycles,
              2000000, // 2M cycles should be about 1ms

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/spinlock_profiling.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/spinlock_profiling.h b/src/kudu/util/spinlock_profiling.h
index d5b5f15..3bfb09e 100644
--- a/src/kudu/util/spinlock_profiling.h
+++ b/src/kudu/util/spinlock_profiling.h
@@ -17,9 +17,9 @@
 #ifndef KUDU_UTIL_SPINLOCK_PROFILING_H
 #define KUDU_UTIL_SPINLOCK_PROFILING_H
 
+#include <cstdint>
 #include <iosfwd>
 
-#include "kudu/gutil/macros.h"
 #include "kudu/gutil/ref_counted.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/stack_watchdog-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/stack_watchdog-test.cc b/src/kudu/util/stack_watchdog-test.cc
index 9bbb097..a08887f 100644
--- a/src/kudu/util/stack_watchdog-test.cc
+++ b/src/kudu/util/stack_watchdog-test.cc
@@ -17,13 +17,18 @@
 
 #include "kudu/util/kernel_stack_watchdog.h"
 
-#include <gflags/gflags.h>
 #include <string>
 #include <vector>
 
+#include <gflags/gflags_declare.h>
+#include <gtest/gtest.h>
+
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/util/monotime.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/util/status-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/status-test.cc b/src/kudu/util/status-test.cc
index 1ff8182..0112a26 100644
--- a/src/kudu/util/status-test.cc
+++ b/src/kudu/util/status-test.cc
@@ -2,13 +2,15 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include <glog/logging.h>
+#include <algorithm>
+#include <cerrno>
+#include <string>
+
 #include <gtest/gtest.h>
 
-#include <errno.h>
-#include <vector>
+#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
-#include "kudu/util/test_util.h"
+#include "kudu/util/test_macros.h"
 
 using std::string;
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/status.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/status.cc b/src/kudu/util/status.cc
index 2d368dd..1197682 100644
--- a/src/kudu/util/status.cc
+++ b/src/kudu/util/status.cc
@@ -4,8 +4,10 @@
 
 #include "kudu/util/status.h"
 
-#include <stdio.h>
-#include <stdint.h>
+#include <cstdio>
+#include <cstring>
+
+#include <glog/logging.h>
 
 #include "kudu/gutil/strings/fastmem.h"
 #include "kudu/util/malloc.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/status.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/status.h b/src/kudu/util/status.h
index ff65b57..6318e6d 100644
--- a/src/kudu/util/status.h
+++ b/src/kudu/util/status.h
@@ -13,9 +13,12 @@
 #ifndef KUDU_UTIL_STATUS_H_
 #define KUDU_UTIL_STATUS_H_
 
+// NOTE: using stdint.h instead of cstdint and errno.h instead of errno because
+// this file is supposed to be processed by a compiler lacking C++11 support.
 #include <errno.h>
 #include <stdint.h>
 
+#include <cstddef>
 #include <string>
 
 #ifdef KUDU_HEADERS_NO_STUBS

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/status_callback.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/status_callback.cc b/src/kudu/util/status_callback.cc
index 667bfec..a3932b5 100644
--- a/src/kudu/util/status_callback.cc
+++ b/src/kudu/util/status_callback.cc
@@ -17,6 +17,11 @@
 
 #include "kudu/util/status_callback.h"
 
+#include <ostream>
+
+#include <glog/logging.h>
+
+#include "kudu/gutil/port.h"
 #include "kudu/util/status.h"
 
 using std::string;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/string_case-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/string_case-test.cc b/src/kudu/util/string_case-test.cc
index ae166f5..96831a1 100644
--- a/src/kudu/util/string_case-test.cc
+++ b/src/kudu/util/string_case-test.cc
@@ -15,6 +15,8 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <string>
+
 #include <gtest/gtest.h>
 
 #include "kudu/util/string_case.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/string_case.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/string_case.cc b/src/kudu/util/string_case.cc
index 141cdc5..7cf60ab 100644
--- a/src/kudu/util/string_case.cc
+++ b/src/kudu/util/string_case.cc
@@ -17,8 +17,11 @@
 
 #include "kudu/util/string_case.h"
 
+#include <cctype>
+#include <cstdint>
+#include <ostream>
+
 #include <glog/logging.h>
-#include <ctype.h>
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/striped64-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/striped64-test.cc b/src/kudu/util/striped64-test.cc
index fee07ca..96f3dfc 100644
--- a/src/kudu/util/striped64-test.cc
+++ b/src/kudu/util/striped64-test.cc
@@ -15,11 +15,18 @@
 // specific language governing permissions and limitations
 // under the License.
 
+
+#include <cstdint>
+#include <ostream>
+#include <vector>
+
+#include <gflags/gflags.h>
 #include <glog/logging.h>
 #include <gtest/gtest.h>
-#include <memory>
 
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/util/atomic.h"
 #include "kudu/util/monotime.h"
 #include "kudu/util/striped64.h"
 #include "kudu/util/test_util.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/striped64.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/striped64.cc b/src/kudu/util/striped64.cc
index cf6c780..c8636d5 100644
--- a/src/kudu/util/striped64.cc
+++ b/src/kudu/util/striped64.cc
@@ -17,9 +17,17 @@
 
 #include "kudu/util/striped64.h"
 
+#include <mm_malloc.h>
+#include <unistd.h>
+
+#include <cstdlib>
+#include <new>
+#include <ostream>
+#include <glog/logging.h>
+
+#include "kudu/gutil/atomicops.h"
 #include "kudu/util/monotime.h"
 #include "kudu/util/random.h"
-#include "kudu/util/threadlocal.h"
 
 using kudu::striped64::internal::Cell;
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/striped64.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/striped64.h b/src/kudu/util/striped64.h
index a3b829b..87df22d 100644
--- a/src/kudu/util/striped64.h
+++ b/src/kudu/util/striped64.h
@@ -18,14 +18,13 @@
 #ifndef KUDU_UTIL_STRIPED64_H_
 #define KUDU_UTIL_STRIPED64_H_
 
+#include <cstdint>
+
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/port.h"
 #include "kudu/util/atomic.h"
-#include "kudu/util/threadlocal.h"
 
 namespace kudu {
-
-class Striped64;
-
 namespace striped64 {
 namespace internal {
 


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

Posted by al...@apache.org.
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;


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

Posted by al...@apache.org.
http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/clock/system_unsync_time.h
----------------------------------------------------------------------
diff --git a/src/kudu/clock/system_unsync_time.h b/src/kudu/clock/system_unsync_time.h
index a9b8838..455b321 100644
--- a/src/kudu/clock/system_unsync_time.h
+++ b/src/kudu/clock/system_unsync_time.h
@@ -16,6 +16,8 @@
 // under the License.
 #pragma once
 
+#include <cstdint>
+
 #include "kudu/clock/time_service.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/util/status.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/codegen/code_cache.cc
----------------------------------------------------------------------
diff --git a/src/kudu/codegen/code_cache.cc b/src/kudu/codegen/code_cache.cc
index 557053b..bd3b17d 100644
--- a/src/kudu/codegen/code_cache.cc
+++ b/src/kudu/codegen/code_cache.cc
@@ -17,12 +17,18 @@
 
 #include "kudu/codegen/code_cache.h"
 
+#include <cstring>
+
+#include <glog/logging.h>
+
 #include "kudu/codegen/jit_wrapper.h"
 #include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/util/cache.h"
 #include "kudu/util/faststring.h"
 #include "kudu/util/slice.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 namespace codegen {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/codegen/code_cache.h
----------------------------------------------------------------------
diff --git a/src/kudu/codegen/code_cache.h b/src/kudu/codegen/code_cache.h
index 455267d..0036cf4 100644
--- a/src/kudu/codegen/code_cache.h
+++ b/src/kudu/codegen/code_cache.h
@@ -18,15 +18,17 @@
 #ifndef KUDU_CODEGEN_CODE_CACHE_H
 #define KUDU_CODEGEN_CODE_CACHE_H
 
-#include "kudu/codegen/row_projector.h"
+#include <cstddef>
+
 #include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/ref_counted.h"
-#include "kudu/util/faststring.h"
 
 namespace kudu {
 
 class Cache;
-class Schema;
+class Slice;
+class Status;
 
 namespace codegen {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/codegen/code_generator.cc
----------------------------------------------------------------------
diff --git a/src/kudu/codegen/code_generator.cc b/src/kudu/codegen/code_generator.cc
index 8be6388..e249d88 100644
--- a/src/kudu/codegen/code_generator.cc
+++ b/src/kudu/codegen/code_generator.cc
@@ -18,29 +18,27 @@
 #include "kudu/codegen/code_generator.h"
 
 #include <algorithm>
+#include <cstddef>
+#include <cstdint>
 #include <cctype>
 #include <sstream>
 #include <string>
 
+#include <gflags/gflags.h>
 #include <glog/logging.h>
+#include <llvm/ADT/ArrayRef.h>
 #include <llvm/ADT/StringRef.h>
-#include <llvm/ExecutionEngine/ExecutionEngine.h>
-#include <llvm/IR/Instructions.h>
-#include <llvm/IR/Module.h>
 #include <llvm/MC/MCContext.h>
 #include <llvm/MC/MCDisassembler/MCDisassembler.h>
 #include <llvm/MC/MCInst.h>
 #include <llvm/MC/MCInstPrinter.h>
+#include <llvm/MC/MCSubtargetInfo.h>
+#include <llvm/Support/raw_ostream.h>
 #include <llvm/Support/raw_os_ostream.h>
 #include <llvm/Support/TargetRegistry.h>
 #include <llvm/Support/TargetSelect.h>
-#include <llvm/Target/TargetInstrInfo.h>
 #include <llvm/Target/TargetMachine.h>
-#include <llvm/Target/TargetRegisterInfo.h>
-#include <llvm/Target/TargetSubtargetInfo.h>
 
-#include "kudu/codegen/jit_wrapper.h"
-#include "kudu/codegen/module_builder.h"
 #include "kudu/codegen/row_projector.h"
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
@@ -62,10 +60,10 @@ namespace llvm {
 class MCAsmInfo;
 class MCInstrInfo;
 class MCRegisterInfo;
+class Triple;
 } // namespace llvm
 
 using llvm::ArrayRef;
-using llvm::ExecutionEngine;
 using llvm::MCAsmInfo;
 using llvm::MCContext;
 using llvm::MCDisassembler;
@@ -74,7 +72,6 @@ using llvm::MCInstPrinter;
 using llvm::MCInstrInfo;
 using llvm::MCRegisterInfo;
 using llvm::MCSubtargetInfo;
-using llvm::Module;
 using llvm::raw_os_ostream;
 using llvm::StringRef;
 using llvm::Target;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/codegen/code_generator.h
----------------------------------------------------------------------
diff --git a/src/kudu/codegen/code_generator.h b/src/kudu/codegen/code_generator.h
index d8e1a2c..770bd05 100644
--- a/src/kudu/codegen/code_generator.h
+++ b/src/kudu/codegen/code_generator.h
@@ -18,15 +18,11 @@
 #ifndef KUDU_CODEGEN_CODE_GENERATOR_H
 #define KUDU_CODEGEN_CODE_GENERATOR_H
 
-#include "kudu/codegen/row_projector.h"
-#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
-#include "kudu/gutil/ref_counted.h"
 #include "kudu/util/status.h"
 
-namespace llvm {
-class LLVMContext;
-} // namespace llvm
+template <class T>
+class scoped_refptr;
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/codegen/codegen-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/codegen/codegen-test.cc b/src/kudu/codegen/codegen-test.cc
index b90bc70..3a64d18 100644
--- a/src/kudu/codegen/codegen-test.cc
+++ b/src/kudu/codegen/codegen-test.cc
@@ -16,25 +16,36 @@
 // under the License.
 
 #include <algorithm>
+#include <cstddef>
+#include <cstdint>
+#include <ostream>
 #include <string>
 #include <vector>
 
+#include <gflags/gflags_declare.h>
 #include <glog/logging.h>
-#include <glog/stl_logging.h>
+#include <glog/stl_logging.h> // IWYU pragma: keep
 #include <gmock/gmock.h>
+#include <gtest/gtest.h>
 
 #include "kudu/codegen/code_generator.h"
 #include "kudu/codegen/compilation_manager.h"
 #include "kudu/codegen/row_projector.h"
+#include "kudu/common/common.pb.h"
 #include "kudu/common/row.h"
 #include "kudu/common/rowblock.h"
 #include "kudu/common/schema.h"
 #include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/ref_counted.h"
-#include "kudu/util/bitmap.h"
+#include "kudu/gutil/singleton.h"
 #include "kudu/util/logging_test_util.h"
+#include "kudu/util/memory/arena.h"
 #include "kudu/util/random.h"
 #include "kudu/util/random_util.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/codegen/compilation_manager.cc
----------------------------------------------------------------------
diff --git a/src/kudu/codegen/compilation_manager.cc b/src/kudu/codegen/compilation_manager.cc
index a6fcd66..30719b4 100644
--- a/src/kudu/codegen/compilation_manager.cc
+++ b/src/kudu/codegen/compilation_manager.cc
@@ -17,24 +17,27 @@
 
 #include "kudu/codegen/compilation_manager.h"
 
-#include <boost/bind.hpp>
-#include <boost/function.hpp>
 #include <cstdlib>
+#include <memory>
+#include <ostream>
+#include <string>
+
 #include <gflags/gflags.h>
 #include <glog/logging.h>
-#include <memory>
 
 #include "kudu/codegen/code_cache.h"
 #include "kudu/codegen/code_generator.h"
 #include "kudu/codegen/jit_wrapper.h"
 #include "kudu/codegen/row_projector.h"
 #include "kudu/common/schema.h"
+#include "kudu/gutil/bind.h"
+#include "kudu/gutil/bind_helpers.h"
+#include "kudu/gutil/callback.h"
 #include "kudu/gutil/casts.h"
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/util/faststring.h"
 #include "kudu/util/flag_tags.h"
-#include "kudu/util/logging.h"
 #include "kudu/util/metrics.h"
 #include "kudu/util/monotime.h"
 #include "kudu/util/slice.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/codegen/compilation_manager.h
----------------------------------------------------------------------
diff --git a/src/kudu/codegen/compilation_manager.h b/src/kudu/codegen/compilation_manager.h
index 4dad444..77c829a 100644
--- a/src/kudu/codegen/compilation_manager.h
+++ b/src/kudu/codegen/compilation_manager.h
@@ -18,19 +18,21 @@
 #ifndef KUDU_CODEGEN_COMPILATION_MANAGER_H
 #define KUDU_CODEGEN_COMPILATION_MANAGER_H
 
+#include <cstdint>
+
 #include "kudu/codegen/code_generator.h"
 #include "kudu/codegen/code_cache.h"
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/singleton.h"
 #include "kudu/util/atomic.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
 
-class Counter;
 class MetricEntity;
-class MetricRegistry;
+class Schema;
 class ThreadPool;
 
 namespace codegen {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/codegen/jit_wrapper.cc
----------------------------------------------------------------------
diff --git a/src/kudu/codegen/jit_wrapper.cc b/src/kudu/codegen/jit_wrapper.cc
index 056baac..8923a33 100644
--- a/src/kudu/codegen/jit_wrapper.cc
+++ b/src/kudu/codegen/jit_wrapper.cc
@@ -17,9 +17,9 @@
 
 #include "kudu/codegen/jit_wrapper.h"
 
-#include <llvm/ExecutionEngine/ExecutionEngine.h>
+#include <algorithm>
 
-#include "kudu/util/faststring.h"
+#include <llvm/ExecutionEngine/ExecutionEngine.h>
 
 using llvm::ExecutionEngine;
 using std::unique_ptr;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/codegen/jit_wrapper.h
----------------------------------------------------------------------
diff --git a/src/kudu/codegen/jit_wrapper.h b/src/kudu/codegen/jit_wrapper.h
index 1998167..bc79a6a 100644
--- a/src/kudu/codegen/jit_wrapper.h
+++ b/src/kudu/codegen/jit_wrapper.h
@@ -20,13 +20,13 @@
 
 #include <memory>
 
-#include "kudu/gutil/casts.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/util/status.h"
+// IWYU pragma: no_include <llvm/ExecutionEngine/ExecutionEngine.h>
 
 namespace llvm {
-class ExecutionEngine;
+class ExecutionEngine;  // IWYU pragma: keep
 } // namespace llvm
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/codegen/module_builder.cc
----------------------------------------------------------------------
diff --git a/src/kudu/codegen/module_builder.cc b/src/kudu/codegen/module_builder.cc
index 61d9e13..0b0834d 100644
--- a/src/kudu/codegen/module_builder.cc
+++ b/src/kudu/codegen/module_builder.cc
@@ -17,35 +17,45 @@
 
 #include "kudu/codegen/module_builder.h"
 
-#include <cstdlib>
+#include <algorithm>
+#include <cstdint>
 #include <sstream>
 #include <string>
 #include <unordered_set>
 #include <vector>
 
+
+// NOTE: among the headers below, the MCJIT.h header file is needed
+//       for successful run-time operation of the code generator.
 #include <glog/logging.h>
+#include <llvm/ADT/StringMap.h>
 #include <llvm/ADT/StringRef.h>
-#include <llvm/Analysis/Passes.h>
 #include <llvm/ExecutionEngine/ExecutionEngine.h>
-#include <llvm/ExecutionEngine/MCJIT.h>
+#include <llvm/ExecutionEngine/MCJIT.h> // IWYU pragma: keep
+#include <llvm/IR/Constant.h>
+#include <llvm/IR/Constants.h>
 #include <llvm/IR/DerivedTypes.h>
 #include <llvm/IR/Function.h>
 #include <llvm/IR/GlobalValue.h>
-#include <llvm/IR/IRBuilder.h>
-#include <llvm/IR/LegacyPassManager.h>
 #include <llvm/IR/LLVMContext.h>
+#include <llvm/IR/LegacyPassManager.h>
 #include <llvm/IR/Module.h>
 #include <llvm/IR/Type.h>
 #include <llvm/IRReader/IRReader.h>
+#include <llvm/Pass.h>
+#include <llvm/Support/CodeGen.h>
+#include <llvm/Support/Host.h>
 #include <llvm/Support/MemoryBuffer.h>
-#include <llvm/Support/raw_os_ostream.h>
 #include <llvm/Support/SourceMgr.h>
+#include <llvm/Support/raw_os_ostream.h>
+#include <llvm/Support/raw_ostream.h>
+#include <llvm/Target/TargetMachine.h>
 #include <llvm/Transforms/IPO.h>
 #include <llvm/Transforms/IPO/AlwaysInliner.h>
 #include <llvm/Transforms/IPO/PassManagerBuilder.h>
 
 #include "kudu/codegen/precompiled.ll.h"
-#include "kudu/gutil/macros.h"
+#include "kudu/gutil/basictypes.h"
 #include "kudu/gutil/map-util.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/status.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/codegen/module_builder.h
----------------------------------------------------------------------
diff --git a/src/kudu/codegen/module_builder.h b/src/kudu/codegen/module_builder.h
index 4b500dd..8f32066 100644
--- a/src/kudu/codegen/module_builder.h
+++ b/src/kudu/codegen/module_builder.h
@@ -24,8 +24,8 @@
 #include <vector>
 
 #include <llvm/IR/IRBuilder.h>
-#include <llvm/IR/Module.h>
 
+#include "kudu/gutil/macros.h"
 #include "kudu/util/status.h"
 
 namespace llvm {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/codegen/precompiled.cc
----------------------------------------------------------------------
diff --git a/src/kudu/codegen/precompiled.cc b/src/kudu/codegen/precompiled.cc
index b073176..812d912 100644
--- a/src/kudu/codegen/precompiled.cc
+++ b/src/kudu/codegen/precompiled.cc
@@ -33,10 +33,11 @@
 // NOTE: This file is NOT compiled with ASAN annotations, even if Kudu
 // is being built with ASAN.
 
-#include <cstdlib>
+#include <cstdint>
 #include <cstring>
 
 #include "kudu/common/rowblock.h"
+#include "kudu/gutil/port.h"
 #include "kudu/util/bitmap.h"
 #include "kudu/util/memory/arena.h"
 
@@ -64,6 +65,8 @@ extern "C" void *__dso_handle __attribute__((__visibility__("hidden"))) = NULL;
 
 namespace kudu {
 
+class Slice;
+
 // Returns whether copy was successful (fails iff slice relocation fails,
 // which can only occur if is_string is true).
 // If arena is NULL, then no relocation occurs.

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/codegen/row_projector.cc
----------------------------------------------------------------------
diff --git a/src/kudu/codegen/row_projector.cc b/src/kudu/codegen/row_projector.cc
index fe34be6..b5883e4 100644
--- a/src/kudu/codegen/row_projector.cc
+++ b/src/kudu/codegen/row_projector.cc
@@ -23,22 +23,27 @@
 #include <utility>
 #include <vector>
 
+#include <gflags/gflags_declare.h>
+#include <llvm/ADT/Twine.h>
+#include <llvm/ADT/ilist_iterator.h>
 #include <llvm/ExecutionEngine/ExecutionEngine.h>
 #include <llvm/IR/Argument.h>
 #include <llvm/IR/BasicBlock.h>
 #include <llvm/IR/Constants.h>
+#include <llvm/IR/DerivedTypes.h>
 #include <llvm/IR/Function.h>
-#include <llvm/IR/IRBuilder.h>
-#include <llvm/IR/Module.h>
+#include <llvm/IR/Instructions.h>
 #include <llvm/IR/Type.h>
+#include <llvm/IR/Value.h>
 
 #include "kudu/codegen/jit_wrapper.h"
 #include "kudu/codegen/module_builder.h"
+#include "kudu/common/common.pb.h"
 #include "kudu/common/row.h"
 #include "kudu/common/schema.h"
+#include "kudu/common/types.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/strings/strcat.h"
-#include "kudu/util/faststring.h"
 #include "kudu/util/status.h"
 
 namespace llvm {
@@ -51,9 +56,7 @@ using llvm::ConstantInt;
 using llvm::ExecutionEngine;
 using llvm::Function;
 using llvm::FunctionType;
-using llvm::GenericValue;
 using llvm::LLVMContext;
-using llvm::Module;
 using llvm::PointerType;
 using llvm::Type;
 using llvm::Value;
@@ -65,6 +68,9 @@ using std::vector;
 DECLARE_bool(codegen_dump_functions);
 
 namespace kudu {
+
+class faststring;
+
 namespace codegen {
 
 namespace {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/codegen/row_projector.h
----------------------------------------------------------------------
diff --git a/src/kudu/codegen/row_projector.h b/src/kudu/codegen/row_projector.h
index 5a03c48..f109a38 100644
--- a/src/kudu/codegen/row_projector.h
+++ b/src/kudu/codegen/row_projector.h
@@ -18,16 +18,21 @@
 #ifndef KUDU_CODEGEN_ROW_PROJECTOR_H
 #define KUDU_CODEGEN_ROW_PROJECTOR_H
 
+#include <cstddef>
+#include <cstdint>
 #include <iosfwd>
 #include <memory>
 #include <vector>
 
+#include <glog/logging.h>
+
 #include "kudu/codegen/jit_wrapper.h"
 #include "kudu/common/row.h"
 #include "kudu/common/rowblock.h"
 #include "kudu/common/schema.h"
+#include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/ref_counted.h"
-#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
 
 namespace llvm {
@@ -37,6 +42,7 @@ class TargetMachine;
 namespace kudu {
 
 class Arena;
+class faststring;
 
 namespace codegen {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/column_predicate-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/common/column_predicate-test.cc b/src/kudu/common/column_predicate-test.cc
index a5660e9..b9c7261 100644
--- a/src/kudu/common/column_predicate-test.cc
+++ b/src/kudu/common/column_predicate-test.cc
@@ -17,14 +17,21 @@
 
 #include "kudu/common/column_predicate.h"
 
+#include <cmath>
+#include <cstdint>
+#include <string>
 #include <vector>
 
-#include <gflags/gflags_declare.h>
-#include <glog/logging.h>
+#include <boost/optional/optional.hpp>
+#include <gflags/gflags.h>
 #include <gtest/gtest.h>
 
+#include "kudu/common/common.pb.h"
 #include "kudu/common/schema.h"
 #include "kudu/common/types.h"
+#include "kudu/gutil/strings/substitute.h"
+#include "kudu/util/memory/arena.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/test_util.h"
 
 using std::vector;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/column_predicate.cc
----------------------------------------------------------------------
diff --git a/src/kudu/common/column_predicate.cc b/src/kudu/common/column_predicate.cc
index fca091a..1197b9f 100644
--- a/src/kudu/common/column_predicate.cc
+++ b/src/kudu/common/column_predicate.cc
@@ -18,12 +18,17 @@
 #include "kudu/common/column_predicate.h"
 
 #include <algorithm>
-#include <utility>
+#include <cstring>
 
+#include <boost/optional/optional.hpp>
+
+#include "kudu/common/columnblock.h"
 #include "kudu/common/key_util.h"
 #include "kudu/common/rowblock.h"
 #include "kudu/common/schema.h"
 #include "kudu/common/types.h"
+#include "kudu/gutil/strings/substitute.h"
+#include "kudu/util/bitmap.h"
 #include "kudu/util/memory/arena.h"
 
 using std::move;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/column_predicate.h
----------------------------------------------------------------------
diff --git a/src/kudu/common/column_predicate.h b/src/kudu/common/column_predicate.h
index 6248a68..0155185 100644
--- a/src/kudu/common/column_predicate.h
+++ b/src/kudu/common/column_predicate.h
@@ -17,19 +17,23 @@
 
 #pragma once
 
-#include <boost/optional.hpp>
+#include <algorithm>
+#include <ostream>
 #include <string>
 #include <vector>
 
+#include <boost/optional/optional.hpp>
+#include <glog/logging.h>
+
+#include "kudu/common/common.pb.h"
 #include "kudu/common/schema.h"
+#include "kudu/common/types.h"
 
 namespace kudu {
 
 class Arena;
 class ColumnBlock;
-class ColumnSchema;
 class SelectionVector;
-class TypeInfo;
 
 enum class PredicateType {
   // A predicate which always evaluates to false.

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/encoded_key-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/common/encoded_key-test.cc b/src/kudu/common/encoded_key-test.cc
index e67366e..df84976 100644
--- a/src/kudu/common/encoded_key-test.cc
+++ b/src/kudu/common/encoded_key-test.cc
@@ -17,13 +17,22 @@
 
 #include "kudu/common/encoded_key.h"
 
+#include <cstdint>
+#include <string>
+
 #include <gtest/gtest.h>
 
-#include "kudu/gutil/strings/substitute.h"
-#include "kudu/util/slice.h"
-#include "kudu/util/stopwatch.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/key_encoder.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/strings/substitute.h" // IWYU pragma: keep
+#include "kudu/util/faststring.h"
+#include "kudu/util/memory/arena.h"
 #include "kudu/util/random.h"
 #include "kudu/util/random_util.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/stopwatch.h" // IWYU pragma: keep
 #include "kudu/util/test_util.h"
 #include "kudu/util/test_macros.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/encoded_key.cc
----------------------------------------------------------------------
diff --git a/src/kudu/common/encoded_key.cc b/src/kudu/common/encoded_key.cc
index e11f2dc..069e04a 100644
--- a/src/kudu/common/encoded_key.cc
+++ b/src/kudu/common/encoded_key.cc
@@ -15,13 +15,22 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <cstring>
+#include <ostream>
 #include <vector>
 
+#include <glog/logging.h>
+
 #include "kudu/common/encoded_key.h"
 #include "kudu/common/key_encoder.h"
 #include "kudu/common/key_util.h"
 #include "kudu/common/row.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/types.h"
+#include "kudu/gutil/move.h"
+#include "kudu/gutil/port.h"
 #include "kudu/util/logging.h"
+#include "kudu/util/memory/arena.h"
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/encoded_key.h
----------------------------------------------------------------------
diff --git a/src/kudu/common/encoded_key.h b/src/kudu/common/encoded_key.h
index 24e7591..28b8f50 100644
--- a/src/kudu/common/encoded_key.h
+++ b/src/kudu/common/encoded_key.h
@@ -17,15 +17,22 @@
 #ifndef KUDU_COMMON_ENCODED_KEY_H
 #define KUDU_COMMON_ENCODED_KEY_H
 
+#include <cstddef>
+#include <cstdint>
 #include <string>
 #include <vector>
 
-#include "kudu/common/schema.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/util/faststring.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 
+class Arena;
 class ConstContiguousRow;
+class Schema;
 
 class EncodedKey {
  public:

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/generic_iterators-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/common/generic_iterators-test.cc b/src/kudu/common/generic_iterators-test.cc
index db04feb..ffb1da2 100644
--- a/src/kudu/common/generic_iterators-test.cc
+++ b/src/kudu/common/generic_iterators-test.cc
@@ -16,33 +16,50 @@
 // under the License.
 
 #include <algorithm>
+#include <memory>
+#include <cstdlib>
+#include <cstdint>
+#include <ostream>
+#include <string>
+#include <unordered_map>
+#include <vector>
+
+#include <gflags/gflags.h>
 #include <glog/logging.h>
 #include <glog/stl_logging.h>
 #include <gtest/gtest.h>
-#include <memory>
 
+#include "kudu/common/column_predicate.h"
+#include "kudu/common/columnblock.h"
+#include "kudu/common/common.pb.h"
 #include "kudu/common/iterator.h"
 #include "kudu/common/generic_iterators.h"
 #include "kudu/common/column_materialization_context.h"
 #include "kudu/common/rowblock.h"
 #include "kudu/common/scan_spec.h"
 #include "kudu/common/schema.h"
+#include "kudu/common/types.h"
 #include "kudu/gutil/casts.h"
+#include "kudu/gutil/integral_types.h"
 #include "kudu/gutil/mathlimits.h"
+#include "kudu/gutil/port.h"
+#include "kudu/util/memory/arena.h"
+#include "kudu/util/status.h"
 #include "kudu/util/stopwatch.h"
 #include "kudu/util/test_macros.h"
-#include "kudu/util/test_util.h"
 
 DEFINE_int32(num_lists, 3, "Number of lists to merge");
 DEFINE_int32(num_rows, 1000, "Number of entries per list");
 DEFINE_int32(num_iters, 1, "Number of times to run merge");
 
-namespace kudu {
-
 using std::shared_ptr;
 using std::string;
 using std::vector;
 
+namespace kudu {
+
+struct IteratorStats;
+
 static const Schema kIntSchema({ ColumnSchema("val", UINT32) }, 1);
 
 // Test iterator which just yields integer rows from a provided

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/generic_iterators.cc
----------------------------------------------------------------------
diff --git a/src/kudu/common/generic_iterators.cc b/src/kudu/common/generic_iterators.cc
index 3808241..76fcb80 100644
--- a/src/kudu/common/generic_iterators.cc
+++ b/src/kudu/common/generic_iterators.cc
@@ -15,19 +15,30 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <unistd.h>
+
 #include <algorithm>
+#include <cstdint>
 #include <iterator>
 #include <memory>
+#include <mutex>
 #include <string>
 #include <tuple>
+#include <unordered_map>
 #include <utility>
 
+#include <gflags/gflags.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/generic_iterators.h"
+#include "kudu/common/iterator_stats.h"
 #include "kudu/common/row.h"
 #include "kudu/common/rowblock.h"
 #include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/map-util.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/flag_tags.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/generic_iterators.h
----------------------------------------------------------------------
diff --git a/src/kudu/common/generic_iterators.h b/src/kudu/common/generic_iterators.h
index f9d795e..d90562d 100644
--- a/src/kudu/common/generic_iterators.h
+++ b/src/kudu/common/generic_iterators.h
@@ -17,23 +17,33 @@
 #ifndef KUDU_COMMON_MERGE_ITERATOR_H
 #define KUDU_COMMON_MERGE_ITERATOR_H
 
+#include <cstddef>
+#include <cstdint>
 #include <deque>
-#include <gtest/gtest_prod.h>
 #include <memory>
+#include <ostream>
 #include <string>
 #include <tuple>
-#include <unordered_map>
 #include <vector>
 
+#include <glog/logging.h>
+#include <gtest/gtest_prod.h>
+
+#include "kudu/common/column_predicate.h"
 #include "kudu/common/iterator.h"
+#include "kudu/common/iterator_stats.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/util/locks.h"
 #include "kudu/util/object_pool.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 
-class Arena;
 class MergeIterState;
+class RowBlock;
 
 // An iterator which merges the results of other iterators, comparing
 // based on keys.

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/id_mapping-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/common/id_mapping-test.cc b/src/kudu/common/id_mapping-test.cc
index 5cb0c52..72fb8c3 100644
--- a/src/kudu/common/id_mapping-test.cc
+++ b/src/kudu/common/id_mapping-test.cc
@@ -15,9 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <gtest/gtest.h>
+#include <cstdint>
 #include <vector>
 
+#include <gtest/gtest.h>
+
 #include "kudu/common/id_mapping.h"
 #include "kudu/util/random.h"
 #include "kudu/util/test_util.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/id_mapping.h
----------------------------------------------------------------------
diff --git a/src/kudu/common/id_mapping.h b/src/kudu/common/id_mapping.h
index d7ef9d5..a5d8289 100644
--- a/src/kudu/common/id_mapping.h
+++ b/src/kudu/common/id_mapping.h
@@ -17,13 +17,15 @@
 #ifndef KUDU_COMMON_ID_MAPPING_H
 #define KUDU_COMMON_ID_MAPPING_H
 
+#include <cstddef>
+#include <cstdint>
+#include <memory>
+#include <ostream>
 #include <utility>
 #include <vector>
 
 #include <glog/logging.h>
 
-#include "kudu/gutil/macros.h"
-
 namespace kudu {
 
 // Light-weight hashtable implementation for mapping a small number of

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/iterator_stats.cc
----------------------------------------------------------------------
diff --git a/src/kudu/common/iterator_stats.cc b/src/kudu/common/iterator_stats.cc
index f691888..77eee10 100644
--- a/src/kudu/common/iterator_stats.cc
+++ b/src/kudu/common/iterator_stats.cc
@@ -17,8 +17,9 @@
 
 #include "kudu/common/iterator_stats.h"
 
+#include <glog/logging.h>
+
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/util/status.h"
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/key_encoder.cc
----------------------------------------------------------------------
diff --git a/src/kudu/common/key_encoder.cc b/src/kudu/common/key_encoder.cc
index 565584c..7bcb4f3 100644
--- a/src/kudu/common/key_encoder.cc
+++ b/src/kudu/common/key_encoder.cc
@@ -15,22 +15,21 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <functional>
 #include <memory>
 #include <string>
 #include <vector>
 
 #include "kudu/common/common.pb.h"
 #include "kudu/common/key_encoder.h"
-#include "kudu/gutil/map-util.h"
 #include "kudu/gutil/singleton.h"
-#include "kudu/util/faststring.h"
 
 using std::unique_ptr;
 using std::vector;
 
 namespace kudu {
 
+class faststring;
+
 // A resolver for Encoders
 template <typename Buffer>
 class EncoderResolver {
@@ -66,7 +65,7 @@ class EncoderResolver {
     encoders_[Type].reset(new KeyEncoder<Buffer>(traits));
   }
 
-  friend class Singleton<EncoderResolver<Buffer> >;
+  friend class Singleton<EncoderResolver<Buffer>>;
   // We use a vector instead of a map here since this shows up in some hot paths
   // and we know that the valid data types all have low enough IDs that the
   // vector will be small.
@@ -75,12 +74,12 @@ class EncoderResolver {
 
 template <typename Buffer>
 const KeyEncoder<Buffer>& GetKeyEncoder(const TypeInfo* typeinfo) {
-  return Singleton<EncoderResolver<Buffer> >::get()->GetKeyEncoder(typeinfo->physical_type());
+  return Singleton<EncoderResolver<Buffer>>::get()->GetKeyEncoder(typeinfo->physical_type());
 }
 
 // Returns true if the type is allowed in keys.
 const bool IsTypeAllowableInKey(const TypeInfo* typeinfo) {
-  return Singleton<EncoderResolver<faststring> >::get()->HasKeyEncoderForType(
+  return Singleton<EncoderResolver<faststring>>::get()->HasKeyEncoderForType(
       typeinfo->physical_type());
 }
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/key_encoder.h
----------------------------------------------------------------------
diff --git a/src/kudu/common/key_encoder.h b/src/kudu/common/key_encoder.h
index 910c003..54966d7 100644
--- a/src/kudu/common/key_encoder.h
+++ b/src/kudu/common/key_encoder.h
@@ -18,19 +18,26 @@
 #ifndef KUDU_COMMON_KEYENCODER_H
 #define KUDU_COMMON_KEYENCODER_H
 
-#include <arpa/inet.h>
+#include <emmintrin.h>
+#include <smmintrin.h>
+
 #include <climits>
-#include <nmmintrin.h>
-#include <string.h>
+#include <cstdint>
+#include <cstring>
+#include <ostream>
+
+#include <glog/logging.h>
 
+#include "kudu/common/common.pb.h"
 #include "kudu/common/types.h"
 #include "kudu/gutil/endian.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/mathlimits.h"
-#include "kudu/gutil/strings/memutil.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/type_traits.h"
 #include "kudu/util/logging.h"
 #include "kudu/util/memory/arena.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
 
 // The SSE-based encoding is not yet working. Don't define this!

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/key_util-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/common/key_util-test.cc b/src/kudu/common/key_util-test.cc
index 5a8766f..f9bf9b8 100644
--- a/src/kudu/common/key_util-test.cc
+++ b/src/kudu/common/key_util-test.cc
@@ -17,13 +17,21 @@
 
 #include "kudu/common/key_util.h"
 
+#include <cstdint>
+#include <limits>
+#include <string>
+
 #include <gtest/gtest.h>
 
+#include "kudu/common/common.pb.h"
 #include "kudu/common/partial_row.h"
 #include "kudu/common/row.h"
 #include "kudu/common/schema.h"
 #include "kudu/gutil/mathlimits.h"
+#include "kudu/util/memory/arena.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/test_util.h"
+#include "kudu/util/test_macros.h"
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/key_util.cc
----------------------------------------------------------------------
diff --git a/src/kudu/common/key_util.cc b/src/kudu/common/key_util.cc
index 11a5744..3608b33 100644
--- a/src/kudu/common/key_util.cc
+++ b/src/kudu/common/key_util.cc
@@ -17,19 +17,29 @@
 
 #include "kudu/common/key_util.h"
 
-#include <boost/iterator/counting_iterator.hpp>
 #include <cmath>
+#include <cstring>
 #include <iterator>
 #include <limits>
+#include <ostream>
 #include <string>
 #include <tuple>
 #include <type_traits>
 
+#include <boost/iterator/counting_iterator.hpp>
+#include <boost/iterator/iterator_facade.hpp>
+#include <glog/logging.h>
+
 #include "kudu/common/column_predicate.h"
+#include "kudu/common/common.pb.h"
 #include "kudu/common/key_encoder.h"
 #include "kudu/common/row.h"
 #include "kudu/common/schema.h"
+#include "kudu/common/types.h"
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/mathlimits.h"
+#include "kudu/util/memory/arena.h"
+#include "kudu/util/slice.h"
 
 using std::nextafter;
 using std::numeric_limits;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/key_util.h
----------------------------------------------------------------------
diff --git a/src/kudu/common/key_util.h b/src/kudu/common/key_util.h
index 70da7c6..36d2ce4 100644
--- a/src/kudu/common/key_util.h
+++ b/src/kudu/common/key_util.h
@@ -19,6 +19,7 @@
 
 #pragma once
 
+#include <cstdint>
 #include <string>
 #include <unordered_map>
 #include <vector>

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/partial_row-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/common/partial_row-test.cc b/src/kudu/common/partial_row-test.cc
index 0ade8f8..e1d3af9 100644
--- a/src/kudu/common/partial_row-test.cc
+++ b/src/kudu/common/partial_row-test.cc
@@ -15,13 +15,18 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <cstdint>
 #include <functional>
+#include <string>
 
 #include <gtest/gtest.h>
 
+#include "kudu/common/common.pb.h"
 #include "kudu/common/partial_row.h"
-#include "kudu/common/row.h"
 #include "kudu/common/schema.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/common/partial_row.cc
----------------------------------------------------------------------
diff --git a/src/kudu/common/partial_row.cc b/src/kudu/common/partial_row.cc
index 7b8a5c8..f82df8e 100644
--- a/src/kudu/common/partial_row.cc
+++ b/src/kudu/common/partial_row.cc
@@ -21,10 +21,14 @@
 #include <cstring>
 #include <string>
 
+#include <glog/logging.h>
+
 #include "kudu/common/common.pb.h"
+#include "kudu/common/key_encoder.h"
 #include "kudu/common/row.h"
 #include "kudu/common/schema.h"
-#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/common/types.h"
+#include "kudu/gutil/strings/stringpiece.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/bitmap.h"
 #include "kudu/util/logging.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/partial_row.h
----------------------------------------------------------------------
diff --git a/src/kudu/common/partial_row.h b/src/kudu/common/partial_row.h
index cbc975f..17bc8d7 100644
--- a/src/kudu/common/partial_row.h
+++ b/src/kudu/common/partial_row.h
@@ -17,14 +17,16 @@
 #ifndef KUDU_COMMON_PARTIAL_ROW_H
 #define KUDU_COMMON_PARTIAL_ROW_H
 
+// NOTE: using stdint.h instead of cstdint because this file is supposed
+//       to be processed by a compiler lacking C++11 support.
 #include <stdint.h>
+
 #include <string>
-#include <vector>
 
 #ifdef KUDU_HEADERS_NO_STUBS
-#include "kudu/gutil/macros.h"
-#include "kudu/gutil/port.h"
 #include <gtest/gtest_prod.h>
+
+#include "kudu/gutil/port.h"
 #else
 // This is a poor module interdependency, but the stubs are header-only and
 // it's only for exported header builds, so we'll make an exception.
@@ -32,6 +34,7 @@
 #endif
 
 #include "kudu/util/kudu_export.h"
+#include "kudu/util/status.h"
 #include "kudu/util/slice.h"
 
 /// @cond
@@ -39,19 +42,18 @@ namespace kudu {
 class ColumnSchema;
 namespace client {
 class KuduWriteOperation;
-template<typename KeyTypeWrapper> struct SliceKeysTestSetup;
-template<typename KeyTypeWrapper> struct IntKeysTestSetup;
+template<typename KeyTypeWrapper> struct SliceKeysTestSetup;// IWYU pragma: keep
+template<typename KeyTypeWrapper> struct IntKeysTestSetup;  // IWYU pragma: keep
 } // namespace client
 
 namespace tablet {
-  template<typename KeyTypeWrapper> struct SliceTypeRowOps;
-  template<typename KeyTypeWrapper> struct NumTypeRowOps;
+  template<typename KeyTypeWrapper> struct SliceTypeRowOps; // IWYU pragma: keep
+  template<typename KeyTypeWrapper> struct NumTypeRowOps;   // IWYU pragma: keep
 } // namespace tablet
 
 /// @endcond
 
 class Schema;
-class PartialRowPB;
 
 /// @brief A row which may only contain values for a subset of the columns.
 ///

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/partition-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/common/partition-test.cc b/src/kudu/common/partition-test.cc
index 077ba71..2a35244 100644
--- a/src/kudu/common/partition-test.cc
+++ b/src/kudu/common/partition-test.cc
@@ -15,25 +15,26 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <stdint.h>
-
 #include <algorithm>
-#include <iterator>
+#include <cstdint>
+#include <memory>
+#include <string>
 #include <utility>
 #include <vector>
 
 #include <boost/optional.hpp>
-#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
+#include <gtest/gtest.h>
 
 #include "kudu/common/common.pb.h"
 #include "kudu/common/partial_row.h"
 #include "kudu/common/partition.h"
-#include "kudu/common/row.h"
 #include "kudu/common/schema.h"
-#include "kudu/gutil/strings/escaping.h"
 #include "kudu/gutil/strings/join.h"
-#include "kudu/gutil/strings/substitute.h"
-#include "kudu/util/hash_util.h"
+#include "kudu/util/make_shared.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 using boost::optional;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/partition.cc
----------------------------------------------------------------------
diff --git a/src/kudu/common/partition.cc b/src/kudu/common/partition.cc
index 5a0c55c..a09189b 100644
--- a/src/kudu/common/partition.cc
+++ b/src/kudu/common/partition.cc
@@ -18,18 +18,29 @@
 #include "kudu/common/partition.h"
 
 #include <algorithm>
+#include <cstring>
+#include <memory>
 #include <set>
 #include <string>
+#include <unordered_set>
 #include <utility>
 #include <vector>
 
+#include <glog/logging.h>
+
+#include "kudu/common/common.pb.h"
+#include "kudu/common/key_encoder.h"
 #include "kudu/common/partial_row.h"
-#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/common/row.h"
+#include "kudu/common/types.h"
+#include "kudu/gutil/endian.h"
 #include "kudu/gutil/map-util.h"
 #include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/util/bitmap.h"
 #include "kudu/util/hash_util.h"
 #include "kudu/util/logging.h"
+#include "kudu/util/memory/arena.h"
 #include "kudu/util/pb_util.h"
 #include "kudu/util/url-coding.h"
 
@@ -44,6 +55,8 @@ using strings::SubstituteAndAppend;
 
 namespace kudu {
 
+class faststring;
+
 // The encoded size of a hash bucket in a partition key.
 static const size_t kEncodedBucketSize = sizeof(uint32_t);
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/partition.h
----------------------------------------------------------------------
diff --git a/src/kudu/common/partition.h b/src/kudu/common/partition.h
index 6be01d4..88f4bdb 100644
--- a/src/kudu/common/partition.h
+++ b/src/kudu/common/partition.h
@@ -17,25 +17,25 @@
 #ifndef KUDU_COMMON_PARTITION_H
 #define KUDU_COMMON_PARTITION_H
 
+#include <cstdint>
 #include <string>
 #include <utility>
 #include <vector>
 
-#include "kudu/common/common.pb.h"
-#include "kudu/common/key_encoder.h"
-#include "kudu/common/partial_row.h"
-#include "kudu/common/row.h"
+#include <gtest/gtest_prod.h>
+
 #include "kudu/common/schema.h"
-#include "kudu/gutil/ref_counted.h"
+#include "kudu/gutil/port.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
 
-class ColumnRangePredicate;
+class Arena;
 class ConstContiguousRow;
 class KuduPartialRow;
 class PartitionSchemaPB;
-class TypeInfo;
+class PartitionPB;
 
 // A Partition describes the set of rows that a Tablet is responsible for
 // serving. Each tablet is assigned a single Partition.

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/partition_pruner-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/common/partition_pruner-test.cc b/src/kudu/common/partition_pruner-test.cc
index 6af578c..0208529 100644
--- a/src/kudu/common/partition_pruner-test.cc
+++ b/src/kudu/common/partition_pruner-test.cc
@@ -18,17 +18,31 @@
 #include "kudu/common/partition_pruner.h"
 
 #include <algorithm>
-#include <boost/optional.hpp>
+#include <cstddef>
+#include <cstdint>
 #include <memory>
 #include <string>
-#include <tuple>
+#include <utility>
+#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/encoded_key.h"
 #include "kudu/common/partial_row.h"
 #include "kudu/common/partition.h"
 #include "kudu/common/row.h"
 #include "kudu/common/scan_spec.h"
 #include "kudu/common/schema.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/move.h"
+#include "kudu/gutil/strings/substitute.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 using boost::optional;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/partition_pruner.cc
----------------------------------------------------------------------
diff --git a/src/kudu/common/partition_pruner.cc b/src/kudu/common/partition_pruner.cc
index e6184f2..9b5eb6c 100644
--- a/src/kudu/common/partition_pruner.cc
+++ b/src/kudu/common/partition_pruner.cc
@@ -18,8 +18,9 @@
 #include "kudu/common/partition_pruner.h"
 
 #include <algorithm>
-#include <boost/optional.hpp>
 #include <cstring>
+#include <cstdint>
+#include <iterator>
 #include <memory>
 #include <numeric>
 #include <string>
@@ -27,16 +28,25 @@
 #include <unordered_map>
 #include <vector>
 
+#include <glog/logging.h>
+
+#include "kudu/common/column_predicate.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/encoded_key.h"
 #include "kudu/common/key_encoder.h"
 #include "kudu/common/key_util.h"
 #include "kudu/common/partition.h"
+#include "kudu/common/row.h"
 #include "kudu/common/scan_spec.h"
 #include "kudu/common/schema.h"
+#include "kudu/common/types.h"
 #include "kudu/gutil/map-util.h"
 #include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/util/make_shared.h"
+#include "kudu/util/memory/arena.h"
+#include "kudu/util/slice.h"
 
-using boost::optional;
 using std::distance;
 using std::find;
 using std::get;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/partition_pruner.h
----------------------------------------------------------------------
diff --git a/src/kudu/common/partition_pruner.h b/src/kudu/common/partition_pruner.h
index 6effe31..6dec6de 100644
--- a/src/kudu/common/partition_pruner.h
+++ b/src/kudu/common/partition_pruner.h
@@ -17,6 +17,7 @@
 
 #pragma once
 
+#include <cstddef>
 #include <string>
 #include <tuple>
 #include <vector>
@@ -26,8 +27,6 @@
 
 namespace kudu {
 
-class Partition;
-class PartitionSchema;
 class ScanSpec;
 class Schema;
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/row.h
----------------------------------------------------------------------
diff --git a/src/kudu/common/row.h b/src/kudu/common/row.h
index d34b8dc..e667b89 100644
--- a/src/kudu/common/row.h
+++ b/src/kudu/common/row.h
@@ -17,13 +17,15 @@
 #ifndef KUDU_COMMON_ROW_H
 #define KUDU_COMMON_ROW_H
 
-#include <glog/logging.h>
+#include <cstring>
 #include <string>
 #include <utility>
 #include <vector>
 
-#include "kudu/common/types.h"
+#include <glog/logging.h>
+
 #include "kudu/common/schema.h"
+#include "kudu/common/types.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/map-util.h"
 #include "kudu/util/memory/arena.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/row_changelist-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/common/row_changelist-test.cc b/src/kudu/common/row_changelist-test.cc
index 3a1902d..503417d 100644
--- a/src/kudu/common/row_changelist-test.cc
+++ b/src/kudu/common/row_changelist-test.cc
@@ -15,16 +15,24 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <ostream>
+#include <string>
+
 #include <glog/logging.h>
 #include <gtest/gtest.h>
 
-#include "kudu/common/schema.h"
-#include "kudu/common/row_changelist.h"
+#include "kudu/common/common.pb.h"
 #include "kudu/common/row.h"
 #include "kudu/common/rowblock.h"
+#include "kudu/common/row_changelist.h"
+#include "kudu/common/schema.h"
+#include "kudu/gutil/integral_types.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/faststring.h"
 #include "kudu/util/hexdump.h"
+#include "kudu/util/memory/arena.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.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/common/row_changelist.cc
----------------------------------------------------------------------
diff --git a/src/kudu/common/row_changelist.cc b/src/kudu/common/row_changelist.cc
index 4d933cd..b08ded1 100644
--- a/src/kudu/common/row_changelist.cc
+++ b/src/kudu/common/row_changelist.cc
@@ -15,17 +15,26 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <algorithm>
+#include <cstdint>
+#include <cstring>
+#include <ostream>
 #include <string>
 
+#include "kudu/common/common.pb.h"
 #include "kudu/common/columnblock.h"
 #include "kudu/common/row.h"
 #include "kudu/common/rowblock.h"
 #include "kudu/common/row_changelist.h"
 #include "kudu/common/schema.h"
+#include "kudu/common/types.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/coding.h"
 #include "kudu/util/coding-inl.h"
 #include "kudu/util/faststring.h"
+#include "kudu/util/logging.h"
+#include "kudu/util/memory/arena.h"
 
 using std::string;
 using strings::Substitute;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/row_changelist.h
----------------------------------------------------------------------
diff --git a/src/kudu/common/row_changelist.h b/src/kudu/common/row_changelist.h
index bc05b48..a2b36e8 100644
--- a/src/kudu/common/row_changelist.h
+++ b/src/kudu/common/row_changelist.h
@@ -20,22 +20,26 @@
 #ifndef KUDU_COMMON_ROW_CHANGELIST_H
 #define KUDU_COMMON_ROW_CHANGELIST_H
 
-#include <gtest/gtest_prod.h>
+#include <cstddef>
 #include <string>
 #include <vector>
 
-#include "kudu/common/row.h"
+#include <glog/logging.h>
+#include <gtest/gtest_prod.h>
+
+#include "kudu/common/schema.h"
 #include "kudu/gutil/casts.h"
-#include "kudu/util/bitmap.h"
+#include "kudu/gutil/macros.h"
+#include "kudu/util/faststring.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 
-class faststring;
-
 class Arena;
 class ColumnBlock;
+class DeltaProjector;
 class RowBlockRow;
-class Schema;
 
 // A RowChangeList is a wrapper around a Slice which contains a "changelist".
 //

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/row_operations-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/common/row_operations-test.cc b/src/kudu/common/row_operations-test.cc
index 27f025a..37bef46 100644
--- a/src/kudu/common/row_operations-test.cc
+++ b/src/kudu/common/row_operations-test.cc
@@ -15,14 +15,30 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <gtest/gtest.h>
+#include <cstdint>
+#include <cstdlib>
+#include <ostream>
 #include <memory>
 #include <string>
+#include <vector>
+
+#include <gtest/gtest.h>
+#include <glog/logging.h>
 
+#include "kudu/common/common.pb.h"
 #include "kudu/common/partial_row.h"
 #include "kudu/common/row_operations.h"
 #include "kudu/common/schema.h"
+#include "kudu/common/types.h"
+#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/gutil/basictypes.h"
+#include "kudu/gutil/dynamic_annotations.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/util/memory/arena.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::shared_ptr;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/row_operations.cc
----------------------------------------------------------------------
diff --git a/src/kudu/common/row_operations.cc b/src/kudu/common/row_operations.cc
index 0fb1142..2b41d6c 100644
--- a/src/kudu/common/row_operations.cc
+++ b/src/kudu/common/row_operations.cc
@@ -17,13 +17,24 @@
 
 #include "kudu/common/row_operations.h"
 
+#include <cstring>
+#include <ostream>
+#include <string>
+
+#include <glog/logging.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/schema.h"
+#include "kudu/common/types.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/bitmap.h"
 #include "kudu/util/faststring.h"
 #include "kudu/util/logging.h"
+#include "kudu/util/memory/arena.h"
 #include "kudu/util/safe_math.h"
 #include "kudu/util/slice.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/row_operations.h
----------------------------------------------------------------------
diff --git a/src/kudu/common/row_operations.h b/src/kudu/common/row_operations.h
index 00defaa..cfd4128 100644
--- a/src/kudu/common/row_operations.h
+++ b/src/kudu/common/row_operations.h
@@ -17,6 +17,7 @@
 #ifndef KUDU_COMMON_ROW_OPERATIONS_H
 #define KUDU_COMMON_ROW_OPERATIONS_H
 
+#include <cstdint>
 #include <memory>
 #include <string>
 #include <vector>
@@ -24,11 +25,13 @@
 #include "kudu/common/row_changelist.h"
 #include "kudu/common/wire_protocol.pb.h"
 #include "kudu/gutil/macros.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
 
 class Arena;
+class ColumnSchema;
 class KuduPartialRow;
 class Schema;
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/rowblock.cc
----------------------------------------------------------------------
diff --git a/src/kudu/common/rowblock.cc b/src/kudu/common/rowblock.cc
index 13ec37b..f8dc532 100644
--- a/src/kudu/common/rowblock.cc
+++ b/src/kudu/common/rowblock.cc
@@ -14,9 +14,11 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
+#include "kudu/common/rowblock.h"
 
 #include <glog/logging.h>
-#include "kudu/common/rowblock.h"
+
+#include "kudu/gutil/bits.h"
 #include "kudu/util/bitmap.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/rowblock.h
----------------------------------------------------------------------
diff --git a/src/kudu/common/rowblock.h b/src/kudu/common/rowblock.h
index 1ce76fd..2dc0c89 100644
--- a/src/kudu/common/rowblock.h
+++ b/src/kudu/common/rowblock.h
@@ -14,15 +14,22 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
+
 #ifndef KUDU_COMMON_ROWBLOCK_H
 #define KUDU_COMMON_ROWBLOCK_H
 
+#include <cstdint>
+#include <cstring>
 #include <vector>
+
+#include <glog/logging.h>
+
 #include "kudu/common/columnblock.h"
 #include "kudu/common/schema.h"
-#include "kudu/common/row.h"
+#include "kudu/common/types.h"
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
+#include "kudu/gutil/strings/stringpiece.h"
 #include "kudu/util/bitmap.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/rowid.h
----------------------------------------------------------------------
diff --git a/src/kudu/common/rowid.h b/src/kudu/common/rowid.h
index 43be5db..f7387d5 100644
--- a/src/kudu/common/rowid.h
+++ b/src/kudu/common/rowid.h
@@ -17,7 +17,9 @@
 #ifndef KUDU_COMMON_ROWID_H
 #define KUDU_COMMON_ROWID_H
 
-#include <inttypes.h>
+#include <cinttypes>
+
+#include <glog/logging.h>
 
 #include "kudu/util/memcmpable_varint.h"
 #include "kudu/util/faststring.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/scan_spec-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/common/scan_spec-test.cc b/src/kudu/common/scan_spec-test.cc
index 3e1e55f..ee16249 100644
--- a/src/kudu/common/scan_spec-test.cc
+++ b/src/kudu/common/scan_spec-test.cc
@@ -17,18 +17,31 @@
 
 #include "kudu/common/scan_spec.h"
 
+#include <cstdint>
+#include <cstring>
+#include <string>
+#include <unordered_map>
+#include <vector>
+
+#include <boost/optional/optional.hpp>
+#include <gflags/gflags.h>
 #include <glog/logging.h>
 #include <gtest/gtest.h>
-#include <vector>
 
 #include "kudu/common/column_predicate.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/encoded_key.h"
 #include "kudu/common/partial_row.h"
 #include "kudu/common/row.h"
 #include "kudu/common/schema.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/move.h"
+#include "kudu/gutil/strings/stringpiece.h"
 #include "kudu/util/auto_release_pool.h"
 #include "kudu/util/memory/arena.h"
-#include "kudu/util/test_macros.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
 #include "kudu/util/test_util.h"
 
 using std::vector;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/scan_spec.cc
----------------------------------------------------------------------
diff --git a/src/kudu/common/scan_spec.cc b/src/kudu/common/scan_spec.cc
index 40804ef..c232e79 100644
--- a/src/kudu/common/scan_spec.cc
+++ b/src/kudu/common/scan_spec.cc
@@ -18,15 +18,27 @@
 #include "kudu/common/scan_spec.h"
 
 #include <algorithm>
+#include <cstdint>
+#include <iterator>
+#include <ostream>
 #include <string>
 #include <utility>
 #include <vector>
 
+#include <boost/optional/optional.hpp>
+#include <glog/logging.h>
+
+#include "kudu/common/column_predicate.h"
+#include "kudu/common/encoded_key.h"
 #include "kudu/common/key_util.h"
 #include "kudu/common/row.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/types.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/map-util.h"
 #include "kudu/gutil/strings/join.h"
 #include "kudu/util/auto_release_pool.h"
+#include "kudu/util/memory/arena.h"
 
 using std::any_of;
 using std::max;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/scan_spec.h
----------------------------------------------------------------------
diff --git a/src/kudu/common/scan_spec.h b/src/kudu/common/scan_spec.h
index bc1efc2..c1bb7f4 100644
--- a/src/kudu/common/scan_spec.h
+++ b/src/kudu/common/scan_spec.h
@@ -20,14 +20,15 @@
 #include <string>
 #include <unordered_map>
 
-#include "kudu/common/schema.h"
-#include "kudu/common/column_predicate.h"
-#include "kudu/common/encoded_key.h"
+#include "kudu/common/column_predicate.h" // IWYU pragma: keep
+#include "kudu/util/slice.h"
 
 namespace kudu {
 
 class AutoReleasePool;
 class Arena;
+class EncodedKey;
+class Schema;
 
 class ScanSpec {
  public:

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/schema-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/common/schema-test.cc b/src/kudu/common/schema-test.cc
index a3554cc..72c2f43 100644
--- a/src/kudu/common/schema-test.cc
+++ b/src/kudu/common/schema-test.cc
@@ -17,16 +17,28 @@
 
 #include "kudu/common/schema.h"
 
-#include <glog/logging.h>
-#include <gtest/gtest.h>
+#include <cstdint>
+#include <memory>
+#include <string>
+#include <tuple>  // IWYU pragma: keep
 #include <unordered_map>
 #include <vector>
 
+#include <glog/logging.h> // IWYU pragma: keep
+#include <gtest/gtest.h>
+
+#include "kudu/common/common.pb.h"
 #include "kudu/common/key_encoder.h"
 #include "kudu/common/row.h"
+#include "kudu/common/types.h"
+#include "kudu/gutil/strings/stringpiece.h"
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/util/faststring.h"
 #include "kudu/util/hexdump.h"
-#include "kudu/util/stopwatch.h"
+#include "kudu/util/memory/arena.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
+#include "kudu/util/stopwatch.h"  // IWYU pragma: keep
 #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/common/schema.cc
----------------------------------------------------------------------
diff --git a/src/kudu/common/schema.cc b/src/kudu/common/schema.cc
index a708d24..cbecdea 100644
--- a/src/kudu/common/schema.cc
+++ b/src/kudu/common/schema.cc
@@ -18,13 +18,14 @@
 #include "kudu/common/schema.h"
 
 #include <algorithm>
-#include <set>
+#include <unordered_set>
 
 #include "kudu/gutil/map-util.h"
-#include "kudu/gutil/stringprintf.h"
 #include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/strcat.h"
 #include "kudu/util/malloc.h"
+#include "kudu/util/make_shared.h"
+#include "kudu/util/memory/arena.h"
 #include "kudu/util/status.h"
 #include "kudu/common/row.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/schema.h
----------------------------------------------------------------------
diff --git a/src/kudu/common/schema.h b/src/kudu/common/schema.h
index 2de0c42..4d8148c 100644
--- a/src/kudu/common/schema.h
+++ b/src/kudu/common/schema.h
@@ -17,21 +17,33 @@
 #ifndef KUDU_COMMON_SCHEMA_H
 #define KUDU_COMMON_SCHEMA_H
 
-#include <boost/optional.hpp>
+#include <cstddef>
+#include <cstdint>
 #include <functional>
-#include <glog/logging.h>
 #include <memory>
+#include <ostream>
 #include <string>
 #include <unordered_map>
 #include <unordered_set>
 #include <utility>
 #include <vector>
 
+#include <boost/optional/optional.hpp>
+#include <glog/logging.h>
+
+#include "kudu/common/common.pb.h"
 #include "kudu/common/id_mapping.h"
 #include "kudu/common/key_encoder.h"
+#include "kudu/common/types.h"
+#include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/strcat.h"
+#include "kudu/gutil/strings/stringpiece.h"
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/util/compression/compression.pb.h"
+#include "kudu/util/faststring.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
 
 // Check that two schemas are equal, yielding a useful error message in the case that
@@ -51,6 +63,8 @@
 
 namespace kudu {
 
+class Arena;
+
 // The ID of a column. Each column in a table has a unique ID.
 struct ColumnId {
   explicit ColumnId(int32_t t_) : t(t_) {}
@@ -338,8 +352,6 @@ class ColumnSchema {
   ColumnStorageAttributes attributes_;
 };
 
-class ContiguousRow;
-
 // The schema for a set of rows.
 //
 // A Schema is simply a set of columns, along with information about

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/timestamp.cc
----------------------------------------------------------------------
diff --git a/src/kudu/common/timestamp.cc b/src/kudu/common/timestamp.cc
index a9b07ff..1d13d4f 100644
--- a/src/kudu/common/timestamp.cc
+++ b/src/kudu/common/timestamp.cc
@@ -17,10 +17,9 @@
 
 #include "kudu/common/timestamp.h"
 
-#include <ostream>
+#include <ostream> // IWYU pragma: keep
 
 #include "kudu/gutil/mathlimits.h"
-#include "kudu/gutil/stringprintf.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/memcmpable_varint.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/timestamp.h
----------------------------------------------------------------------
diff --git a/src/kudu/common/timestamp.h b/src/kudu/common/timestamp.h
index 86f550b..c9dbad7 100644
--- a/src/kudu/common/timestamp.h
+++ b/src/kudu/common/timestamp.h
@@ -18,7 +18,7 @@
 #ifndef KUDU_COMMON_TIMESTAMP_H_
 #define KUDU_COMMON_TIMESTAMP_H_
 
-#include <cinttypes>
+#include <cstdint>
 #include <iosfwd>
 #include <string>
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/types-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/common/types-test.cc b/src/kudu/common/types-test.cc
index c01d227..dc2fc3d 100644
--- a/src/kudu/common/types-test.cc
+++ b/src/kudu/common/types-test.cc
@@ -15,16 +15,21 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <cstdint>
 #include <cmath>
 #include <string>
-#include <tuple>
+#include <tuple>  // IWYU pragma: keep
 #include <vector>
 
 #include <gflags/gflags.h>
 #include <gtest/gtest.h>
 
+#include "kudu/common/common.pb.h"
 #include "kudu/common/types.h"
+#include "kudu/gutil/integral_types.h"
+#include "kudu/gutil/mathlimits.h"
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/test_util.h"
 
 using std::get;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/types.cc
----------------------------------------------------------------------
diff --git a/src/kudu/common/types.cc b/src/kudu/common/types.cc
index 1248516..7717752 100644
--- a/src/kudu/common/types.cc
+++ b/src/kudu/common/types.cc
@@ -19,6 +19,7 @@
 
 #include <memory>
 #include <unordered_map>
+#include <utility>
 
 #include "kudu/gutil/singleton.h"
 #include "kudu/util/logging.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/types.h
----------------------------------------------------------------------
diff --git a/src/kudu/common/types.h b/src/kudu/common/types.h
index d1c9c79..b7cab77 100644
--- a/src/kudu/common/types.h
+++ b/src/kudu/common/types.h
@@ -18,18 +18,26 @@
 #ifndef KUDU_COMMON_TYPES_H
 #define KUDU_COMMON_TYPES_H
 
-#include <glog/logging.h>
 
 #include <cmath>
-#include <stdint.h>
+#include <cstdio>
+#include <cstdint>
+#include <cstring>
+#include <ctime>
+#include <cstdlib>
+#include <ostream>
 #include <string>
 
+#include <glog/logging.h>
+
 #include "kudu/common/common.pb.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/mathlimits.h"
 #include "kudu/gutil/strings/escaping.h"
 #include "kudu/gutil/strings/numbers.h"
 #include "kudu/util/make_shared.h"
 #include "kudu/util/slice.h"
+// IWYU pragma: no_include "kudu/util/status.h"
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/wire_protocol-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/common/wire_protocol-test.cc b/src/kudu/common/wire_protocol-test.cc
index ef3c5bf..f685435 100644
--- a/src/kudu/common/wire_protocol-test.cc
+++ b/src/kudu/common/wire_protocol-test.cc
@@ -15,19 +15,30 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <cstddef>
+#include <cstdint>
+#include <string>
 #include <vector>
 
-#include <boost/optional.hpp>
+#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/row.h"
 #include "kudu/common/rowblock.h"
 #include "kudu/common/schema.h"
 #include "kudu/common/wire_protocol.h"
-#include "kudu/util/pb_util.h"
+#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/util/bitmap.h"
+#include "kudu/util/faststring.h"
 #include "kudu/util/hexdump.h"
+#include "kudu/util/memory/arena.h"
+#include "kudu/util/pb_util.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
-#include "kudu/util/stopwatch.h"
+#include "kudu/util/stopwatch.h"  // IWYU pragma: keep
 #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/common/wire_protocol.cc
----------------------------------------------------------------------
diff --git a/src/kudu/common/wire_protocol.cc b/src/kudu/common/wire_protocol.cc
index a5404a7..9dc3544 100644
--- a/src/kudu/common/wire_protocol.cc
+++ b/src/kudu/common/wire_protocol.cc
@@ -17,17 +17,31 @@
 
 #include "kudu/common/wire_protocol.h"
 
-#include <boost/optional.hpp>
+#include <cinttypes>
+#include <cstring>
+#include <cstdint>
+#include <ostream>
 #include <string>
 #include <vector>
 
+#include <boost/optional/optional.hpp>
+#include <glog/logging.h>
+
+#include "kudu/common/columnblock.h"
 #include "kudu/common/column_predicate.h"
+#include "kudu/common/common.pb.h"
 #include "kudu/common/row.h"
 #include "kudu/common/rowblock.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/types.h"
+#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/consensus/metadata.pb.h"
 #include "kudu/gutil/port.h"
-#include "kudu/gutil/stl_util.h"
+#include "kudu/gutil/stringprintf.h"
 #include "kudu/gutil/strings/fastmem.h"
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/util/bitmap.h"
+#include "kudu/util/compression/compression.pb.h"
 #include "kudu/util/faststring.h"
 #include "kudu/util/memory/arena.h"
 #include "kudu/util/net/net_util.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/common/wire_protocol.h
----------------------------------------------------------------------
diff --git a/src/kudu/common/wire_protocol.h b/src/kudu/common/wire_protocol.h
index a113053..cedc7d9 100644
--- a/src/kudu/common/wire_protocol.h
+++ b/src/kudu/common/wire_protocol.h
@@ -19,27 +19,43 @@
 #ifndef KUDU_COMMON_WIRE_PROTOCOL_H
 #define KUDU_COMMON_WIRE_PROTOCOL_H
 
-#include <boost/optional.hpp>
+#include <cstdint>
 #include <vector>
 
-#include "kudu/common/wire_protocol.pb.h"
 #include "kudu/util/status.h"
 
+namespace boost {
+template <class T>
+class optional;
+}
+
+namespace google {
+namespace protobuf {
+template <typename Element> class RepeatedPtrField;
+}
+}
+
 namespace kudu {
 
 class Arena;
 class ColumnPredicate;
 class ColumnSchema;
-struct ColumnSchemaDelta;
-class ConstContiguousRow;
 class faststring;
 class HostPort;
 class RowBlock;
-class RowBlockRow;
-class RowChangeList;
 class Schema;
 class Slice;
 class Sockaddr;
+struct ColumnSchemaDelta;
+
+class AppStatusPB;
+class ColumnPredicatePB;
+class ColumnSchemaDeltaPB;
+class ColumnSchemaPB;
+class HostPortPB;
+class RowwiseRowBlockPB;
+class SchemaPB;
+class ServerEntryPB;
 
 // Convert the given C++ Status object into the equivalent Protobuf.
 void StatusToPB(const Status& status, AppStatusPB* pb);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/consensus_meta-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/consensus_meta-test.cc b/src/kudu/consensus/consensus_meta-test.cc
index 4ffd2fb..5598702 100644
--- a/src/kudu/consensus/consensus_meta-test.cc
+++ b/src/kudu/consensus/consensus_meta-test.cc
@@ -14,20 +14,26 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-#include "kudu/consensus/consensus_meta.h"
 
+#include <cstdint>
 #include <memory>
+#include <ostream>
+#include <string>
 #include <vector>
 
+#include <glog/logging.h>
 #include <gtest/gtest.h>
 
 #include "kudu/common/wire_protocol.h"
+#include "kudu/consensus/consensus_meta.h"
 #include "kudu/consensus/metadata.pb.h"
 #include "kudu/consensus/opid_util.h"
 #include "kudu/consensus/quorum_util.h"
 #include "kudu/fs/fs_manager.h"
+#include "kudu/gutil/port.h"
 #include "kudu/util/net/net_util.h"
 #include "kudu/util/pb_util.h"
+#include "kudu/util/status.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/consensus/consensus_meta.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/consensus_meta.cc b/src/kudu/consensus/consensus_meta.cc
index b01bfe9..11a27a0 100644
--- a/src/kudu/consensus/consensus_meta.cc
+++ b/src/kudu/consensus/consensus_meta.cc
@@ -16,17 +16,25 @@
 // under the License.
 #include "kudu/consensus/consensus_meta.h"
 
-#include <memory>
+#include <algorithm>
+#include <mutex>
+#include <ostream>
+
+#include <gflags/gflags.h>
+#include <glog/logging.h>
 
 #include "kudu/consensus/log_util.h"
 #include "kudu/consensus/metadata.pb.h"
 #include "kudu/consensus/opid_util.h"
 #include "kudu/consensus/quorum_util.h"
 #include "kudu/fs/fs_manager.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/util/env.h"
 #include "kudu/util/fault_injection.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/logging.h"
+#include "kudu/util/path_util.h"
 #include "kudu/util/pb_util.h"
 #include "kudu/util/status.h"
 #include "kudu/util/stopwatch.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/consensus_meta.h
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/consensus_meta.h b/src/kudu/consensus/consensus_meta.h
index 9fdfed1..3a37e05 100644
--- a/src/kudu/consensus/consensus_meta.h
+++ b/src/kudu/consensus/consensus_meta.h
@@ -16,6 +16,7 @@
 // under the License.
 #pragma once
 
+#include <cstdint>
 #include <string>
 
 #include <gtest/gtest_prod.h>
@@ -33,8 +34,8 @@ class Status;
 
 namespace consensus {
 
-class ConsensusMetadataManager;
-class ConsensusMetadataTest;
+class ConsensusMetadataManager; // IWYU pragma: keep
+class ConsensusMetadataTest;    // IWYU pragma: keep
 
 // Provides methods to read, write, and persist consensus-related metadata.
 // This partly corresponds to Raft Figure 2's "Persistent state on all servers".

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/consensus_meta_manager-stress-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/consensus_meta_manager-stress-test.cc b/src/kudu/consensus/consensus_meta_manager-stress-test.cc
index cc1293a..3442950 100644
--- a/src/kudu/consensus/consensus_meta_manager-stress-test.cc
+++ b/src/kudu/consensus/consensus_meta_manager-stress-test.cc
@@ -34,6 +34,7 @@
 #include "kudu/util/locks.h"
 #include "kudu/util/random.h"
 #include "kudu/util/scoped_cleanup.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 using std::atomic;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/consensus_meta_manager-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/consensus_meta_manager-test.cc b/src/kudu/consensus/consensus_meta_manager-test.cc
index bcd9ccb..f77c12c 100644
--- a/src/kudu/consensus/consensus_meta_manager-test.cc
+++ b/src/kudu/consensus/consensus_meta_manager-test.cc
@@ -14,7 +14,12 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
+
+#include <cstdint>
+#include <string>
+
 #include <google/protobuf/util/message_differencer.h>
+#include <gtest/gtest.h>
 
 #include "kudu/consensus/consensus_meta.h"
 #include "kudu/consensus/consensus_meta_manager.h"
@@ -22,7 +27,10 @@
 #include "kudu/consensus/opid_util.h"
 #include "kudu/consensus/quorum_util.h"
 #include "kudu/fs/fs_manager.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
+#include "kudu/gutil/ref_counted.h"
+#include "kudu/util/status.h"
 
 using google::protobuf::util::MessageDifferencer;
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/consensus_meta_manager.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/consensus_meta_manager.cc b/src/kudu/consensus/consensus_meta_manager.cc
index f9dcb4e..683ebd1 100644
--- a/src/kudu/consensus/consensus_meta_manager.cc
+++ b/src/kudu/consensus/consensus_meta_manager.cc
@@ -16,12 +16,16 @@
 // under the License.
 #include "kudu/consensus/consensus_meta_manager.h"
 
+#include <algorithm>
 #include <mutex>
 
+#include <glog/logging.h>
+
 #include "kudu/consensus/consensus_meta.h"
 #include "kudu/fs/fs_manager.h"
 #include "kudu/gutil/map-util.h"
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 namespace consensus {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/consensus_meta_manager.h
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/consensus_meta_manager.h b/src/kudu/consensus/consensus_meta_manager.h
index 31e997b..8f04722 100644
--- a/src/kudu/consensus/consensus_meta_manager.h
+++ b/src/kudu/consensus/consensus_meta_manager.h
@@ -16,9 +16,11 @@
 // under the License.
 #pragma once
 
+#include <cstdint>
 #include <string>
 #include <unordered_map>
 
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/util/mutex.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/consensus_peers-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/consensus_peers-test.cc b/src/kudu/consensus/consensus_peers-test.cc
index 97dc179..aac7346 100644
--- a/src/kudu/consensus/consensus_peers-test.cc
+++ b/src/kudu/consensus/consensus_peers-test.cc
@@ -15,22 +15,41 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <cstddef>
+#include <algorithm>
 #include <memory>
+#include <string>
+#include <type_traits>
 
+#include <glog/logging.h>
 #include <gtest/gtest.h>
 
+#include "kudu/clock/clock.h"
 #include "kudu/clock/hybrid_clock.h"
 #include "kudu/common/schema.h"
+#include "kudu/common/timestamp.h"
 #include "kudu/common/wire_protocol-test-util.h"
+#include "kudu/common/wire_protocol.h"
 #include "kudu/consensus/consensus-test-util.h"
+#include "kudu/consensus/consensus.pb.h"
 #include "kudu/consensus/consensus_peers.h"
+#include "kudu/consensus/consensus_queue.h"
 #include "kudu/consensus/log.h"
-#include "kudu/consensus/log_anchor_registry.h"
 #include "kudu/consensus/log_util.h"
+#include "kudu/consensus/metadata.pb.h"
+#include "kudu/consensus/opid.pb.h"
 #include "kudu/consensus/opid_util.h"
+#include "kudu/consensus/time_manager.h"
 #include "kudu/fs/fs_manager.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/move.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/rpc/messenger.h"
+#include "kudu/tserver/tserver.pb.h"
 #include "kudu/util/metrics.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/status.h"
 #include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 #include "kudu/util/threadpool.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/consensus_peers.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/consensus_peers.cc b/src/kudu/consensus/consensus_peers.cc
index d5a29d9..7e3b247 100644
--- a/src/kudu/consensus/consensus_peers.cc
+++ b/src/kudu/consensus/consensus_peers.cc
@@ -18,28 +18,34 @@
 #include "kudu/consensus/consensus.proxy.h"
 
 #include <algorithm>
-#include <functional>
+#include <cstdlib>
 #include <mutex>
 #include <string>
-#include <utility>
+#include <type_traits>
 #include <vector>
 
+#include <boost/function.hpp>
 #include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
 #include <glog/logging.h>
 
+#include "kudu/common/common.pb.h"
 #include "kudu/common/wire_protocol.h"
+#include "kudu/common/wire_protocol.pb.h"
 #include "kudu/consensus/consensus_peers.h"
 #include "kudu/consensus/consensus_queue.h"
-#include "kudu/consensus/log.h"
-#include "kudu/gutil/map-util.h"
-#include "kudu/gutil/stl_util.h"
+#include "kudu/consensus/opid_util.h"
+#include "kudu/gutil/macros.h"
+#include "kudu/gutil/move.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/rpc/messenger.h"
+#include "kudu/tserver/tserver.pb.h"
 #include "kudu/util/fault_injection.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/logging.h"
 #include "kudu/util/monotime.h"
 #include "kudu/util/net/net_util.h"
+#include "kudu/util/net/sockaddr.h"
 #include "kudu/util/pb_util.h"
 #include "kudu/util/random.h"
 #include "kudu/util/random_util.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/consensus_peers.h
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/consensus_peers.h b/src/kudu/consensus/consensus_peers.h
index 5b3662c..38018ea 100644
--- a/src/kudu/consensus/consensus_peers.h
+++ b/src/kudu/consensus/consensus_peers.h
@@ -18,42 +18,38 @@
 #ifndef KUDU_CONSENSUS_CONSENSUS_PEERS_H_
 #define KUDU_CONSENSUS_CONSENSUS_PEERS_H_
 
+#include <cstdint>
 #include <memory>
+#include <ostream>
 #include <string>
 #include <vector>
 
+#include <glog/logging.h>
+
 #include "kudu/consensus/consensus.pb.h"
 #include "kudu/consensus/metadata.pb.h"
 #include "kudu/consensus/ref_counted_replicate.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/port.h"
 #include "kudu/rpc/response_callback.h"
 #include "kudu/rpc/rpc_controller.h"
-#include "kudu/util/countdown_latch.h"
 #include "kudu/util/locks.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/random.h"
-#include "kudu/util/semaphore.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
 class HostPort;
 class ThreadPoolToken;
 
-namespace log {
-class Log;
-}
-
 namespace rpc {
 class Messenger;
-class RpcController;
 }
 
 namespace consensus {
 class ConsensusServiceProxy;
-class OpId;
 class PeerProxy;
-class PeerProxyFactory;
 class PeerMessageQueue;
-class VoteRequestPB;
-class VoteResponsePB;
 
 // A remote peer in consensus.
 //

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/consensus_queue-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/consensus_queue-test.cc b/src/kudu/consensus/consensus_queue-test.cc
index 13e298f..8d6f30b 100644
--- a/src/kudu/consensus/consensus_queue-test.cc
+++ b/src/kudu/consensus/consensus_queue-test.cc
@@ -15,25 +15,46 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <memory>
+#include <cstddef>
+#include <cstdint>
+#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/clock.h"
 #include "kudu/clock/hybrid_clock.h"
+#include "kudu/common/common.pb.h"
 #include "kudu/common/schema.h"
+#include "kudu/common/timestamp.h"
 #include "kudu/common/wire_protocol-test-util.h"
+#include "kudu/common/wire_protocol.h"
 #include "kudu/consensus/consensus-test-util.h"
+#include "kudu/consensus/consensus.pb.h"
 #include "kudu/consensus/consensus_queue.h"
 #include "kudu/consensus/log-test-base.h"
 #include "kudu/consensus/log.h"
 #include "kudu/consensus/log_anchor_registry.h"
-#include "kudu/consensus/log_reader.h"
 #include "kudu/consensus/log_util.h"
+#include "kudu/consensus/metadata.pb.h"
+#include "kudu/consensus/opid.pb.h"
+#include "kudu/consensus/opid_util.h"
+#include "kudu/consensus/ref_counted_replicate.h"
 #include "kudu/consensus/time_manager.h"
 #include "kudu/fs/fs_manager.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
+#include "kudu/tserver/tserver.pb.h"
+#include "kudu/util/async_util.h"
 #include "kudu/util/metrics.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/pb_util.h"
+#include "kudu/util/status.h"
 #include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 #include "kudu/util/threadpool.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/consensus_queue.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/consensus_queue.cc b/src/kudu/consensus/consensus_queue.cc
index 3937857..b22b539 100644
--- a/src/kudu/consensus/consensus_queue.cc
+++ b/src/kudu/consensus/consensus_queue.cc
@@ -17,35 +17,38 @@
 #include "kudu/consensus/consensus_queue.h"
 
 #include <algorithm>
-#include <boost/optional.hpp>
-#include <boost/optional/optional_io.hpp>
-#include <gflags/gflags.h>
+#include <cstdint>
 #include <iostream>
 #include <mutex>
 #include <string>
+#include <unordered_set>
 #include <utility>
 
-#include "kudu/common/wire_protocol.h"
-#include "kudu/consensus/log.h"
-#include "kudu/consensus/log_reader.h"
-#include "kudu/consensus/log_util.h"
+#include <boost/optional/optional.hpp>
+#include <boost/optional/optional_io.hpp>
+#include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
+
+#include "kudu/common/common.pb.h"
+#include "kudu/common/timestamp.h"
+#include "kudu/consensus/consensus.pb.h"
 #include "kudu/consensus/opid_util.h"
 #include "kudu/consensus/quorum_util.h"
-#include "kudu/consensus/raft_consensus.h"
 #include "kudu/consensus/time_manager.h"
+#include "kudu/gutil/bind.h"
+#include "kudu/gutil/bind_helpers.h"
 #include "kudu/gutil/dynamic_annotations.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/stl_util.h"
-#include "kudu/gutil/strings/human_readable.h"
-#include "kudu/gutil/strings/join.h"
-#include "kudu/gutil/strings/strcat.h"
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/tserver/tserver.pb.h"
 #include "kudu/util/fault_injection.h"
 #include "kudu/util/flag_tags.h"
-#include "kudu/util/locks.h"
 #include "kudu/util/logging.h"
-#include "kudu/util/mem_tracker.h"
 #include "kudu/util/metrics.h"
+#include "kudu/util/make_shared.h"
 #include "kudu/util/pb_util.h"
 #include "kudu/util/threadpool.h"
 #include "kudu/util/url-coding.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/consensus_queue.h
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/consensus_queue.h b/src/kudu/consensus/consensus_queue.h
index 5fdeef6..dfb3712 100644
--- a/src/kudu/consensus/consensus_queue.h
+++ b/src/kudu/consensus/consensus_queue.h
@@ -18,31 +18,34 @@
 #ifndef KUDU_CONSENSUS_CONSENSUS_QUEUE_H_
 #define KUDU_CONSENSUS_CONSENSUS_QUEUE_H_
 
+#include <cstdint>
 #include <iosfwd>
-#include <map>
 #include <memory>
 #include <string>
 #include <unordered_map>
 #include <utility>
 #include <vector>
 
-#include <boost/optional.hpp>
+#include <boost/optional/optional.hpp>
+#include <glog/logging.h>
+#include <gtest/gtest_prod.h>
 
-#include "kudu/consensus/consensus.pb.h"
 #include "kudu/consensus/log_cache.h"
-#include "kudu/consensus/log_util.h"
+#include "kudu/consensus/metadata.pb.h"
+#include "kudu/consensus/opid.pb.h"
 #include "kudu/consensus/opid_util.h"
 #include "kudu/consensus/ref_counted_replicate.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/ref_counted.h"
+#include "kudu/gutil/threading/thread_collision_warner.h"
 #include "kudu/util/locks.h"
 #include "kudu/util/logging.h"
+#include "kudu/util/metrics.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/status.h"
+#include "kudu/util/status_callback.h"
 
 namespace kudu {
-template<class T>
-class AtomicGauge;
-class MemTracker;
-class MetricEntity;
 class ThreadPoolToken;
 
 namespace log {
@@ -50,8 +53,11 @@ class Log;
 }
 
 namespace consensus {
+class ConsensusRequestPB;
+class ConsensusResponsePB;
 class PeerMessageQueueObserver;
 class TimeManager;
+class StartTabletCopyRequestPB;
 
 // The id for the server-wide consensus queue MemTracker.
 extern const char kConsensusQueueParentTrackerId[];

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/leader_election-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/leader_election-test.cc b/src/kudu/consensus/leader_election-test.cc
index dd62384..c78fec7 100644
--- a/src/kudu/consensus/leader_election-test.cc
+++ b/src/kudu/consensus/leader_election-test.cc
@@ -17,19 +17,38 @@
 
 #include "kudu/consensus/leader_election.h"
 
+#include <algorithm>
 #include <functional>
 #include <memory>
+#include <ostream>
 #include <string>
+#include <type_traits>
+#include <unordered_map>
 #include <vector>
 
-#include "kudu/consensus/consensus_peers.h"
+#include <gtest/gtest.h>
+#include <glog/logging.h>
+
+#include "kudu/common/wire_protocol.h"
 #include "kudu/consensus/consensus-test-util.h"
+#include "kudu/consensus/consensus.pb.h"
+#include "kudu/consensus/consensus_peers.h"
 #include "kudu/consensus/metadata.pb.h"
+#include "kudu/consensus/raft_consensus.h"
+#include "kudu/gutil/casts.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/move.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/tserver/tserver.pb.h"
+#include "kudu/util/countdown_latch.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/status.h"
 #include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
+#include "kudu/util/threadpool.h"
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/leader_election.cc
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/leader_election.cc b/src/kudu/consensus/leader_election.cc
index 8b69c88..07b8a01 100644
--- a/src/kudu/consensus/leader_election.cc
+++ b/src/kudu/consensus/leader_election.cc
@@ -18,23 +18,27 @@
 #include "kudu/consensus/leader_election.h"
 
 #include <algorithm>
-#include <boost/bind.hpp>
 #include <mutex>
-#include <utility>
+#include <ostream>
+#include <type_traits>
 
+#include <boost/bind.hpp> // IWYU pragma: keep
+#include <glog/logging.h>
+
+#include "kudu/common/wire_protocol.h"
 #include "kudu/consensus/consensus_peers.h"
 #include "kudu/consensus/metadata.pb.h"
-#include "kudu/consensus/opid_util.h"
 #include "kudu/gutil/bind.h"
+#include "kudu/gutil/callback.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/join.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/common/wire_protocol.h"
 #include "kudu/rpc/rpc_controller.h"
+#include "kudu/tserver/tserver.pb.h"
 #include "kudu/util/logging.h"
-#include "kudu/util/net/net_util.h"
 #include "kudu/util/pb_util.h"
 #include "kudu/util/status.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/leader_election.h
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/leader_election.h b/src/kudu/consensus/leader_election.h
index a4b5ca5..3d3620f 100644
--- a/src/kudu/consensus/leader_election.h
+++ b/src/kudu/consensus/leader_election.h
@@ -18,6 +18,7 @@
 #ifndef KUDU_CONSENSUS_LEADER_ELECTION_H
 #define KUDU_CONSENSUS_LEADER_ELECTION_H
 
+#include <cstdint>
 #include <functional>
 #include <map>
 #include <string>
@@ -25,24 +26,20 @@
 #include <vector>
 
 #include "kudu/consensus/consensus.pb.h"
+#include "kudu/consensus/consensus_peers.h"
 #include "kudu/consensus/raft_consensus.h"
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/rpc/rpc_controller.h"
 #include "kudu/util/locks.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
-class Status;
-
-namespace rpc {
-class Messenger;
-class RpcController;
-}
-
 namespace consensus {
-class PeerProxy;
-class PeerProxyFactory;
+
+class RaftConfigPB;
 
 // The vote a peer has given.
 enum ElectionVote {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/consensus/log-test-base.h
----------------------------------------------------------------------
diff --git a/src/kudu/consensus/log-test-base.h b/src/kudu/consensus/log-test-base.h
index 0f2b03a..5239ea2 100644
--- a/src/kudu/consensus/log-test-base.h
+++ b/src/kudu/consensus/log-test-base.h
@@ -33,6 +33,7 @@
 #include "kudu/consensus/log_anchor_registry.h"
 #include "kudu/consensus/log_reader.h"
 #include "kudu/consensus/metadata.pb.h"
+#include "kudu/consensus/opid_util.h"
 #include "kudu/fs/fs_manager.h"
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/stl_util.h"
@@ -40,6 +41,7 @@
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/gutil/strings/util.h"
 #include "kudu/tserver/tserver.pb.h"
+#include "kudu/util/async_util.h"
 #include "kudu/util/env_util.h"
 #include "kudu/util/metrics.h"
 #include "kudu/util/path_util.h"


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

Posted by al...@apache.org.
http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/connection.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/connection.cc b/src/kudu/rpc/connection.cc
index c532759..f8588db 100644
--- a/src/kudu/rpc/connection.cc
+++ b/src/kudu/rpc/connection.cc
@@ -17,45 +17,43 @@
 
 #include "kudu/rpc/connection.h"
 
-#include <stdint.h>
-
 #include <algorithm>
+#include <cerrno>
+#include <cstddef>
+#include <functional>
 #include <iostream>
 #include <memory>
 #include <set>
 #include <string>
-#include <unordered_set>
-#include <vector>
+#include <type_traits>
 
+#include <boost/intrusive/detail/list_iterator.hpp>
 #include <boost/intrusive/list.hpp>
-#include <gflags/gflags.h>
+#include <ev.h>
 #include <glog/logging.h>
 
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/move.h"
+#include "kudu/util/slice.h"
 #include "kudu/gutil/strings/human_readable.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/rpc/client_negotiation.h"
-#include "kudu/rpc/constants.h"
+#include "kudu/rpc/inbound_call.h"
 #include "kudu/rpc/messenger.h"
+#include "kudu/rpc/outbound_call.h"
 #include "kudu/rpc/reactor.h"
 #include "kudu/rpc/rpc_controller.h"
 #include "kudu/rpc/rpc_header.pb.h"
 #include "kudu/rpc/rpc_introspection.pb.h"
 #include "kudu/rpc/transfer.h"
-#include "kudu/util/debug-util.h"
-#include "kudu/util/flag_tags.h"
-#include "kudu/util/logging.h"
 #include "kudu/util/net/sockaddr.h"
 #include "kudu/util/net/socket.h"
 #include "kudu/util/status.h"
-#include "kudu/util/trace.h"
 
 using std::function;
 using std::includes;
 using std::set;
 using std::shared_ptr;
 using std::unique_ptr;
-using std::vector;
 using strings::Substitute;
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/connection.h
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/connection.h b/src/kudu/rpc/connection.h
index e782e0b..9413b4b 100644
--- a/src/kudu/rpc/connection.h
+++ b/src/kudu/rpc/connection.h
@@ -18,24 +18,27 @@
 #ifndef KUDU_RPC_CONNECTION_H
 #define KUDU_RPC_CONNECTION_H
 
+#include <algorithm>
 #include <cstdint>
 #include <limits>
 #include <memory>
 #include <set>
 #include <string>
 #include <unordered_map>
-#include <vector>
 
 #include <boost/intrusive/list.hpp>
 #include <ev++.h>
+#include <glog/logging.h>
 
 #include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/map-util.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/ref_counted.h"
-#include "kudu/rpc/inbound_call.h"
-#include "kudu/rpc/outbound_call.h"
-#include "kudu/rpc/remote_user.h"
 #include "kudu/rpc/rpc_controller.h"
+#include "kudu/rpc/rpc_header.pb.h"
+#include "kudu/rpc/remote_user.h"
 #include "kudu/rpc/transfer.h"
+#include "kudu/rpc/user_credentials.h"
 #include "kudu/util/monotime.h"
 #include "kudu/util/net/sockaddr.h"
 #include "kudu/util/net/socket.h"
@@ -43,10 +46,12 @@
 #include "kudu/util/status.h"
 
 namespace kudu {
+
 namespace rpc {
 
 class DumpRunningRpcsRequestPB;
-class ErrorStatusPB;
+class InboundCall;
+class OutboundCall;
 class RpcConnectionPB;
 class ReactorThread;
 class RpczStore;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/connection_id.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/connection_id.cc b/src/kudu/rpc/connection_id.cc
index a17b783..1d3076d 100644
--- a/src/kudu/rpc/connection_id.cc
+++ b/src/kudu/rpc/connection_id.cc
@@ -17,7 +17,10 @@
 
 #include "kudu/rpc/connection_id.h"
 
-#include <boost/functional/hash.hpp>
+#include <algorithm>
+#include <cstddef>
+
+#include <boost/functional/hash/hash.hpp>
 
 #include "kudu/gutil/strings/substitute.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/connection_id.h
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/connection_id.h b/src/kudu/rpc/connection_id.h
index 09f1738..1e2ba68 100644
--- a/src/kudu/rpc/connection_id.h
+++ b/src/kudu/rpc/connection_id.h
@@ -16,6 +16,7 @@
 // under the License.
 #pragma once
 
+#include <cstddef>
 #include <string>
 
 #include "kudu/rpc/user_credentials.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/exactly_once_rpc-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/exactly_once_rpc-test.cc b/src/kudu/rpc/exactly_once_rpc-test.cc
index 6601ed0..edf3767 100644
--- a/src/kudu/rpc/exactly_once_rpc-test.cc
+++ b/src/kudu/rpc/exactly_once_rpc-test.cc
@@ -15,10 +15,42 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <unistd.h>
+
+#include <algorithm>
+#include <atomic>
+#include <cstdint>
+#include <cstdlib>
+#include <memory>
+#include <ostream>
+#include <string>
+#include <vector>
+
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
+#include "kudu/gutil/callback.h"
+#include "kudu/gutil/ref_counted.h"
+#include "kudu/rpc/request_tracker.h"
+#include "kudu/rpc/response_callback.h"
+#include "kudu/rpc/result_tracker.h"
 #include "kudu/rpc/retriable_rpc.h"
 #include "kudu/rpc/rpc-test-base.h"
 #include "kudu/rpc/rpc.h"
+#include "kudu/rpc/rpc_controller.h"
+#include "kudu/rpc/rpc_header.pb.h"
+#include "kudu/rpc/rtest.pb.h"
+#include "kudu/rpc/rtest.proxy.h"
+#include "kudu/util/countdown_latch.h"
+#include "kudu/util/mem_tracker.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/net/sockaddr.h"
 #include "kudu/util/pb_util.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
+#include "kudu/util/test_util.h"
+#include "kudu/util/thread.h"
 
 DECLARE_int64(remember_clients_ttl_ms);
 DECLARE_int64(remember_responses_ttl_ms);
@@ -34,6 +66,8 @@ using std::vector;
 namespace kudu {
 namespace rpc {
 
+class Messenger;
+
 namespace {
 
 const char* kClientId = "test-client";

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/inbound_call.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/inbound_call.cc b/src/kudu/rpc/inbound_call.cc
index 11b7585..a360e0b 100644
--- a/src/kudu/rpc/inbound_call.cc
+++ b/src/kudu/rpc/inbound_call.cc
@@ -17,9 +17,16 @@
 
 #include "kudu/rpc/inbound_call.h"
 
-#include <glog/stl_logging.h>
+#include <cstdint>
 #include <memory>
+#include <ostream>
 
+#include <glog/logging.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/message_lite.h>
+
+#include "kudu/gutil/move.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/rpc/connection.h"
 #include "kudu/rpc/rpc_introspection.pb.h"
@@ -27,12 +34,20 @@
 #include "kudu/rpc/rpcz_store.h"
 #include "kudu/rpc/serialization.h"
 #include "kudu/rpc/service_if.h"
+#include "kudu/rpc/transfer.h"
 #include "kudu/util/debug/trace_event.h"
 #include "kudu/util/metrics.h"
+#include "kudu/util/net/sockaddr.h"
 #include "kudu/util/trace.h"
 
+namespace google {
+namespace protobuf {
+class FieldDescriptor;
+}
+}
+
 using google::protobuf::FieldDescriptor;
-using google::protobuf::io::CodedOutputStream;
+using google::protobuf::Message;
 using google::protobuf::MessageLite;
 using std::string;
 using std::unique_ptr;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/inbound_call.h
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/inbound_call.h b/src/kudu/rpc/inbound_call.h
index 83a750f..b6281e7 100644
--- a/src/kudu/rpc/inbound_call.h
+++ b/src/kudu/rpc/inbound_call.h
@@ -17,16 +17,22 @@
 #ifndef KUDU_RPC_INBOUND_CALL_H
 #define KUDU_RPC_INBOUND_CALL_H
 
-#include <glog/logging.h>
+#include <algorithm>
+#include <cstddef>
+#include <cstdint>
+#include <memory>
+#include <ostream>
 #include <string>
 #include <vector>
 
+#include <glog/logging.h>
+
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/rpc/remote_method.h"
-#include "kudu/rpc/service_if.h"
 #include "kudu/rpc/rpc_header.pb.h"
+#include "kudu/rpc/service_if.h"
 #include "kudu/rpc/transfer.h"
 #include "kudu/util/faststring.h"
 #include "kudu/util/monotime.h"
@@ -35,13 +41,14 @@
 
 namespace google {
 namespace protobuf {
-class Message;
+class MessageLite;
 } // namespace protobuf
 } // namespace google
 
 namespace kudu {
 
 class Histogram;
+class Sockaddr;
 class Trace;
 
 namespace rpc {
@@ -50,7 +57,6 @@ class Connection;
 class DumpRunningRpcsRequestPB;
 class RemoteUser;
 class RpcCallInProgressPB;
-struct RpcMethodInfo;
 class RpcSidecar;
 
 struct InboundCallTiming {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/messenger.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/messenger.cc b/src/kudu/rpc/messenger.cc
index 35fda52..bfe38cc 100644
--- a/src/kudu/rpc/messenger.cc
+++ b/src/kudu/rpc/messenger.cc
@@ -17,47 +17,51 @@
 
 #include "kudu/rpc/messenger.h"
 
-#include <arpa/inet.h>
-#include <sys/socket.h>
-#include <sys/types.h>
-#include <unistd.h>
-
-#include <list>
+#include <algorithm>
+#include <cstdlib>
+#include <functional>
 #include <mutex>
-#include <set>
+#include <ostream>
 #include <string>
+#include <type_traits>
 
 #include <boost/algorithm/string/predicate.hpp>
 #include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
 #include <glog/logging.h>
 
 #include "kudu/gutil/gscoped_ptr.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/rpc/acceptor_pool.h"
-#include "kudu/rpc/connection.h"
-#include "kudu/rpc/constants.h"
+#include "kudu/rpc/connection_id.h"
+#include "kudu/rpc/inbound_call.h"
+#include "kudu/rpc/outbound_call.h"
 #include "kudu/rpc/reactor.h"
+#include "kudu/rpc/remote_method.h"
 #include "kudu/rpc/rpc_header.pb.h"
 #include "kudu/rpc/rpc_service.h"
 #include "kudu/rpc/rpcz_store.h"
 #include "kudu/rpc/sasl_common.h"
 #include "kudu/rpc/server_negotiation.h"
-#include "kudu/rpc/transfer.h"
+#include "kudu/rpc/service_if.h"
+#include "kudu/security/openssl_util.h"
 #include "kudu/security/tls_context.h"
 #include "kudu/security/token_verifier.h"
 #include "kudu/util/env.h"
-#include "kudu/util/errno.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/flag_validators.h"
 #include "kudu/util/metrics.h"
 #include "kudu/util/monotime.h"
 #include "kudu/util/net/socket.h"
 #include "kudu/util/scoped_cleanup.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
+#include "kudu/util/thread_restrictions.h"
 #include "kudu/util/threadpool.h"
-#include "kudu/util/trace.h"
 
 using std::string;
 using std::shared_ptr;
@@ -116,6 +120,10 @@ TAG_FLAG(rpc_default_keepalive_time_ms, advanced);
 DECLARE_string(keytab_file);
 DECLARE_bool(allow_world_readable_credentials);
 
+namespace boost {
+template <typename Signature> class function;
+}
+
 namespace kudu {
 namespace rpc {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/messenger.h
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/messenger.h b/src/kudu/rpc/messenger.h
index 8a02104..cf34c95 100644
--- a/src/kudu/rpc/messenger.h
+++ b/src/kudu/rpc/messenger.h
@@ -17,21 +17,20 @@
 #ifndef KUDU_RPC_MESSENGER_H
 #define KUDU_RPC_MESSENGER_H
 
-#include <stdint.h>
-
-#include <list>
+#include <cstdint>
 #include <memory>
+#include <mutex>
 #include <string>
 #include <unordered_map>
 #include <vector>
 
-#include <boost/optional.hpp>
+#include <boost/optional/optional.hpp>
 #include <gtest/gtest_prod.h>
 
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/rpc/connection.h"
-#include "kudu/rpc/response_callback.h"
 #include "kudu/security/token.pb.h"
 #include "kudu/util/locks.h"
 #include "kudu/util/metrics.h"
@@ -39,6 +38,11 @@
 #include "kudu/util/net/sockaddr.h"
 #include "kudu/util/status.h"
 
+namespace boost {
+template <typename Signature>
+class function;
+}
+
 namespace kudu {
 
 class Socket;
@@ -58,7 +62,6 @@ class InboundCall;
 class Messenger;
 class OutboundCall;
 class Reactor;
-class ReactorThread;
 class RpcService;
 class RpczStore;
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/mt-rpc-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/mt-rpc-test.cc b/src/kudu/rpc/mt-rpc-test.cc
index 0fa11e5..65121e5 100644
--- a/src/kudu/rpc/mt-rpc-test.cc
+++ b/src/kudu/rpc/mt-rpc-test.cc
@@ -17,16 +17,38 @@
 
 #include "kudu/rpc/rpc-test-base.h"
 
+#include <algorithm>
+#include <cstddef>
+#include <memory>
+#include <ostream>
 #include <string>
+#include <type_traits>
+#include <vector>
 
-#include <boost/bind.hpp>
+#include <glog/logging.h>
 #include <gtest/gtest.h>
 
-#include "kudu/gutil/stl_util.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/move.h"
+#include "kudu/gutil/port.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/proxy.h"
+#include "kudu/rpc/rpc_service.h"
+#include "kudu/rpc/service_if.h"
+#include "kudu/rpc/service_pool.h"
 #include "kudu/util/countdown_latch.h"
 #include "kudu/util/metrics.h"
-#include "kudu/util/test_util.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/net/sockaddr.h"
+#include "kudu/util/net/socket.h"
+#include "kudu/util/status.h"
+#include "kudu/util/stopwatch.h"
+#include "kudu/util/test_macros.h"
+#include "kudu/util/thread.h"
+
 
 METRIC_DECLARE_counter(rpc_connections_accepted);
 METRIC_DECLARE_counter(rpcs_queue_overflow);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/negotiation-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/negotiation-test.cc b/src/kudu/rpc/negotiation-test.cc
index 901475b..43ec276 100644
--- a/src/kudu/rpc/negotiation-test.cc
+++ b/src/kudu/rpc/negotiation-test.cc
@@ -30,14 +30,11 @@
 #include <gtest/gtest.h>
 #include <sasl/sasl.h>
 
-#include "kudu/gutil/gscoped_ptr.h"
-#include "kudu/gutil/map-util.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/gutil/walltime.h"
 #include "kudu/rpc/client_negotiation.h"
-#include "kudu/rpc/constants.h"
 #include "kudu/rpc/negotiation.h"
 #include "kudu/rpc/server_negotiation.h"
 #include "kudu/security/crypto.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/negotiation.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/negotiation.cc b/src/kudu/rpc/negotiation.cc
index 591258f..8578e37 100644
--- a/src/kudu/rpc/negotiation.cc
+++ b/src/kudu/rpc/negotiation.cc
@@ -18,29 +18,36 @@
 #include "kudu/rpc/negotiation.h"
 
 #include <poll.h>
-#include <sys/time.h>
+#include <sys/socket.h>
 
+#include <algorithm>
+#include <cerrno>
+#include <ctime>
 #include <memory>
 #include <ostream>
 #include <string>
 
+#include <boost/optional.hpp> // IWYU pragma: keep
 #include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
 #include <glog/logging.h>
 
-#include "kudu/gutil/stringprintf.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/rpc/blocking_ops.h"
 #include "kudu/rpc/client_negotiation.h"
 #include "kudu/rpc/connection.h"
 #include "kudu/rpc/messenger.h"
 #include "kudu/rpc/reactor.h"
+#include "kudu/rpc/rpc_controller.h"
 #include "kudu/rpc/rpc_header.pb.h"
-#include "kudu/rpc/sasl_common.h"
 #include "kudu/rpc/server_negotiation.h"
 #include "kudu/security/tls_context.h"
 #include "kudu/util/errno.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/logging.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/net/socket.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
 #include "kudu/util/trace.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/negotiation.h
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/negotiation.h b/src/kudu/rpc/negotiation.h
index 2ca459b..fb08d6d 100644
--- a/src/kudu/rpc/negotiation.h
+++ b/src/kudu/rpc/negotiation.h
@@ -20,9 +20,12 @@
 #include <iosfwd>
 
 #include "kudu/gutil/ref_counted.h"
-#include "kudu/util/monotime.h"
+#include "kudu/gutil/macros.h"
 
 namespace kudu {
+
+class MonoTime;
+
 namespace rpc {
 
 class Connection;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/outbound_call.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/outbound_call.cc b/src/kudu/rpc/outbound_call.cc
index 5010270..2dad6e7 100644
--- a/src/kudu/rpc/outbound_call.cc
+++ b/src/kudu/rpc/outbound_call.cc
@@ -16,15 +16,23 @@
 // under the License.
 
 #include <algorithm>
-#include <gflags/gflags.h>
+#include <cstdint>
 #include <memory>
 #include <mutex>
 #include <string>
+#include <type_traits>
 #include <unordered_set>
 #include <vector>
 
+#include <boost/function.hpp>
+#include <gflags/gflags.h>
+#include <google/protobuf/message.h>
+
+#include "kudu/gutil/move.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/stringprintf.h"
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/gutil/sysinfo.h"
 #include "kudu/gutil/walltime.h"
 #include "kudu/rpc/connection.h"
 #include "kudu/rpc/constants.h"
@@ -36,6 +44,7 @@
 #include "kudu/rpc/transfer.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/kernel_stack_watchdog.h"
+#include "kudu/util/net/sockaddr.h"
 
 // 100M cycles should be about 50ms on a 2Ghz box. This should be high
 // enough that involuntary context switches don't trigger it, but low enough

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/outbound_call.h
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/outbound_call.h b/src/kudu/rpc/outbound_call.h
index 77e62d6..a55fe97 100644
--- a/src/kudu/rpc/outbound_call.h
+++ b/src/kudu/rpc/outbound_call.h
@@ -17,11 +17,17 @@
 #ifndef KUDU_RPC_CLIENT_CALL_H
 #define KUDU_RPC_CLIENT_CALL_H
 
+#include <cstddef>
+#include <cstdint>
+#include <memory>
+#include <ostream>
 #include <set>
 #include <string>
 #include <vector>
 
+#include <gflags/gflags_declare.h>
 #include <glog/logging.h>
+#include <gtest/gtest_prod.h>
 
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
@@ -30,8 +36,8 @@
 #include "kudu/rpc/remote_method.h"
 #include "kudu/rpc/response_callback.h"
 #include "kudu/rpc/rpc_header.pb.h"
-#include "kudu/rpc/rpc_sidecar.h"
 #include "kudu/rpc/transfer.h"
+#include "kudu/util/faststring.h"
 #include "kudu/util/locks.h"
 #include "kudu/util/monotime.h"
 #include "kudu/util/slice.h"
@@ -51,7 +57,6 @@ namespace rpc {
 class CallResponse;
 class Connection;
 class DumpRunningRpcsRequestPB;
-class InboundTransfer;
 class RpcCallInProgressPB;
 class RpcController;
 class RpcSidecar;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/protoc-gen-krpc.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/protoc-gen-krpc.cc b/src/kudu/rpc/protoc-gen-krpc.cc
index e892897..9ce166e 100644
--- a/src/kudu/rpc/protoc-gen-krpc.cc
+++ b/src/kudu/rpc/protoc-gen-krpc.cc
@@ -20,15 +20,14 @@
 // protoc --plugin=protoc-gen-krpc --krpc_out . --proto_path . <file>.proto
 ////////////////////////////////////////////////////////////////////////////////
 
-#include <ctype.h>
-
-#include <iostream>
+#include <cstddef>
 #include <map>
 #include <memory>
-#include <sstream>
+#include <set>
 #include <string>
+#include <vector>
 
-#include <boost/optional.hpp>
+#include <boost/optional/optional.hpp>
 #include <glog/logging.h>
 #include <google/protobuf/compiler/code_generator.h>
 #include <google/protobuf/compiler/plugin.h>
@@ -36,9 +35,9 @@
 #include <google/protobuf/descriptor.pb.h>
 #include <google/protobuf/io/printer.h>
 #include <google/protobuf/io/zero_copy_stream.h>
-#include <google/protobuf/stubs/common.h>
 
 #include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/numbers.h"
 #include "kudu/gutil/strings/split.h"
@@ -353,27 +352,27 @@ class CodeGenerator : public ::google::protobuf::compiler::CodeGenerator {
       "#ifndef KUDU_RPC_$upper_case$_SERVICE_IF_DOT_H\n"
       "#define KUDU_RPC_$upper_case$_SERVICE_IF_DOT_H\n"
       "\n"
-      "#include \"$path_no_extension$.pb.h\"\n"
-      "\n"
-      "#include <functional>\n"
-      "#include <memory>\n"
       "#include <string>\n"
       "\n"
-      "#include \"kudu/rpc/rpc_header.pb.h\"\n"
+      "#include \"kudu/gutil/ref_counted.h\"\n"
       "#include \"kudu/rpc/service_if.h\"\n"
       "\n"
+      "namespace google {\n"
+      "namespace protobuf {\n"
+      "class Message;\n"
+      "} // namespace protobuf\n"
+      "} // namespace google\n"
+      "\n"
       "namespace kudu {\n"
       "class MetricEntity;\n"
       "namespace rpc {\n"
-      "class Messenger;\n"
       "class ResultTracker;\n"
       "class RpcContext;\n"
       "} // namespace rpc\n"
       "} // namespace kudu\n"
       "\n"
       "$open_namespace$"
-      "\n"
-      );
+      "\n");
 
     for (int service_idx = 0; service_idx < file->service_count();
          ++service_idx) {
@@ -398,8 +397,8 @@ class CodeGenerator : public ::google::protobuf::compiler::CodeGenerator {
         subs->PushMethod(method);
 
         Print(printer, *subs,
-        "  virtual void $rpc_name$(const $request$ *req,\n"
-        "     $response$ *resp, ::kudu::rpc::RpcContext *context) = 0;\n"
+        "  virtual void $rpc_name$(const class $request$ *req,\n"
+        "      class $response$ *resp, ::kudu::rpc::RpcContext *context) = 0;\n"
         );
         subs->Pop();
         if (auto m = GetAuthzMethod(*method)) {
@@ -439,14 +438,17 @@ class CodeGenerator : public ::google::protobuf::compiler::CodeGenerator {
     Print(printer, *subs,
       "// THIS FILE IS AUTOGENERATED FROM $path$\n"
       "\n"
+      "#include <algorithm>\n"
+      "#include <functional>\n"
+      "#include <memory>\n"
+      "#include <unordered_map>\n"
+      "\n"
+      "#include <google/protobuf/message.h>\n"
+      "\n"
       "#include \"$path_no_extension$.pb.h\"\n"
       "#include \"$path_no_extension$.service.h\"\n"
       "\n"
-      "#include <glog/logging.h>\n"
-      "\n"
-      "#include \"kudu/rpc/inbound_call.h\"\n"
-      "#include \"kudu/rpc/remote_method.h\"\n"
-      "#include \"kudu/rpc/rpc_context.h\"\n"
+      "#include \"kudu/rpc/result_tracker.h\"\n"
       "#include \"kudu/rpc/service_if.h\"\n"
       "#include \"kudu/util/metrics.h\"\n"
       "\n");
@@ -556,17 +558,22 @@ class CodeGenerator : public ::google::protobuf::compiler::CodeGenerator {
       "#ifndef KUDU_RPC_$upper_case$_PROXY_DOT_H\n"
       "#define KUDU_RPC_$upper_case$_PROXY_DOT_H\n"
       "\n"
-      "#include \"$path_no_extension$.pb.h\"\n"
+      "#include <memory>\n"
       "\n"
       "#include \"kudu/rpc/proxy.h\"\n"
+      "#include \"kudu/rpc/response_callback.h\"\n"
       "#include \"kudu/util/status.h\"\n"
       "\n"
       "namespace kudu { class Sockaddr; }\n"
-      "namespace kudu { namespace rpc { class UserCredentials; } }\n"
-      "$open_namespace$"
-      "\n"
+      "namespace kudu {\n"
+      "namespace rpc {\n"
+      "class Messenger;\n"
+      "class RpcController;\n"
+      "} // namespace rpc\n"
+      "} // namespace kudu\n"
       "\n"
-    );
+      "$open_namespace$"
+      "\n");
 
     for (int service_idx = 0; service_idx < file->service_count();
          ++service_idx) {
@@ -589,10 +596,11 @@ class CodeGenerator : public ::google::protobuf::compiler::CodeGenerator {
 
         Print(printer, *subs,
         "\n"
-        "  ::kudu::Status $rpc_name$(const $request$ &req, $response$ *resp,\n"
-        "                          ::kudu::rpc::RpcController *controller);\n"
-        "  void $rpc_name$Async(const $request$ &req,\n"
-        "                       $response$ *response,\n"
+        "  ::kudu::Status $rpc_name$(const class $request$ &req,\n"
+        "                            class $response$ *resp,\n"
+        "                            ::kudu::rpc::RpcController *controller);\n"
+        "  void $rpc_name$Async(const class $request$ &req,\n"
+        "                       class $response$ *response,\n"
         "                       ::kudu::rpc::RpcController *controller,\n"
         "                       const ::kudu::rpc::ResponseCallback &callback);\n"
         );
@@ -616,14 +624,20 @@ class CodeGenerator : public ::google::protobuf::compiler::CodeGenerator {
     Print(printer, *subs,
       "// THIS FILE IS AUTOGENERATED FROM $path$\n"
       "\n"
+      "#include <string>\n"
+      "\n"
+      "#include \"$path_no_extension$.pb.h\"\n"
       "#include \"$path_no_extension$.proxy.h\"\n"
       "\n"
-      "#include \"kudu/rpc/outbound_call.h\"\n"
-      "#include \"kudu/util/net/sockaddr.h\"\n"
+      "namespace kudu {\n"
+      "namespace rpc {\n"
+      "class Messenger;\n"
+      "class RpcController;\n"
+      "} // namespace rpc\n"
+      "} // namespace kudu\n"
       "\n"
       "$open_namespace$"
-      "\n"
-      );
+      "\n");
 
     for (int service_idx = 0; service_idx < file->service_count();
          ++service_idx) {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/proxy.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/proxy.cc b/src/kudu/rpc/proxy.cc
index 0d946ed..84c9ba8 100644
--- a/src/kudu/rpc/proxy.cc
+++ b/src/kudu/rpc/proxy.cc
@@ -17,25 +17,22 @@
 
 #include "kudu/rpc/proxy.h"
 
-#include <boost/bind.hpp>
-#include <glog/logging.h>
-#include <inttypes.h>
+#include <algorithm>
+#include <iostream>
 #include <memory>
-#include <stdint.h>
 
-#include <iostream>
-#include <sstream>
-#include <vector>
+#include <boost/bind.hpp> // IWYU pragma: keep
+#include <boost/core/ref.hpp>
+#include <glog/logging.h>
 
-#include "kudu/gutil/stringprintf.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/rpc/outbound_call.h"
 #include "kudu/rpc/messenger.h"
 #include "kudu/rpc/remote_method.h"
 #include "kudu/rpc/response_callback.h"
-#include "kudu/rpc/rpc_header.pb.h"
+#include "kudu/rpc/rpc_controller.h"
+#include "kudu/rpc/user_credentials.h"
 #include "kudu/util/net/sockaddr.h"
-#include "kudu/util/net/socket.h"
 #include "kudu/util/countdown_latch.h"
 #include "kudu/util/status.h"
 #include "kudu/util/user.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/proxy.h
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/proxy.h b/src/kudu/rpc/proxy.h
index 6e43e93..50640e2 100644
--- a/src/kudu/rpc/proxy.h
+++ b/src/kudu/rpc/proxy.h
@@ -22,12 +22,9 @@
 #include <string>
 
 #include "kudu/gutil/atomicops.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/rpc/connection_id.h"
 #include "kudu/rpc/response_callback.h"
-#include "kudu/rpc/rpc_controller.h"
-#include "kudu/rpc/rpc_header.pb.h"
-#include "kudu/util/monotime.h"
-#include "kudu/util/net/sockaddr.h"
 #include "kudu/util/status.h"
 
 namespace google {
@@ -37,9 +34,14 @@ class Message;
 } // namespace google
 
 namespace kudu {
+
+class Sockaddr;
+
 namespace rpc {
 
 class Messenger;
+class RpcController;
+class UserCredentials;
 
 // Interface to send calls to a remote service.
 //

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/reactor-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/reactor-test.cc b/src/kudu/rpc/reactor-test.cc
index 2faac2a..8080723 100644
--- a/src/kudu/rpc/reactor-test.cc
+++ b/src/kudu/rpc/reactor-test.cc
@@ -15,10 +15,19 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include "kudu/rpc/reactor.h"
+#include <memory>
 
+#include <boost/bind.hpp> // IWYU pragma: keep
+#include <boost/function.hpp>
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
+#include "kudu/rpc/messenger.h"
 #include "kudu/rpc/rpc-test-base.h"
 #include "kudu/util/countdown_latch.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/status.h"
+#include "kudu/util/thread.h"
 
 using std::shared_ptr;
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/reactor.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/reactor.cc b/src/kudu/rpc/reactor.cc
index 5dc2f0f..ee6f105 100644
--- a/src/kudu/rpc/reactor.cc
+++ b/src/kudu/rpc/reactor.cc
@@ -17,22 +17,21 @@
 
 #include "kudu/rpc/reactor.h"
 
-#include <arpa/inet.h>
-#include <netinet/in.h>
-#include <stdlib.h>
-#include <sys/socket.h>
-#include <sys/types.h>
-#include <unistd.h>
-
+#include <cerrno>
 #include <memory>
 #include <mutex>
+#include <ostream>
 #include <string>
+#include <utility>
 
+#include <boost/bind.hpp> // IWYU pragma: keep
 #include <boost/intrusive/list.hpp>
 #include <boost/optional.hpp>
 #include <ev++.h>
+#include <gflags/gflags.h>
 #include <glog/logging.h>
 
+#include "kudu/gutil/bind.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/stringprintf.h"
 #include "kudu/gutil/strings/substitute.h"
@@ -40,15 +39,13 @@
 #include "kudu/rpc/connection.h"
 #include "kudu/rpc/messenger.h"
 #include "kudu/rpc/negotiation.h"
-#include "kudu/rpc/rpc_controller.h"
 #include "kudu/rpc/rpc_introspection.pb.h"
 #include "kudu/rpc/server_negotiation.h"
-#include "kudu/rpc/transfer.h"
 #include "kudu/util/countdown_latch.h"
 #include "kudu/util/debug/sanitizer_scopes.h"
-#include "kudu/util/errno.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/monotime.h"
+#include "kudu/util/net/sockaddr.h"
 #include "kudu/util/net/socket.h"
 #include "kudu/util/status.h"
 #include "kudu/util/thread.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/reactor.h
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/reactor.h b/src/kudu/rpc/reactor.h
index 6b436f4..6d39ba2 100644
--- a/src/kudu/rpc/reactor.h
+++ b/src/kudu/rpc/reactor.h
@@ -19,29 +19,31 @@
 
 #include <cstdint>
 #include <list>
-#include <map>
 #include <memory>
 #include <set>
 #include <string>
+#include <unordered_map>
 
-#include <boost/function.hpp>
+#include <boost/function.hpp> // IWYU pragma: keep
 #include <boost/intrusive/list.hpp>
-#include <boost/optional.hpp>
+#include <boost/intrusive/list_hook.hpp>
 #include <ev++.h>
 
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/rpc/connection.h"
 #include "kudu/rpc/connection_id.h"
 #include "kudu/rpc/messenger.h"
-#include "kudu/rpc/transfer.h"
+#include "kudu/rpc/outbound_call.h"
+#include "kudu/rpc/rpc_header.pb.h"
 #include "kudu/util/locks.h"
 #include "kudu/util/monotime.h"
-#include "kudu/util/net/socket.h"
 #include "kudu/util/status.h"
 #include "kudu/util/thread.h"
 
 namespace kudu {
 
+class Sockaddr;
 class Socket;
 
 namespace rpc {
@@ -51,6 +53,7 @@ typedef std::list<scoped_refptr<Connection>> conn_list_t;
 class DumpRunningRpcsRequestPB;
 class DumpRunningRpcsResponsePB;
 class Reactor;
+class ReactorThread;
 enum class CredentialsPolicy;
 
 // Simple metrics information from within a reactor.

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/remote_method.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/remote_method.cc b/src/kudu/rpc/remote_method.cc
index 35020bc..71995f2 100644
--- a/src/kudu/rpc/remote_method.cc
+++ b/src/kudu/rpc/remote_method.cc
@@ -15,6 +15,9 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <algorithm>
+#include <ostream>
+
 #include <glog/logging.h>
 
 #include "kudu/gutil/strings/substitute.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/remote_user.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/remote_user.cc b/src/kudu/rpc/remote_user.cc
index 50e3fcd..047f10a 100644
--- a/src/kudu/rpc/remote_user.cc
+++ b/src/kudu/rpc/remote_user.cc
@@ -17,7 +17,6 @@
 
 #include "kudu/rpc/remote_user.h"
 
-#include <boost/optional.hpp>
 #include <string>
 
 #include "kudu/gutil/strings/substitute.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/remote_user.h
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/remote_user.h b/src/kudu/rpc/remote_user.h
index 7dc0590..c93a261 100644
--- a/src/kudu/rpc/remote_user.h
+++ b/src/kudu/rpc/remote_user.h
@@ -16,9 +16,10 @@
 // under the License.
 #pragma once
 
+#include <algorithm>
 #include <string>
 
-#include <boost/optional.hpp>
+#include <boost/optional/optional.hpp>
 
 namespace kudu {
 namespace rpc {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/request_tracker-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/request_tracker-test.cc b/src/kudu/rpc/request_tracker-test.cc
index f39e131..f1e4d55 100644
--- a/src/kudu/rpc/request_tracker-test.cc
+++ b/src/kudu/rpc/request_tracker-test.cc
@@ -15,11 +15,14 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <gtest/gtest.h>
+#include <string>
 #include <vector>
 
+#include <gtest/gtest.h>
+
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/rpc/request_tracker.h"
-#include "kudu/util/test_util.h"
+#include "kudu/util/test_macros.h"
 
 using std::vector;
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/request_tracker.h
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/request_tracker.h b/src/kudu/rpc/request_tracker.h
index 7542bd1..5cc3995 100644
--- a/src/kudu/rpc/request_tracker.h
+++ b/src/kudu/rpc/request_tracker.h
@@ -16,9 +16,11 @@
 // under the License.
 #pragma once
 
+#include <cstdint>
 #include <set>
 #include <string>
 
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/util/locks.h"
 #include "kudu/util/status.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/result_tracker.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/result_tracker.cc b/src/kudu/rpc/result_tracker.cc
index c9c1aad..e04aa0b 100644
--- a/src/kudu/rpc/result_tracker.cc
+++ b/src/kudu/rpc/result_tracker.cc
@@ -18,17 +18,25 @@
 #include "kudu/rpc/result_tracker.h"
 
 #include <algorithm>
-#include <limits>
+#include <mutex>
+#include <ostream>
+
+#include <gflags/gflags.h>
+#include <glog/logging.h>
 
 #include "kudu/gutil/map-util.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/rpc/inbound_call.h"
+#include "kudu/rpc/remote_method.h"
 #include "kudu/rpc/rpc_context.h"
 #include "kudu/util/debug/trace_event.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/mem_tracker.h"
 #include "kudu/util/pb_util.h"
+#include "kudu/util/status.h"
+#include "kudu/util/thread.h"
 #include "kudu/util/trace.h"
+// IWYU pragma: no_include <deque>
 
 DEFINE_int64(remember_clients_ttl_ms, 3600 * 1000 /* 1 hour */,
     "Maximum amount of time, in milliseconds, the server \"remembers\" a client for the "

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/result_tracker.h
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/result_tracker.h b/src/kudu/rpc/result_tracker.h
index 4e808d1..6256e71 100644
--- a/src/kudu/rpc/result_tracker.h
+++ b/src/kudu/rpc/result_tracker.h
@@ -16,14 +16,19 @@
 // under the License.
 #pragma once
 
+#include <cstdint>
 #include <functional>
 #include <map>
+#include <memory>
 #include <string>
 #include <utility>
 #include <vector>
 
+#include <google/protobuf/message.h>
+
+#include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/ref_counted.h"
-#include "kudu/gutil/stl_util.h"
 #include "kudu/rpc/request_tracker.h"
 #include "kudu/rpc/rpc_header.pb.h"
 #include "kudu/util/countdown_latch.h"
@@ -31,15 +36,12 @@
 #include "kudu/util/malloc.h"
 #include "kudu/util/mem_tracker.h"
 #include "kudu/util/monotime.h"
-#include "kudu/util/thread.h"
-
-namespace google {
-namespace protobuf {
-class Message;
-} // protobuf
-} // google
 
 namespace kudu {
+
+class Status;
+class Thread;
+
 namespace rpc {
 class RpcContext;
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/rpc-bench.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/rpc-bench.cc b/src/kudu/rpc/rpc-bench.cc
index d569ea1..5d0dc1d 100644
--- a/src/kudu/rpc/rpc-bench.cc
+++ b/src/kudu/rpc/rpc-bench.cc
@@ -15,17 +15,30 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <algorithm>
+#include <cstdint>
 #include <functional>
-#include <gflags/gflags.h>
-#include <gtest/gtest.h>
 #include <memory>
+#include <ostream>
 #include <string>
 #include <thread>
+#include <vector>
+
+#include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
+#include <gtest/gtest.h>
 
 #include "kudu/gutil/atomicops.h"
 #include "kudu/rpc/rpc-test-base.h"
+#include "kudu/rpc/rpc_controller.h"
+#include "kudu/rpc/rtest.pb.h"
 #include "kudu/rpc/rtest.proxy.h"
 #include "kudu/util/countdown_latch.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/net/sockaddr.h"
+#include "kudu/util/status.h"
+#include "kudu/util/stopwatch.h"
 #include "kudu/util/test_util.h"
 
 using std::bind;
@@ -59,6 +72,8 @@ DEFINE_bool(enable_encryption, false, "Whether to enable TLS encryption for rpc-
 namespace kudu {
 namespace rpc {
 
+class Messenger;
+
 class RpcBench : public RpcTestBase {
  public:
   RpcBench()

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/rpc-test-base.h
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/rpc-test-base.h b/src/kudu/rpc/rpc-test-base.h
index 38a9bda..25d3845 100644
--- a/src/kudu/rpc/rpc-test-base.h
+++ b/src/kudu/rpc/rpc-test-base.h
@@ -47,6 +47,7 @@
 #include "kudu/util/random.h"
 #include "kudu/util/random_util.h"
 #include "kudu/util/stopwatch.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 #include "kudu/util/trace.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/rpc-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/rpc-test.cc b/src/kudu/rpc/rpc-test.cc
index 313b469..12ef436 100644
--- a/src/kudu/rpc/rpc-test.cc
+++ b/src/kudu/rpc/rpc-test.cc
@@ -17,26 +17,54 @@
 
 #include "kudu/rpc/rpc-test-base.h"
 
+#include <sys/resource.h>
+
+#include <cerrno>
+#include <cstdint>
+#include <cstdlib>
 #include <memory>
+#include <ostream>
+#include <set>
 #include <string>
 #include <unordered_map>
 #include <vector>
 
 #include <boost/bind.hpp>
+#include <gflags/gflags_declare.h>
 #include <gtest/gtest.h>
 
+#include "kudu/gutil/casts.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/map-util.h"
-#include "kudu/gutil/strings/join.h"
+#include "kudu/gutil/ref_counted.h"
+#include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/gutil/walltime.h"
+#include "kudu/rpc/acceptor_pool.h"
 #include "kudu/rpc/constants.h"
+#include "kudu/rpc/messenger.h"
 #include "kudu/rpc/outbound_call.h"
+#include "kudu/rpc/proxy.h"
+#include "kudu/rpc/reactor.h"
+#include "kudu/rpc/rpc_controller.h"
+#include "kudu/rpc/rpc_header.pb.h"
+#include "kudu/rpc/rtest.pb.h"
 #include "kudu/rpc/serialization.h"
 #include "kudu/security/test/test_certs.h"
 #include "kudu/util/countdown_latch.h"
 #include "kudu/util/env.h"
+#include "kudu/util/logging.h"
+#include "kudu/util/metrics.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/net/sockaddr.h"
+#include "kudu/util/net/socket.h"
 #include "kudu/util/random.h"
 #include "kudu/util/scoped_cleanup.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
+#include "kudu/util/thread.h"
 
 METRIC_DECLARE_histogram(handler_latency_kudu_rpc_test_CalculatorService_Sleep);
 METRIC_DECLARE_histogram(rpc_incoming_queue_time);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/rpc.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/rpc.cc b/src/kudu/rpc/rpc.cc
index d4c8b60..84ea892 100644
--- a/src/kudu/rpc/rpc.cc
+++ b/src/kudu/rpc/rpc.cc
@@ -17,9 +17,13 @@
 
 #include "kudu/rpc/rpc.h"
 
-#include <boost/bind.hpp>
+#include <cstdlib>
 #include <string>
 
+#include <boost/bind.hpp> // IWYU pragma: keep
+#include <boost/function.hpp>
+#include <glog/logging.h>
+
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/rpc/messenger.h"
 #include "kudu/rpc/rpc_header.pb.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/rpc.h
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/rpc.h b/src/kudu/rpc/rpc.h
index 7bc484f..3cd57c0 100644
--- a/src/kudu/rpc/rpc.h
+++ b/src/kudu/rpc/rpc.h
@@ -17,13 +17,16 @@
 #ifndef KUDU_RPC_RPC_H
 #define KUDU_RPC_RPC_H
 
+#include <algorithm>
 #include <memory>
 #include <string>
 
 #include "kudu/gutil/callback.h"
+#include "kudu/gutil/macros.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/rpc/rpc_controller.h"
 #include "kudu/util/monotime.h"
-#include "kudu/util/status_callback.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/rpc_context.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/rpc_context.cc b/src/kudu/rpc/rpc_context.cc
index 4483a8f..d4faffb 100644
--- a/src/kudu/rpc/rpc_context.cc
+++ b/src/kudu/rpc/rpc_context.cc
@@ -17,17 +17,20 @@
 
 #include "kudu/rpc/rpc_context.h"
 
+#include <algorithm>
 #include <memory>
 #include <ostream>
-#include <sstream>
+
+#include <glog/logging.h>
+#include <google/protobuf/message.h>
 
 #include "kudu/rpc/inbound_call.h"
+#include "kudu/rpc/remote_method.h"
 #include "kudu/rpc/remote_user.h"
 #include "kudu/rpc/result_tracker.h"
 #include "kudu/rpc/rpc_sidecar.h"
-#include "kudu/rpc/service_if.h"
-#include "kudu/util/hdr_histogram.h"
-#include "kudu/util/metrics.h"
+#include "kudu/util/debug/trace_event.h"
+#include "kudu/util/net/sockaddr.h"
 #include "kudu/util/pb_util.h"
 #include "kudu/util/trace.h"
 
@@ -37,6 +40,9 @@ using std::string;
 using std::unique_ptr;
 
 namespace kudu {
+
+class Slice;
+
 namespace rpc {
 
 RpcContext::RpcContext(InboundCall *call,

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/rpc_context.h
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/rpc_context.h b/src/kudu/rpc/rpc_context.h
index ac895fc..42f096e 100644
--- a/src/kudu/rpc/rpc_context.h
+++ b/src/kudu/rpc/rpc_context.h
@@ -17,11 +17,15 @@
 #ifndef KUDU_RPC_RPC_CONTEXT_H
 #define KUDU_RPC_RPC_CONTEXT_H
 
+#include <memory>
 #include <string>
 
+#include <glog/logging.h>
+
 #include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/rpc/rpc_header.pb.h"
-#include "kudu/rpc/service_if.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/status.h"
 
 namespace google {
@@ -32,6 +36,7 @@ class Message;
 
 namespace kudu {
 
+class Slice;
 class Sockaddr;
 class Trace;
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/rpc_controller.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/rpc_controller.cc b/src/kudu/rpc/rpc_controller.cc
index 9139cd4..5a07006 100644
--- a/src/kudu/rpc/rpc_controller.cc
+++ b/src/kudu/rpc/rpc_controller.cc
@@ -20,16 +20,22 @@
 #include <algorithm>
 #include <memory>
 #include <mutex>
+#include <ostream>
 
 #include <glog/logging.h>
 
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/rpc/messenger.h"
 #include "kudu/rpc/outbound_call.h"
 #include "kudu/rpc/rpc_header.pb.h"
+#include "kudu/rpc/rpc_sidecar.h"
+#include "kudu/rpc/transfer.h"
 
 using std::unique_ptr;
-
 namespace kudu {
+
+class Slice;
+
 namespace rpc {
 
 RpcController::RpcController()

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/rpc_controller.h
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/rpc_controller.h b/src/kudu/rpc/rpc_controller.h
index bd3fbe3..41c062e 100644
--- a/src/kudu/rpc/rpc_controller.h
+++ b/src/kudu/rpc/rpc_controller.h
@@ -17,14 +17,12 @@
 #ifndef KUDU_RPC_RPC_CONTROLLER_H
 #define KUDU_RPC_RPC_CONTROLLER_H
 
+#include <cstdint>
 #include <memory>
 #include <unordered_set>
 #include <vector>
 
-#include <glog/logging.h>
-
 #include "kudu/gutil/macros.h"
-#include "kudu/gutil/stl_util.h"
 #include "kudu/util/locks.h"
 #include "kudu/util/monotime.h"
 #include "kudu/util/status.h"
@@ -37,6 +35,8 @@ class Message;
 
 namespace kudu {
 
+class Slice;
+
 namespace rpc {
 
 class ErrorStatusPB;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/rpc_sidecar.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/rpc_sidecar.cc b/src/kudu/rpc/rpc_sidecar.cc
index 580c6eb..509f57d 100644
--- a/src/kudu/rpc/rpc_sidecar.cc
+++ b/src/kudu/rpc/rpc_sidecar.cc
@@ -17,9 +17,15 @@
 
 #include "kudu/rpc/rpc_sidecar.h"
 
-#include "kudu/util/status.h"
-#include "kudu/rpc/transfer.h"
+#include <algorithm>
+#include <cstdint>
+
+#include <google/protobuf/repeated_field.h>
+
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/rpc/transfer.h"
+#include "kudu/util/faststring.h"
+#include "kudu/util/status.h"
 
 using std::unique_ptr;
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/rpc_sidecar.h
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/rpc_sidecar.h b/src/kudu/rpc/rpc_sidecar.h
index 00d6e4b..859f35f 100644
--- a/src/kudu/rpc/rpc_sidecar.h
+++ b/src/kudu/rpc/rpc_sidecar.h
@@ -17,13 +17,19 @@
 #ifndef KUDU_RPC_RPC_SIDECAR_H
 #define KUDU_RPC_RPC_SIDECAR_H
 
-#include <google/protobuf/repeated_field.h>
+#include <cstdint>
 #include <memory>
 
-#include "kudu/util/faststring.h"
+#include <google/protobuf/repeated_field.h> // IWYU pragma: keep
+
+#include "kudu/gutil/integral_types.h"
 #include "kudu/util/slice.h"
 
 namespace kudu {
+
+class Status;
+class faststring;
+
 namespace rpc {
 
 // An RpcSidecar is a mechanism which allows replies to RPCs to reference blocks of data

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/rpc_stub-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/rpc_stub-test.cc b/src/kudu/rpc/rpc_stub-test.cc
index 3cf9e99..4adc8b1 100644
--- a/src/kudu/rpc/rpc_stub-test.cc
+++ b/src/kudu/rpc/rpc_stub-test.cc
@@ -15,27 +15,55 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <algorithm>
 #include <atomic>
+#include <csignal>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+#include <limits>
 #include <memory>
+#include <ostream>
+#include <string>
 #include <thread>
 #include <vector>
 
+#include <boost/bind.hpp>
+#include <gflags/gflags.h>
 #include <glog/logging.h>
 #include <glog/stl_logging.h>
 #include <gtest/gtest.h>
-#include <boost/bind.hpp>
 
+#include "kudu/gutil/atomicops.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/stl_util.h"
+#include "kudu/rpc/messenger.h"
+#include "kudu/rpc/outbound_call.h"
+#include "kudu/rpc/proxy.h"
+#include "kudu/rpc/rpc-test-base.h"
+#include "kudu/rpc/rpc_controller.h"
+#include "kudu/rpc/rpc_header.pb.h"
 #include "kudu/rpc/rpc_introspection.pb.h"
 #include "kudu/rpc/rpcz_store.h"
+#include "kudu/rpc/rtest.pb.h"
 #include "kudu/rpc/rtest.proxy.h"
-#include "kudu/rpc/rtest.service.h"
-#include "kudu/rpc/rpc-test-base.h"
+#include "kudu/rpc/service_pool.h"
 #include "kudu/util/countdown_latch.h"
+#include "kudu/util/env.h"
+#include "kudu/util/locks.h"
+#include "kudu/util/logging.h"
 #include "kudu/util/metrics.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/net/sockaddr.h"
 #include "kudu/util/pb_util.h"
+#include "kudu/util/random.h"
+#include "kudu/util/status.h"
 #include "kudu/util/subprocess.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
+#include "kudu/util/thread_restrictions.h"
 #include "kudu/util/user.h"
 
 DEFINE_bool(is_panic_test_child, false, "Used by TestRpcPanic");

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/rpcz_store.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/rpcz_store.cc b/src/kudu/rpc/rpcz_store.cc
index 9f56d3d..ffbbf2f 100644
--- a/src/kudu/rpc/rpcz_store.cc
+++ b/src/kudu/rpc/rpcz_store.cc
@@ -17,23 +17,32 @@
 
 #include "kudu/rpc/rpcz_store.h"
 
-#include <algorithm>
+#include <algorithm>  // IWYU pragma: keep
 #include <array>
-#include <glog/stl_logging.h>
+#include <cstdint>
 #include <mutex> // for unique_lock
+#include <ostream>
 #include <string>
 #include <utility>
 #include <vector>
 
+#include <gflags/gflags.h>
+#include <glog/logging.h>
+#include <google/protobuf/message.h>
+
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
+#include "kudu/gutil/strings/stringpiece.h"
 #include "kudu/gutil/walltime.h"
 #include "kudu/rpc/inbound_call.h"
+#include "kudu/rpc/rpc_header.pb.h"
 #include "kudu/rpc/rpc_introspection.pb.h"
 #include "kudu/rpc/service_if.h"
 #include "kudu/util/atomic.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/monotime.h"
 #include "kudu/util/trace.h"
-
+#include "kudu/util/trace_metrics.h"
 
 DEFINE_bool(rpc_dump_all_traces, false,
             "If true, dump all RPC traces at INFO level");

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/sasl_common.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/sasl_common.cc b/src/kudu/rpc/sasl_common.cc
index ffeb1b2..a2da58c 100644
--- a/src/kudu/rpc/sasl_common.cc
+++ b/src/kudu/rpc/sasl_common.cc
@@ -17,15 +17,16 @@
 
 #include "kudu/rpc/sasl_common.h"
 
-#include <string.h>
-
 #include <algorithm>
+#include <cstdio>
+#include <cstring>
 #include <limits>
 #include <mutex>
+#include <ostream>
 #include <string>
 
 #include <boost/algorithm/string/predicate.hpp>
-#include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
 #include <glog/logging.h>
 #include <regex.h>
 #include <sasl/sasl.h>
@@ -33,13 +34,11 @@
 
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/once.h"
-#include "kudu/gutil/stringprintf.h"
 #include "kudu/rpc/constants.h"
-#include "kudu/util/flag_tags.h"
+#include "kudu/security/init.h"
 #include "kudu/util/mutex.h"
 #include "kudu/util/net/sockaddr.h"
 #include "kudu/util/rw_mutex.h"
-#include "kudu/security/init.h"
 
 using std::set;
 using std::string;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/sasl_common.h
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/sasl_common.h b/src/kudu/rpc/sasl_common.h
index 437c9cd..3ec43d2 100644
--- a/src/kudu/rpc/sasl_common.h
+++ b/src/kudu/rpc/sasl_common.h
@@ -18,13 +18,14 @@
 #ifndef KUDU_RPC_SASL_COMMON_H
 #define KUDU_RPC_SASL_COMMON_H
 
-#include <stdint.h> // Required for sasl/sasl.h
-
+#include <cstddef>
+#include <functional>
 #include <string>
 #include <set>
 
 #include <sasl/sasl.h>
 
+#include "kudu/gutil/port.h"
 #include "kudu/util/status.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/sasl_helper.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/sasl_helper.cc b/src/kudu/rpc/sasl_helper.cc
index 53f9d08..765118e 100644
--- a/src/kudu/rpc/sasl_helper.cc
+++ b/src/kudu/rpc/sasl_helper.cc
@@ -17,12 +17,14 @@
 
 #include "kudu/rpc/sasl_helper.h"
 
+#include <cstring>
+#include <ostream>
+#include <set>
 #include <string>
 
 #include <glog/logging.h>
-#include <google/protobuf/message_lite.h>
+#include <sasl/sasl.h>
 
-#include "kudu/gutil/macros.h"
 #include "kudu/gutil/map-util.h"
 #include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/join.h"
@@ -30,7 +32,7 @@
 #include "kudu/rpc/constants.h"
 #include "kudu/rpc/rpc_header.pb.h"
 #include "kudu/rpc/sasl_common.h"
-#include "kudu/rpc/serialization.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
 
 using std::string;
@@ -38,8 +40,6 @@ using std::string;
 namespace kudu {
 namespace rpc {
 
-using google::protobuf::MessageLite;
-
 SaslHelper::SaslHelper(PeerType peer_type)
   : peer_type_(peer_type),
     global_mechs_(SaslListAvailableMechs()),

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/sasl_helper.h
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/sasl_helper.h b/src/kudu/rpc/sasl_helper.h
index 0a3107c..aa0c8bf 100644
--- a/src/kudu/rpc/sasl_helper.h
+++ b/src/kudu/rpc/sasl_helper.h
@@ -18,17 +18,17 @@
 #ifndef KUDU_RPC_SASL_HELPER_H
 #define KUDU_RPC_SASL_HELPER_H
 
+#include <cstdint>
 #include <set>
 #include <string>
 
-#include <sasl/sasl.h>
-
+#include "kudu/gutil/macros.h"
 #include "kudu/rpc/sasl_common.h"
-#include "kudu/util/status.h"
 
 namespace kudu {
 
-class Sockaddr;
+class Slice;
+class Status;
 
 namespace rpc {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/serialization.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/serialization.cc b/src/kudu/rpc/serialization.cc
index bf24948..ac494d9 100644
--- a/src/kudu/rpc/serialization.cc
+++ b/src/kudu/rpc/serialization.cc
@@ -17,11 +17,16 @@
 
 #include "kudu/rpc/serialization.h"
 
+#include <ostream>
+#include <string>
+
+#include <gflags/gflags_declare.h>
 #include <glog/logging.h>
 #include <google/protobuf/message_lite.h>
 #include <google/protobuf/io/coded_stream.h>
 
 #include "kudu/gutil/endian.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/stringprintf.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/rpc/constants.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/serialization.h
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/serialization.h b/src/kudu/rpc/serialization.h
index f61f973..d82e378 100644
--- a/src/kudu/rpc/serialization.h
+++ b/src/kudu/rpc/serialization.h
@@ -18,8 +18,8 @@
 #ifndef KUDU_RPC_SERIALIZATION_H
 #define KUDU_RPC_SERIALIZATION_H
 
-#include <inttypes.h>
-#include <string.h>
+#include <cstdint>
+#include <cstring>
 
 namespace google {
 namespace protobuf {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/server_negotiation.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/server_negotiation.cc b/src/kudu/rpc/server_negotiation.cc
index 6e0ccf8..ca39ced 100644
--- a/src/kudu/rpc/server_negotiation.cc
+++ b/src/kudu/rpc/server_negotiation.cc
@@ -17,20 +17,24 @@
 
 #include "kudu/rpc/server_negotiation.h"
 
-#include <limits>
+#include <cstdint>
+#include <cstdlib>
 #include <memory>
+#include <mutex>
+#include <ostream>
 #include <set>
 #include <string>
 
+#include <boost/optional/optional.hpp>
 #include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
 #include <glog/logging.h>
-#include <google/protobuf/message_lite.h>
 #include <sasl/sasl.h>
 
-#include "kudu/gutil/casts.h"
-#include "kudu/gutil/endian.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/map-util.h"
 #include "kudu/gutil/strings/split.h"
+#include "kudu/gutil/strings/stringpiece.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/rpc/blocking_ops.h"
 #include "kudu/rpc/constants.h"
@@ -41,15 +45,16 @@
 #include "kudu/security/init.h"
 #include "kudu/security/tls_context.h"
 #include "kudu/security/tls_handshake.h"
-#include "kudu/security/tls_socket.h"
+#include "kudu/security/token.pb.h"
 #include "kudu/security/token_verifier.h"
+#include "kudu/util/faststring.h"
 #include "kudu/util/fault_injection.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/logging.h"
 #include "kudu/util/net/net_util.h"
 #include "kudu/util/net/sockaddr.h"
 #include "kudu/util/net/socket.h"
-#include "kudu/util/scoped_cleanup.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/trace.h"
 
 using std::set;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/server_negotiation.h
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/server_negotiation.h b/src/kudu/rpc/server_negotiation.h
index e9e945a..852a6ad 100644
--- a/src/kudu/rpc/server_negotiation.h
+++ b/src/kudu/rpc/server_negotiation.h
@@ -17,13 +17,18 @@
 
 #pragma once
 
+#include <algorithm>
 #include <memory>
 #include <set>
 #include <string>
 #include <vector>
 
+#include <boost/optional/optional.hpp>
+#include <glog/logging.h>
 #include <sasl/sasl.h>
 
+#include "kudu/gutil/port.h"
+#include "kudu/rpc/messenger.h"
 #include "kudu/rpc/negotiation.h"
 #include "kudu/rpc/remote_user.h"
 #include "kudu/rpc/rpc_header.pb.h"
@@ -36,7 +41,8 @@
 
 namespace kudu {
 
-class Slice;
+class Sockaddr;
+class faststring;
 
 namespace security {
 class TlsContext;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/service_if.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/service_if.cc b/src/kudu/rpc/service_if.cc
index 39e9ab5..008c478 100644
--- a/src/kudu/rpc/service_if.cc
+++ b/src/kudu/rpc/service_if.cc
@@ -18,16 +18,27 @@
 #include "kudu/rpc/service_if.h"
 
 #include <memory>
+#include <ostream>
 #include <string>
-#include <google/protobuf/descriptor.pb.h>
+#include <utility>
 
-#include "kudu/gutil/strings/substitute.h"
+#include <gflags/gflags.h>
+#include <glog/logging.h>
 
+#include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/strings/substitute.h"
 #include "kudu/rpc/connection.h"
 #include "kudu/rpc/inbound_call.h"
+#include "kudu/rpc/remote_method.h"
+#include "kudu/rpc/result_tracker.h"
 #include "kudu/rpc/rpc_context.h"
 #include "kudu/rpc/rpc_header.pb.h"
 #include "kudu/util/flag_tags.h"
+#include "kudu/util/net/sockaddr.h"
+#include "kudu/util/net/socket.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
 
 // TODO remove this once we have fully cluster-tested this.
 // Despite being on by default, this is left in in case we discover

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/service_if.h
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/service_if.h b/src/kudu/rpc/service_if.h
index a3722c6..c0b72b4 100644
--- a/src/kudu/rpc/service_if.h
+++ b/src/kudu/rpc/service_if.h
@@ -17,31 +17,24 @@
 #ifndef KUDU_RPC_SERVICE_IF_H
 #define KUDU_RPC_SERVICE_IF_H
 
-#include <unordered_map>
+#include <cstdint>
+#include <functional>
+#include <memory>
 #include <string>
+#include <unordered_map>
+
+#include <google/protobuf/message.h>
 
-#include "kudu/gutil/macros.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/util/metrics.h"
-#include "kudu/util/net/sockaddr.h"
-#include "kudu/rpc/result_tracker.h"
-
-namespace google {
-namespace protobuf {
-class Message;
-}
-}
 
 namespace kudu {
-
-class Histogram;
-
 namespace rpc {
 
 class InboundCall;
 class RemoteMethod;
+class ResultTracker;
 class RpcContext;
-class ServiceIf;
 
 // Generated services define an instance of this class for each
 // method that they implement. The generic server code implemented

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/service_pool.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/service_pool.cc b/src/kudu/rpc/service_pool.cc
index 82a3ad4..b10e6c1 100644
--- a/src/kudu/rpc/service_pool.cc
+++ b/src/kudu/rpc/service_pool.cc
@@ -17,21 +17,31 @@
 
 #include "kudu/rpc/service_pool.h"
 
-#include <glog/logging.h>
+#include <algorithm>
+#include <cstdint>
 #include <memory>
+#include <ostream>
 #include <string>
+#include <type_traits>
 #include <vector>
 
+#include <boost/optional/optional.hpp>
+#include <glog/logging.h>
+
+#include "kudu/gutil/basictypes.h"
 #include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/move.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/rpc/inbound_call.h"
-#include "kudu/rpc/messenger.h"
+#include "kudu/rpc/remote_method.h"
+#include "kudu/rpc/rpc_header.pb.h"
 #include "kudu/rpc/service_if.h"
 #include "kudu/rpc/service_queue.h"
 #include "kudu/util/logging.h"
 #include "kudu/util/metrics.h"
+#include "kudu/util/net/sockaddr.h"
 #include "kudu/util/status.h"
 #include "kudu/util/thread.h"
 #include "kudu/util/trace.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/service_pool.h
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/service_pool.h b/src/kudu/rpc/service_pool.h
index 70611c8..51956b9 100644
--- a/src/kudu/rpc/service_pool.h
+++ b/src/kudu/rpc/service_pool.h
@@ -18,16 +18,17 @@
 #ifndef KUDU_SERVICE_POOL_H
 #define KUDU_SERVICE_POOL_H
 
+#include <cstddef>
 #include <string>
 #include <vector>
 
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/rpc/rpc_service.h"
 #include "kudu/rpc/service_queue.h"
 #include "kudu/util/mutex.h"
-#include "kudu/util/thread.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
@@ -35,13 +36,16 @@ namespace kudu {
 class Counter;
 class Histogram;
 class MetricEntity;
-class Socket;
+class Thread;
 
 namespace rpc {
 
-class Messenger;
+class InboundCall;
+class RemoteMethod;
 class ServiceIf;
 
+struct RpcMethodInfo;
+
 // A pool of threads that handle new incoming RPC calls.
 // Also includes a queue that calls get pushed onto for handling by the pool.
 class ServicePool : public RpcService {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/service_queue-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/service_queue-test.cc b/src/kudu/rpc/service_queue-test.cc
index 0bcbd12..f1450fd 100644
--- a/src/kudu/rpc/service_queue-test.cc
+++ b/src/kudu/rpc/service_queue-test.cc
@@ -15,17 +15,24 @@
 // specific language governing permissions and limitations
 // under the License.
 
-
 #include <atomic>
-#include <gflags/gflags.h>
-#include <glog/logging.h>
-#include <gtest/gtest.h>
+#include <cstdint>
 #include <memory>
+#include <ostream>
 #include <string>
 #include <thread>
 #include <vector>
 
+#include <boost/optional/optional.hpp>
+#include <gflags/gflags.h>
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
+#include "kudu/gutil/atomicops.h"
+#include "kudu/gutil/port.h"
+#include "kudu/rpc/inbound_call.h"
 #include "kudu/rpc/service_queue.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/stopwatch.h"
 #include "kudu/util/test_util.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/service_queue.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/service_queue.cc b/src/kudu/rpc/service_queue.cc
index 9b938f6..29c0516 100644
--- a/src/kudu/rpc/service_queue.cc
+++ b/src/kudu/rpc/service_queue.cc
@@ -18,8 +18,11 @@
 #include "kudu/rpc/service_queue.h"
 
 #include <mutex>
+#include <ostream>
 
-#include "kudu/util/logging.h"
+#include <boost/optional/optional.hpp>
+
+#include "kudu/gutil/port.h"
 
 namespace kudu {
 namespace rpc {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/service_queue.h
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/service_queue.h b/src/kudu/rpc/service_queue.h
index d68576f..2751a30 100644
--- a/src/kudu/rpc/service_queue.h
+++ b/src/kudu/rpc/service_queue.h
@@ -17,16 +17,26 @@
 #ifndef KUDU_UTIL_SERVICE_QUEUE_H
 #define KUDU_UTIL_SERVICE_QUEUE_H
 
-#include <boost/optional.hpp>
 #include <memory>
 #include <string>
 #include <set>
 #include <vector>
 
+#include <glog/logging.h>
+
+#include "kudu/gutil/dynamic_annotations.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/rpc/inbound_call.h"
 #include "kudu/util/condition_variable.h"
+#include "kudu/util/locks.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/mutex.h"
 
+namespace boost {
+template <class T>
+class optional;
+}
+
 namespace kudu {
 namespace rpc {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/transfer.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/transfer.cc b/src/kudu/rpc/transfer.cc
index 6446d5e..84d8bc9 100644
--- a/src/kudu/rpc/transfer.cc
+++ b/src/kudu/rpc/transfer.cc
@@ -17,21 +17,22 @@
 
 #include "kudu/rpc/transfer.h"
 
-#include <stdint.h>
+#include <sys/uio.h>
 
+#include <cstdint>
 #include <iostream>
-#include <sstream>
 
+#include <gflags/gflags.h>
 #include <glog/logging.h>
 
 #include "kudu/gutil/endian.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/rpc/constants.h"
-#include "kudu/rpc/messenger.h"
+#include "kudu/rpc/outbound_call.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/logging.h"
-#include "kudu/util/memory/memory.h"
-#include "kudu/util/net/sockaddr.h"
+#include "kudu/util/memory/overwrite.h"
 #include "kudu/util/net/socket.h"
 
 DEFINE_int32(rpc_max_message_size, (50 * 1024 * 1024),

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/transfer.h
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/transfer.h b/src/kudu/rpc/transfer.h
index d8e3a59..0bbbc85 100644
--- a/src/kudu/rpc/transfer.h
+++ b/src/kudu/rpc/transfer.h
@@ -19,32 +19,29 @@
 #define KUDU_RPC_TRANSFER_H
 
 #include <array>
-#include <boost/intrusive/list.hpp>
-#include <gflags/gflags.h>
-#include <set>
-#include <stdint.h>
+#include <cstddef>
+#include <cstdint>
+#include <memory>
 #include <string>
-#include <vector>
 
+#include <boost/intrusive/list_hook.hpp>
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
+
+#include "kudu/gutil/macros.h"
 #include "kudu/rpc/constants.h"
-#include "kudu/util/net/sockaddr.h"
+#include "kudu/util/faststring.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
 
 DECLARE_int32(rpc_max_message_size);
 
-namespace google {
-namespace protobuf {
-class Message;
-} // namespace protobuf
-} // namespace google
-
 namespace kudu {
 
 class Socket;
 
 namespace rpc {
 
-class Messenger;
 class OutboundCall;
 struct TransferCallbacks;
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/user_credentials.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/user_credentials.cc b/src/kudu/rpc/user_credentials.cc
index 0debd01..059b87a 100644
--- a/src/kudu/rpc/user_credentials.cc
+++ b/src/kudu/rpc/user_credentials.cc
@@ -17,9 +17,11 @@
 
 #include "kudu/rpc/user_credentials.h"
 
+#include <algorithm>
+#include <cstddef>
 #include <string>
 
-#include <boost/functional/hash.hpp>
+#include <boost/functional/hash/hash.hpp>
 
 #include "kudu/gutil/strings/substitute.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/user_credentials.h
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/user_credentials.h b/src/kudu/rpc/user_credentials.h
index 8cb68cc..ae507a2 100644
--- a/src/kudu/rpc/user_credentials.h
+++ b/src/kudu/rpc/user_credentials.h
@@ -16,6 +16,7 @@
 // under the License.
 #pragma once
 
+#include <cstddef>
 #include <string>
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/security/ca/cert_management-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/security/ca/cert_management-test.cc b/src/kudu/security/ca/cert_management-test.cc
index 6e4662d..97f423c 100644
--- a/src/kudu/security/ca/cert_management-test.cc
+++ b/src/kudu/security/ca/cert_management-test.cc
@@ -24,6 +24,7 @@
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/gutil/strings/util.h"
 #include "kudu/security/cert.h"
+#include "kudu/security/crypto.h"
 #include "kudu/security/openssl_util.h"
 #include "kudu/security/security-test-util.h"
 #include "kudu/security/test/test_certs.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/security/ca/cert_management.cc
----------------------------------------------------------------------
diff --git a/src/kudu/security/ca/cert_management.cc b/src/kudu/security/ca/cert_management.cc
index 09e59cd..3647e8c 100644
--- a/src/kudu/security/ca/cert_management.cc
+++ b/src/kudu/security/ca/cert_management.cc
@@ -17,14 +17,11 @@
 
 #include "kudu/security/ca/cert_management.h"
 
+#include <algorithm>
 #include <cstdio>
-#include <cstdlib>
-#include <functional>
-#include <iostream>
 #include <memory>
-#include <sstream>
+#include <mutex>
 #include <string>
-#include <type_traits>
 
 #include <glog/logging.h>
 #include <openssl/conf.h>
@@ -37,14 +34,14 @@
 
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/security/cert.h"
-#include "kudu/security/init.h"
+#include "kudu/security/crypto.h"
 #include "kudu/security/openssl_util.h"
+#include "kudu/util/net/socket.h"
 #include "kudu/util/scoped_cleanup.h"
 #include "kudu/util/status.h"
 
 using std::lock_guard;
 using std::move;
-using std::ostringstream;
 using std::string;
 using strings::Substitute;
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/security/ca/cert_management.h
----------------------------------------------------------------------
diff --git a/src/kudu/security/ca/cert_management.h b/src/kudu/security/ca/cert_management.h
index 919caff..9e43725 100644
--- a/src/kudu/security/ca/cert_management.h
+++ b/src/kudu/security/ca/cert_management.h
@@ -17,18 +17,16 @@
 
 #pragma once
 
-#include <functional>
-#include <map>
+#include <cstdint>
 #include <memory>
-#include <mutex>
 #include <string>
-#include <vector>
 
-#include <boost/optional.hpp>
+#include <boost/optional/optional.hpp>
+#include <glog/logging.h>
 
 #include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/stringpiece.h"
-#include "kudu/security/crypto.h"
 #include "kudu/security/openssl_util.h"
 #include "kudu/util/locks.h"
 #include "kudu/util/monotime.h"
@@ -41,13 +39,16 @@ typedef struct env_md_st EVP_MD;
 typedef struct rsa_st RSA;
 typedef struct x509_st X509;
 typedef struct X509_req_st X509_REQ;
-struct stack_st_X509_EXTENSION; // STACK_OF(X509_EXTENSION)
+
+// STACK_OF(X509_EXTENSION)
+struct stack_st_X509_EXTENSION; // IWYU pragma: keep
 
 namespace kudu {
 namespace security {
 
 class Cert;
 class CertSignRequest;
+class PrivateKey;
 
 namespace ca {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/security/cert.cc
----------------------------------------------------------------------
diff --git a/src/kudu/security/cert.cc b/src/kudu/security/cert.cc
index 61e765c..6fef349 100644
--- a/src/kudu/security/cert.cc
+++ b/src/kudu/security/cert.cc
@@ -17,20 +17,21 @@
 
 #include "kudu/security/cert.h"
 
+#include <memory>
 #include <mutex>
+#include <ostream>
 #include <string>
 
+#include <boost/optional/optional.hpp>
+#include <glog/logging.h>
 #include <openssl/evp.h>
-#include <openssl/pem.h>
 #include <openssl/x509.h>
 #include <openssl/x509v3.h>
 
-#include <boost/optional.hpp>
-
+#include "kudu/gutil/macros.h"
 #include "kudu/security/crypto.h"
 #include "kudu/security/openssl_util.h"
 #include "kudu/security/openssl_util_bio.h"
-#include "kudu/util/scoped_cleanup.h"
 #include "kudu/util/status.h"
 
 using std::string;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/security/cert.h
----------------------------------------------------------------------
diff --git a/src/kudu/security/cert.h b/src/kudu/security/cert.h
index 4d93d1b..a64b8b8 100644
--- a/src/kudu/security/cert.h
+++ b/src/kudu/security/cert.h
@@ -17,13 +17,22 @@
 
 #pragma once
 
+#include <memory>
 #include <string>
 #include <vector>
 
-#include <boost/optional/optional_fwd.hpp>
+#include <openssl/asn1.h>
 
+#include "kudu/gutil/port.h"
 #include "kudu/security/openssl_util.h"
 
+typedef struct X509_name_st X509_NAME;
+
+namespace boost {
+template <class T>
+class optional;
+}
+
 namespace kudu {
 
 class Status;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/security/crypto.cc
----------------------------------------------------------------------
diff --git a/src/kudu/security/crypto.cc b/src/kudu/security/crypto.cc
index e7d5db6..526dda1 100644
--- a/src/kudu/security/crypto.cc
+++ b/src/kudu/security/crypto.cc
@@ -17,15 +17,21 @@
 
 #include "kudu/security/crypto.h"
 
-#include <cstdio>
-#include <cstdlib>
+#include <memory>
+#include <ostream>
 #include <string>
 
 #include <glog/logging.h>
 #include <openssl/bio.h>
+#include <openssl/bn.h>
+#include <openssl/err.h>
 #include <openssl/evp.h>
+#include <openssl/opensslv.h>
+#include <openssl/ossl_typ.h>
 #include <openssl/pem.h>
 #include <openssl/rand.h>
+#include <openssl/rsa.h>
+#include <openssl/x509.h>
 
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/security/openssl_util.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/security/crypto.h
----------------------------------------------------------------------
diff --git a/src/kudu/security/crypto.h b/src/kudu/security/crypto.h
index fe3ecb4..145c405 100644
--- a/src/kudu/security/crypto.h
+++ b/src/kudu/security/crypto.h
@@ -17,8 +17,13 @@
 
 #pragma once
 
+#include <cstddef>
 #include <string>
 
+#include <openssl/bio.h>
+#include <openssl/rsa.h>
+
+#include "kudu/gutil/port.h"
 #include "kudu/security/openssl_util.h"
 
 // Forward declarations for the OpenSSL typedefs.

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/security/init.cc
----------------------------------------------------------------------
diff --git a/src/kudu/security/init.cc b/src/kudu/security/init.cc
index 721c16f..deffa2f 100644
--- a/src/kudu/security/init.cc
+++ b/src/kudu/security/init.cc
@@ -17,27 +17,37 @@
 
 #include "kudu/security/init.h"
 
-#include <ctype.h>
-#include <krb5/krb5.h>
-
 #include <algorithm>
+#include <cctype>
+#include <cstdint>
+#include <cstdlib>
+#include <cstring>
+#include <ctime>
 #include <functional>
 #include <memory>
 #include <mutex>
+#include <ostream>
 #include <random>
 #include <string>
+#include <type_traits>
 
-#include <boost/optional.hpp>
+#include <boost/optional/optional.hpp>
+#include <gflags/gflags.h>
+#include <glog/logging.h>
+#include <krb5/krb5.h>
 
+#include "kudu/gutil/macros.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/gutil/strings/util.h"
 #include "kudu/util/env.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/flag_validators.h"
-#include "kudu/util/flags.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/net/net_util.h"
 #include "kudu/util/rw_mutex.h"
 #include "kudu/util/scoped_cleanup.h"
+#include "kudu/util/status.h"
 #include "kudu/util/thread.h"
 
 DEFINE_string(keytab_file, "",

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/security/init.h
----------------------------------------------------------------------
diff --git a/src/kudu/security/init.h b/src/kudu/security/init.h
index 61c9577..e2b7376 100644
--- a/src/kudu/security/init.h
+++ b/src/kudu/security/init.h
@@ -18,7 +18,10 @@
 
 #include <string>
 
-#include <boost/optional/optional_fwd.hpp>
+namespace boost {
+template <class T>
+class optional;
+}
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/security/kerberos_util.cc
----------------------------------------------------------------------
diff --git a/src/kudu/security/kerberos_util.cc b/src/kudu/security/kerberos_util.cc
index 09f1b82..5e6d9b8 100644
--- a/src/kudu/security/kerberos_util.cc
+++ b/src/kudu/security/kerberos_util.cc
@@ -17,6 +17,7 @@
 
 #include "kudu/security/kerberos_util.h"
 #include "kudu/gutil/strings/split.h"
+#include "kudu/gutil/strings/stringpiece.h"
 
 #include <array>
 #include <utility>

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/security/krb5_realm_override.cc
----------------------------------------------------------------------
diff --git a/src/kudu/security/krb5_realm_override.cc b/src/kudu/security/krb5_realm_override.cc
index 3f875f1..05e8af8 100644
--- a/src/kudu/security/krb5_realm_override.cc
+++ b/src/kudu/security/krb5_realm_override.cc
@@ -34,9 +34,10 @@
 // referenced.
 
 #include <dlfcn.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
+
+#include <cerrno>
+#include <cstdlib>
+#include <cstring>
 
 #include <krb5/krb5.h>
 #include <glog/logging.h>

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/security/openssl_util.cc
----------------------------------------------------------------------
diff --git a/src/kudu/security/openssl_util.cc b/src/kudu/security/openssl_util.cc
index 861fff4..98ee245 100644
--- a/src/kudu/security/openssl_util.cc
+++ b/src/kudu/security/openssl_util.cc
@@ -17,27 +17,27 @@
 
 #include "kudu/security/openssl_util.h"
 
+#include <cerrno>
+#include <cstdint>
 #include <cstdio>
-#include <cstdlib>
 #include <mutex>
-#include <sstream>
 #include <string>
 #include <vector>
 
 #include <glog/logging.h>
+#include <openssl/crypto.h>
 #include <openssl/err.h>
 #include <openssl/rand.h>
-#include <openssl/ssl.h>
 
 #include "kudu/gutil/strings/split.h"
 #include "kudu/gutil/strings/strip.h"
+#include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/debug/leakcheck_disabler.h"
 #include "kudu/util/errno.h"
 #include "kudu/util/mutex.h"
 #include "kudu/util/scoped_cleanup.h"
 #include "kudu/util/status.h"
 #include "kudu/util/subprocess.h"
-#include "kudu/util/thread.h"
 
 using std::ostringstream;
 using std::string;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/security/openssl_util.h
----------------------------------------------------------------------
diff --git a/src/kudu/security/openssl_util.h b/src/kudu/security/openssl_util.h
index 04fb7cc..00c4ebf 100644
--- a/src/kudu/security/openssl_util.h
+++ b/src/kudu/security/openssl_util.h
@@ -19,14 +19,16 @@
 
 #include <functional>
 #include <memory>
+#include <ostream>
 #include <string>
 
+#include <glog/logging.h>
 #include <openssl/err.h>
 #include <openssl/pem.h>
 #include <openssl/ssl.h>
 #include <openssl/x509.h>
 
-#include "kudu/gutil/strings/substitute.h"
+#include "kudu/gutil/port.h"
 #include "kudu/util/status.h"
 
 // Forward declarations for the OpenSSL typedefs.

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/security/security-test-util.cc
----------------------------------------------------------------------
diff --git a/src/kudu/security/security-test-util.cc b/src/kudu/security/security-test-util.cc
index 88ef2f8..eca7509 100644
--- a/src/kudu/security/security-test-util.cc
+++ b/src/kudu/security/security-test-util.cc
@@ -17,14 +17,16 @@
 
 #include "kudu/security/security-test-util.h"
 
-#include <glog/logging.h>
+#include <cstdint>
+#include <string>
+
+#include <boost/optional/optional.hpp>
 
 #include "kudu/security/ca/cert_management.h"
 #include "kudu/security/cert.h"
 #include "kudu/security/crypto.h"
 #include "kudu/security/test/test_certs.h"
 #include "kudu/security/tls_context.h"
-#include "kudu/util/path_util.h"
 #include "kudu/util/test_util.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/security/security-test-util.h
----------------------------------------------------------------------
diff --git a/src/kudu/security/security-test-util.h b/src/kudu/security/security-test-util.h
index 1af3349..5862bec 100644
--- a/src/kudu/security/security-test-util.h
+++ b/src/kudu/security/security-test-util.h
@@ -18,9 +18,7 @@
 #pragma once
 
 #include <ostream>
-#include <string>
 
-#include "kudu/util/env.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
@@ -28,7 +26,6 @@ namespace security {
 
 class Cert;
 class PrivateKey;
-class PublicKey;
 class TlsContext;
 
 Status GenerateSelfSignedCAForTests(PrivateKey* ca_key, Cert* ca_cert);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/security/simple_acl.cc
----------------------------------------------------------------------
diff --git a/src/kudu/security/simple_acl.cc b/src/kudu/security/simple_acl.cc
index f7d0b14..3b6aa37 100644
--- a/src/kudu/security/simple_acl.cc
+++ b/src/kudu/security/simple_acl.cc
@@ -17,8 +17,9 @@
 
 #include "kudu/security/simple_acl.h"
 
-#include <ctype.h>
-
+#include <algorithm>
+#include <cctype>
+#include <cstring>
 #include <vector>
 
 #include "kudu/gutil/map-util.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/security/simple_acl.h
----------------------------------------------------------------------
diff --git a/src/kudu/security/simple_acl.h b/src/kudu/security/simple_acl.h
index 96ca598..e27a8ca 100644
--- a/src/kudu/security/simple_acl.h
+++ b/src/kudu/security/simple_acl.h
@@ -16,8 +16,6 @@
 // under the License.
 #pragma once
 
-#include "kudu/gutil/macros.h"
-
 #include <set>
 #include <string>
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/security/test/mini_kdc-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/security/test/mini_kdc-test.cc b/src/kudu/security/test/mini_kdc-test.cc
index 01ed84d..08f493c 100644
--- a/src/kudu/security/test/mini_kdc-test.cc
+++ b/src/kudu/security/test/mini_kdc-test.cc
@@ -17,13 +17,14 @@
 
 #include <string>
 
-#include <boost/optional.hpp>
-#include <gflags/gflags.h>
+#include <boost/optional/optional.hpp>
+#include <gflags/gflags_declare.h>
 #include <gtest/gtest.h>
 
 #include "kudu/security/init.h"
 #include "kudu/security/test/mini_kdc.h"
-#include "kudu/util/env.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/security/test/mini_kdc.cc
----------------------------------------------------------------------
diff --git a/src/kudu/security/test/mini_kdc.cc b/src/kudu/security/test/mini_kdc.cc
index 1b082c3..72eed29 100644
--- a/src/kudu/security/test/mini_kdc.cc
+++ b/src/kudu/security/test/mini_kdc.cc
@@ -18,7 +18,7 @@
 #include "kudu/security/test/mini_kdc.h"
 
 #include <csignal>
-#include <stdlib.h>
+#include <cstdlib>
 
 #include <map>
 #include <memory>
@@ -32,6 +32,7 @@
 #include "kudu/util/env.h"
 #include "kudu/util/monotime.h"
 #include "kudu/util/path_util.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/stopwatch.h"
 #include "kudu/util/subprocess.h"
 #include "kudu/util/test_util.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/security/test/mini_kdc.h
----------------------------------------------------------------------
diff --git a/src/kudu/security/test/mini_kdc.h b/src/kudu/security/test/mini_kdc.h
index 760c74b..c0d3151 100644
--- a/src/kudu/security/test/mini_kdc.h
+++ b/src/kudu/security/test/mini_kdc.h
@@ -17,18 +17,20 @@
 
 #pragma once
 
+#include <cstdint>
 #include <map>
 #include <memory>
+#include <ostream>
 #include <string>
 #include <vector>
 
 #include <glog/logging.h>
 
+#include "kudu/gutil/port.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
 
-class Env;
 class Subprocess;
 
 struct MiniKdcOptions {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/security/tls_context.cc
----------------------------------------------------------------------
diff --git a/src/kudu/security/tls_context.cc b/src/kudu/security/tls_context.cc
index 69ef67c..3ab0131 100644
--- a/src/kudu/security/tls_context.cc
+++ b/src/kudu/security/tls_context.cc
@@ -17,17 +17,22 @@
 
 #include "kudu/security/tls_context.h"
 
+#include <algorithm>
 #include <mutex>
+#include <ostream>
 #include <string>
 #include <vector>
 
 #include <boost/algorithm/string/predicate.hpp>
 #include <gflags/gflags.h>
+#include <glog/logging.h>
 #include <openssl/err.h>
 #include <openssl/ssl.h>
 #include <openssl/x509.h>
 #include <openssl/x509v3.h>
 
+#include "kudu/gutil/basictypes.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/security/ca/cert_management.h"
 #include "kudu/security/cert.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/security/tls_context.h
----------------------------------------------------------------------
diff --git a/src/kudu/security/tls_context.h b/src/kudu/security/tls_context.h
index 1785471..33ca403 100644
--- a/src/kudu/security/tls_context.h
+++ b/src/kudu/security/tls_context.h
@@ -17,15 +17,16 @@
 
 #pragma once
 
-#include <functional>
+#include <cstdint>
+#include <memory>
 #include <string>
 #include <vector>
 
-#include <boost/optional.hpp>
+#include <boost/optional/optional.hpp>
 
-#include "kudu/security/cert.h"
+#include "kudu/gutil/port.h"
+#include "kudu/security/openssl_util.h"
 #include "kudu/security/tls_handshake.h"
-#include "kudu/util/atomic.h"
 #include "kudu/util/locks.h"
 #include "kudu/util/rw_mutex.h"
 #include "kudu/util/status.h"
@@ -34,6 +35,7 @@ namespace kudu {
 namespace security {
 
 class Cert;
+class CertSignRequest;
 class PrivateKey;
 
 // TlsContext wraps data required by the OpenSSL library for creating and

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/security/tls_handshake-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/security/tls_handshake-test.cc b/src/kudu/security/tls_handshake-test.cc
index 60b1b91..9dd038f 100644
--- a/src/kudu/security/tls_handshake-test.cc
+++ b/src/kudu/security/tls_handshake-test.cc
@@ -33,6 +33,7 @@
 #include "kudu/security/security-test-util.h"
 #include "kudu/security/tls_context.h"
 #include "kudu/util/scoped_cleanup.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/security/tls_handshake.cc
----------------------------------------------------------------------
diff --git a/src/kudu/security/tls_handshake.cc b/src/kudu/security/tls_handshake.cc
index b5f4651..57f9c7c 100644
--- a/src/kudu/security/tls_handshake.cc
+++ b/src/kudu/security/tls_handshake.cc
@@ -20,7 +20,6 @@
 #include <memory>
 #include <string>
 
-#include <openssl/err.h>
 #include <openssl/ssl.h>
 #include <openssl/x509.h>
 #include <openssl/x509v3.h>
@@ -28,7 +27,7 @@
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/security/cert.h"
 #include "kudu/security/tls_socket.h"
-#include "kudu/util/net/sockaddr.h"
+#include "kudu/util/net/socket.h"
 #include "kudu/util/status.h"
 #include "kudu/util/trace.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/security/tls_handshake.h
----------------------------------------------------------------------
diff --git a/src/kudu/security/tls_handshake.h b/src/kudu/security/tls_handshake.h
index cd3cb7c..f71771a 100644
--- a/src/kudu/security/tls_handshake.h
+++ b/src/kudu/security/tls_handshake.h
@@ -17,14 +17,15 @@
 
 #pragma once
 
+#include <algorithm>
 #include <memory>
 #include <string>
 
 #include <glog/logging.h>
 
+#include "kudu/gutil/port.h"
 #include "kudu/security/cert.h"
 #include "kudu/security/openssl_util.h"
-#include "kudu/util/net/socket.h"
 #include "kudu/util/status.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/security/tls_socket.cc
----------------------------------------------------------------------
diff --git a/src/kudu/security/tls_socket.cc b/src/kudu/security/tls_socket.cc
index 7aeca31..58addfc 100644
--- a/src/kudu/security/tls_socket.cc
+++ b/src/kudu/security/tls_socket.cc
@@ -17,12 +17,15 @@
 
 #include "kudu/security/tls_socket.h"
 
+#include <sys/uio.h>
+
+#include <algorithm>
+#include <cerrno>
+
+#include <glog/logging.h>
 #include <openssl/err.h>
-#include <openssl/ssl.h>
-#include <openssl/x509.h>
 
 #include "kudu/gutil/basictypes.h"
-#include "kudu/security/cert.h"
 #include "kudu/security/openssl_util.h"
 #include "kudu/util/errno.h"
 


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

Posted by al...@apache.org.
[iwyu] first pass

Updated C++ source files in accordance with some of the recommendations
from include-what-you-use (IWYU) tool:
  * remove unused header files
  * add missing header files
  * use forward declarations when possible

As a result, time of compilation reduced ~10% if building with GNU make
in parallel with 48 jobs (make -j48) at 48-core machine with dual
Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz processors and HDD drives.

prior:
  real    1m45.416s
  user    46m30.278s
  sys     3m3.302s

after:
  real    1m36.870s
  user    42m12.465s
  sys     2m53.355s

The next step is automating the checks, so IWYU check would run
automatically (like the LINT build).

Note:
  As of now, not all recommendations from the tool are applied yet,
  especially for the test-related code.  That's because some
  recommendations produced by IWYU are incorrect.  Basically, every
  suggestion required manual inspection and judgment, at least it
  was necessary to verify the result code at least compiles.  As a
  result, the process of applying those recommendations is tedious
  and time consuming.  Hopefully, IWYU will get better in the future.
  Meanwhile, we can address the rest of the recommendations file-by-file
  or so in the short run.

References:
  [1] IWYU pragmas:
    https://github.com/include-what-you-use/include-what-you-use/blob/master/docs/IWYUPragmas.md
  [2] IWYU mappings:
    https://github.com/include-what-you-use/include-what-you-use/blob/master/docs/IWYUMappings.md

Change-Id: I6923091be36a1c03fac34dd73e6b17e17ac9ceaa
Reviewed-on: http://gerrit.cloudera.org:8080/4738
Reviewed-by: Alexey Serbin <as...@cloudera.com>
Tested-by: Kudu Jenkins


Project: http://git-wip-us.apache.org/repos/asf/kudu/repo
Commit: http://git-wip-us.apache.org/repos/asf/kudu/commit/0f6dcf83
Tree: http://git-wip-us.apache.org/repos/asf/kudu/tree/0f6dcf83
Diff: http://git-wip-us.apache.org/repos/asf/kudu/diff/0f6dcf83

Branch: refs/heads/master
Commit: 0f6dcf8388e626aeedff1836e1234971107b3a8d
Parents: f9ed787
Author: Alexey Serbin <as...@cloudera.com>
Authored: Fri Oct 14 22:42:58 2016 -0700
Committer: Alexey Serbin <as...@cloudera.com>
Committed: Mon Aug 21 20:53:32 2017 +0000

----------------------------------------------------------------------
 src/kudu/benchmarks/rle.cc                      |  7 +-
 .../benchmarks/tpch/line_item_tsv_importer.h    |  1 -
 .../benchmarks/tpch/rpc_line_item_dao-test.cc   | 14 +++-
 src/kudu/benchmarks/tpch/rpc_line_item_dao.cc   | 21 +++--
 src/kudu/benchmarks/tpch/rpc_line_item_dao.h    | 19 ++++-
 src/kudu/benchmarks/tpch/tpch1.cc               | 20 +++--
 src/kudu/benchmarks/tpch/tpch_real_world.cc     | 22 +++++-
 src/kudu/benchmarks/wal_hiccup.cc               | 15 +++-
 src/kudu/cfile/binary_dict_block.cc             | 23 ++++--
 src/kudu/cfile/binary_dict_block.h              | 32 ++++++--
 src/kudu/cfile/binary_plain_block.cc            | 11 ++-
 src/kudu/cfile/binary_plain_block.h             | 16 ++++
 src/kudu/cfile/binary_prefix_block.cc           | 13 +++-
 src/kudu/cfile/binary_prefix_block.h            | 10 +++
 src/kudu/cfile/block_cache-test.cc              |  2 +
 src/kudu/cfile/block_cache.cc                   |  7 +-
 src/kudu/cfile/block_cache.h                    | 10 ++-
 src/kudu/cfile/block_compression.cc             |  9 ++-
 src/kudu/cfile/block_compression.h              |  7 +-
 src/kudu/cfile/bloomfile-test-base.h            |  1 +
 src/kudu/cfile/bloomfile-test.cc                | 20 +++++
 src/kudu/cfile/bloomfile.cc                     | 25 +++++-
 src/kudu/cfile/bloomfile.h                      | 16 +++-
 src/kudu/cfile/bshuf_block.h                    | 17 +++-
 src/kudu/cfile/cfile-test.cc                    | 46 ++++++++++-
 src/kudu/cfile/cfile_reader.cc                  | 29 +++++--
 src/kudu/cfile/cfile_reader.h                   | 37 +++++----
 src/kudu/cfile/cfile_util.cc                    | 11 ++-
 src/kudu/cfile/cfile_util.h                     | 11 ++-
 src/kudu/cfile/cfile_writer.cc                  | 15 +++-
 src/kudu/cfile/cfile_writer.h                   | 34 +++++---
 src/kudu/cfile/encoding-test.cc                 | 32 ++++++--
 src/kudu/cfile/index-test.cc                    | 14 +++-
 src/kudu/cfile/index_block.cc                   |  8 +-
 src/kudu/cfile/index_block.h                    | 11 +--
 src/kudu/cfile/index_btree.cc                   |  9 ++-
 src/kudu/cfile/index_btree.h                    |  7 +-
 src/kudu/cfile/mt-bloomfile-test.cc             |  6 +-
 src/kudu/cfile/type_encodings.cc                |  9 ++-
 src/kudu/cfile/type_encodings.h                 |  3 +-
 src/kudu/client/batcher.cc                      | 31 ++++++--
 src/kudu/client/batcher.h                       | 13 ++--
 src/kudu/client/client-internal.cc              | 16 +++-
 src/kudu/client/client-internal.h               | 24 +++++-
 src/kudu/client/client-test-util.cc             |  7 +-
 src/kudu/client/client-test-util.h              |  5 +-
 src/kudu/client/client-test.cc                  | 50 ++++++++++--
 src/kudu/client/client-unittest.cc              |  7 +-
 src/kudu/client/client.cc                       | 39 ++++++++--
 src/kudu/client/client.h                        | 20 +++--
 src/kudu/client/client_builder-internal.h       |  2 +
 src/kudu/client/error-internal.cc               |  7 +-
 src/kudu/client/error-internal.h                |  4 +
 src/kudu/client/error_collector.cc              |  2 +
 src/kudu/client/error_collector.h               |  6 +-
 src/kudu/client/master_rpc.cc                   | 11 ++-
 src/kudu/client/master_rpc.h                    | 13 ++--
 src/kudu/client/meta_cache.cc                   | 24 ++++--
 src/kudu/client/meta_cache.h                    | 13 ++--
 src/kudu/client/partitioner-internal.cc         |  5 +-
 src/kudu/client/partitioner-internal.h          | 13 +++-
 src/kudu/client/predicate-test.cc               | 15 +++-
 src/kudu/client/replica-internal.cc             |  4 +-
 src/kudu/client/replica-internal.h              |  6 +-
 src/kudu/client/resource_metrics.cc             |  3 +-
 src/kudu/client/resource_metrics.h              |  5 +-
 src/kudu/client/samples/sample.cc               |  2 +
 src/kudu/client/scan_batch.cc                   | 12 ++-
 src/kudu/client/scan_batch.h                    |  7 ++
 src/kudu/client/scan_configuration.cc           |  9 ++-
 src/kudu/client/scan_configuration.h            | 18 ++++-
 src/kudu/client/scan_predicate.cc               | 13 +++-
 src/kudu/client/scan_predicate.h                |  2 -
 src/kudu/client/scan_token-internal.cc          | 28 ++++++-
 src/kudu/client/scan_token-internal.h           |  1 +
 src/kudu/client/scan_token-test.cc              | 18 +++++
 src/kudu/client/scanner-internal.cc             | 23 +++++-
 src/kudu/client/scanner-internal.h              | 31 +++++++-
 src/kudu/client/schema-internal.h               |  1 +
 src/kudu/client/schema.cc                       | 17 +++-
 src/kudu/client/schema.h                        | 20 +++--
 src/kudu/client/session-internal.cc             | 10 ++-
 src/kudu/client/session-internal.h              | 16 +++-
 src/kudu/client/shared_ptr.h                    |  4 +-
 src/kudu/client/table-internal.cc               |  1 +
 src/kudu/client/table-internal.h                | 11 ++-
 src/kudu/client/table_alterer-internal.cc       |  9 ++-
 src/kudu/client/table_alterer-internal.h        | 13 ++--
 src/kudu/client/table_creator-internal.cc       |  3 -
 src/kudu/client/table_creator-internal.h        | 10 ++-
 src/kudu/client/tablet-internal.h               |  2 -
 src/kudu/client/tablet_server-internal.cc       |  1 +
 src/kudu/client/tablet_server-internal.h        |  1 +
 src/kudu/client/value-internal.h                |  1 +
 src/kudu/client/value.cc                        | 13 +++-
 src/kudu/client/value.h                         |  4 +-
 src/kudu/client/write_op.cc                     | 11 +++
 src/kudu/client/write_op.h                      | 11 ++-
 src/kudu/clock/clock.h                          |  6 +-
 src/kudu/clock/hybrid_clock-test.cc             | 11 +++
 src/kudu/clock/hybrid_clock.cc                  | 19 +++--
 src/kudu/clock/hybrid_clock.h                   | 13 +++-
 src/kudu/clock/logical_clock-test.cc            |  8 +-
 src/kudu/clock/logical_clock.cc                 | 11 ++-
 src/kudu/clock/logical_clock.h                  |  9 ++-
 src/kudu/clock/mock_ntp.cc                      |  6 +-
 src/kudu/clock/mock_ntp.h                       |  2 +
 src/kudu/clock/system_ntp.cc                    |  8 ++
 src/kudu/clock/system_ntp.h                     |  2 +
 src/kudu/clock/system_unsync_time.cc            |  4 +
 src/kudu/clock/system_unsync_time.h             |  2 +
 src/kudu/codegen/code_cache.cc                  |  6 ++
 src/kudu/codegen/code_cache.h                   |  8 +-
 src/kudu/codegen/code_generator.cc              | 17 ++--
 src/kudu/codegen/code_generator.h               |  8 +-
 src/kudu/codegen/codegen-test.cc                | 15 +++-
 src/kudu/codegen/compilation_manager.cc         | 11 ++-
 src/kudu/codegen/compilation_manager.h          |  6 +-
 src/kudu/codegen/jit_wrapper.cc                 |  4 +-
 src/kudu/codegen/jit_wrapper.h                  |  4 +-
 src/kudu/codegen/module_builder.cc              | 24 ++++--
 src/kudu/codegen/module_builder.h               |  2 +-
 src/kudu/codegen/precompiled.cc                 |  5 +-
 src/kudu/codegen/row_projector.cc               | 16 ++--
 src/kudu/codegen/row_projector.h                |  8 +-
 src/kudu/common/column_predicate-test.cc        | 11 ++-
 src/kudu/common/column_predicate.cc             |  7 +-
 src/kudu/common/column_predicate.h              | 10 ++-
 src/kudu/common/encoded_key-test.cc             | 15 +++-
 src/kudu/common/encoded_key.cc                  |  9 +++
 src/kudu/common/encoded_key.h                   |  9 ++-
 src/kudu/common/generic_iterators-test.cc       | 25 +++++-
 src/kudu/common/generic_iterators.cc            | 11 +++
 src/kudu/common/generic_iterators.h             | 16 +++-
 src/kudu/common/id_mapping-test.cc              |  4 +-
 src/kudu/common/id_mapping.h                    |  6 +-
 src/kudu/common/iterator_stats.cc               |  3 +-
 src/kudu/common/key_encoder.cc                  | 11 ++-
 src/kudu/common/key_encoder.h                   | 15 +++-
 src/kudu/common/key_util-test.cc                |  8 ++
 src/kudu/common/key_util.cc                     | 12 ++-
 src/kudu/common/key_util.h                      |  1 +
 src/kudu/common/partial_row-test.cc             |  7 +-
 src/kudu/common/partial_row.cc                  |  6 +-
 src/kudu/common/partial_row.h                   | 18 +++--
 src/kudu/common/partition-test.cc               | 17 ++--
 src/kudu/common/partition.cc                    | 15 +++-
 src/kudu/common/partition.h                     | 14 ++--
 src/kudu/common/partition_pruner-test.cc        | 18 ++++-
 src/kudu/common/partition_pruner.cc             | 14 +++-
 src/kudu/common/partition_pruner.h              |  3 +-
 src/kudu/common/row.h                           |  6 +-
 src/kudu/common/row_changelist-test.cc          | 12 ++-
 src/kudu/common/row_changelist.cc               |  9 +++
 src/kudu/common/row_changelist.h                | 16 ++--
 src/kudu/common/row_operations-test.cc          | 18 ++++-
 src/kudu/common/row_operations.cc               | 11 +++
 src/kudu/common/row_operations.h                |  3 +
 src/kudu/common/rowblock.cc                     |  4 +-
 src/kudu/common/rowblock.h                      |  9 ++-
 src/kudu/common/rowid.h                         |  4 +-
 src/kudu/common/scan_spec-test.cc               | 17 +++-
 src/kudu/common/scan_spec.cc                    | 12 +++
 src/kudu/common/scan_spec.h                     |  7 +-
 src/kudu/common/schema-test.cc                  | 18 ++++-
 src/kudu/common/schema.cc                       |  5 +-
 src/kudu/common/schema.h                        | 20 ++++-
 src/kudu/common/timestamp.cc                    |  3 +-
 src/kudu/common/timestamp.h                     |  2 +-
 src/kudu/common/types-test.cc                   |  7 +-
 src/kudu/common/types.cc                        |  1 +
 src/kudu/common/types.h                         | 12 ++-
 src/kudu/common/wire_protocol-test.cc           | 17 +++-
 src/kudu/common/wire_protocol.cc                | 18 ++++-
 src/kudu/common/wire_protocol.h                 | 28 +++++--
 src/kudu/consensus/consensus_meta-test.cc       |  8 +-
 src/kudu/consensus/consensus_meta.cc            | 10 ++-
 src/kudu/consensus/consensus_meta.h             |  5 +-
 .../consensus_meta_manager-stress-test.cc       |  1 +
 .../consensus/consensus_meta_manager-test.cc    |  8 ++
 src/kudu/consensus/consensus_meta_manager.cc    |  4 +
 src/kudu/consensus/consensus_meta_manager.h     |  2 +
 src/kudu/consensus/consensus_peers-test.cc      | 21 ++++-
 src/kudu/consensus/consensus_peers.cc           | 16 ++--
 src/kudu/consensus/consensus_peers.h            | 18 ++---
 src/kudu/consensus/consensus_queue-test.cc      | 25 +++++-
 src/kudu/consensus/consensus_queue.cc           | 29 +++----
 src/kudu/consensus/consensus_queue.h            | 22 ++++--
 src/kudu/consensus/leader_election-test.cc      | 21 ++++-
 src/kudu/consensus/leader_election.cc           | 14 ++--
 src/kudu/consensus/leader_election.h            | 15 ++--
 src/kudu/consensus/log-test-base.h              |  2 +
 src/kudu/consensus/log-test.cc                  | 34 +++++++-
 src/kudu/consensus/log.cc                       | 20 +++--
 src/kudu/consensus/log.h                        | 21 ++++-
 src/kudu/consensus/log_anchor_registry-test.cc  |  8 +-
 src/kudu/consensus/log_anchor_registry.cc       |  7 +-
 src/kudu/consensus/log_anchor_registry.h        |  5 +-
 src/kudu/consensus/log_cache-test.cc            | 25 +++++-
 src/kudu/consensus/log_cache.cc                 | 19 +++--
 src/kudu/consensus/log_cache.h                  | 14 ++--
 src/kudu/consensus/log_index-test.cc            | 12 ++-
 src/kudu/consensus/log_index.cc                 | 17 ++--
 src/kudu/consensus/log_index.h                  |  3 +-
 src/kudu/consensus/log_metrics.h                |  8 +-
 src/kudu/consensus/log_reader.cc                | 18 +++--
 src/kudu/consensus/log_reader.h                 | 29 ++++---
 src/kudu/consensus/log_util.cc                  | 10 +--
 src/kudu/consensus/log_util.h                   | 19 +++--
 src/kudu/consensus/mt-log-test.cc               | 33 +++++++-
 src/kudu/consensus/opid_util.cc                 |  6 +-
 src/kudu/consensus/opid_util.h                  |  5 +-
 src/kudu/consensus/peer_manager.cc              | 11 ++-
 src/kudu/consensus/peer_manager.h               |  1 -
 src/kudu/consensus/pending_rounds.cc            | 10 +++
 src/kudu/consensus/pending_rounds.h             |  2 +-
 src/kudu/consensus/quorum_util-test.cc          | 12 ++-
 src/kudu/consensus/quorum_util.cc               |  3 +
 src/kudu/consensus/quorum_util.h                |  2 +-
 src/kudu/consensus/raft_consensus.cc            | 25 +++++-
 src/kudu/consensus/raft_consensus.h             | 59 +++++++-------
 .../consensus/raft_consensus_quorum-test.cc     | 44 ++++++++---
 src/kudu/consensus/time_manager-test.cc         | 14 +++-
 src/kudu/consensus/time_manager.cc              | 10 +++
 src/kudu/consensus/time_manager.h               |  8 +-
 src/kudu/experiments/merge-test.cc              |  9 ++-
 src/kudu/experiments/rwlock-perf.cc             | 18 +++--
 src/kudu/fs/block_id.h                          | 12 +--
 src/kudu/fs/block_manager-stress-test.cc        | 34 +++++++-
 src/kudu/fs/block_manager-test.cc               | 23 +++++-
 src/kudu/fs/block_manager.cc                    |  4 +-
 src/kudu/fs/block_manager.h                     |  4 +-
 src/kudu/fs/block_manager_metrics.h             |  9 +--
 src/kudu/fs/block_manager_util-test.cc          | 12 ++-
 src/kudu/fs/block_manager_util.cc               | 14 +++-
 src/kudu/fs/block_manager_util.h                |  4 +-
 src/kudu/fs/data_dirs-test.cc                   |  1 +
 src/kudu/fs/data_dirs.cc                        |  9 ++-
 src/kudu/fs/data_dirs.h                         | 14 ++--
 src/kudu/fs/error_manager.h                     |  1 +
 src/kudu/fs/file_block_manager.cc               | 17 +++-
 src/kudu/fs/file_block_manager.h                |  7 +-
 src/kudu/fs/fs_manager-test.cc                  | 12 ++-
 src/kudu/fs/fs_manager.cc                       | 14 ++--
 src/kudu/fs/fs_manager.h                        | 18 +++--
 src/kudu/fs/fs_report.cc                        |  4 +-
 src/kudu/fs/fs_report.h                         |  1 +
 src/kudu/fs/log_block_manager-test-util.cc      |  7 +-
 src/kudu/fs/log_block_manager-test-util.h       |  4 +-
 src/kudu/fs/log_block_manager-test.cc           |  1 +
 src/kudu/fs/log_block_manager.cc                | 24 +++++-
 src/kudu/fs/log_block_manager.h                 | 19 ++---
 src/kudu/gutil/atomicops-internals-macosx.h     |  1 +
 src/kudu/gutil/atomicops-internals-powerpc.h    |  1 +
 src/kudu/gutil/atomicops-internals-tsan.h       |  1 +
 src/kudu/gutil/atomicops-internals-x86.cc       |  2 +-
 src/kudu/gutil/atomicops-internals-x86.h        |  5 +-
 src/kudu/gutil/atomicops.h                      | 16 ++--
 src/kudu/gutil/bits.h                           |  4 -
 src/kudu/gutil/callback_internal.cc             |  2 +
 src/kudu/gutil/callback_internal.h              |  8 +-
 src/kudu/gutil/cpu.cc                           |  7 +-
 src/kudu/gutil/hash/builtin_type_hash.h         |  4 +-
 src/kudu/gutil/hash/city.cc                     | 24 +++---
 src/kudu/gutil/hash/hash.cc                     |  4 +-
 src/kudu/gutil/hash/hash.h                      | 14 +---
 src/kudu/gutil/hash/jenkins.cc                  |  4 +-
 src/kudu/gutil/mathlimits.h                     |  2 -
 src/kudu/gutil/once.cc                          |  7 +-
 src/kudu/gutil/once.h                           |  1 -
 src/kudu/gutil/ref_counted.cc                   |  6 +-
 src/kudu/gutil/ref_counted.h                    |  5 +-
 src/kudu/gutil/ref_counted_memory.cc            |  4 +-
 src/kudu/gutil/ref_counted_memory.h             |  3 +
 src/kudu/gutil/spinlock.cc                      |  4 +-
 src/kudu/gutil/spinlock.h                       |  3 +-
 src/kudu/gutil/spinlock_internal.h              |  2 +-
 src/kudu/gutil/stringprintf.cc                  |  9 ++-
 src/kudu/gutil/strings/escaping.cc              | 15 ++--
 src/kudu/gutil/strings/escaping.h               |  1 -
 src/kudu/gutil/strings/human_readable.cc        |  8 +-
 src/kudu/gutil/strings/human_readable.h         |  1 -
 src/kudu/gutil/strings/join.cc                  |  5 +-
 src/kudu/gutil/strings/join.h                   | 10 +--
 src/kudu/gutil/strings/memutil.h                |  6 +-
 src/kudu/gutil/strings/numbers.cc               | 28 ++++---
 src/kudu/gutil/strings/numbers.h                |  8 +-
 src/kudu/gutil/strings/serialize.cc             |  8 +-
 src/kudu/gutil/strings/serialize.h              |  4 +-
 src/kudu/gutil/strings/split.cc                 | 16 ++--
 src/kudu/gutil/strings/split.h                  |  4 +-
 src/kudu/gutil/strings/strcat.cc                | 12 +--
 src/kudu/gutil/strings/strcat.h                 |  3 +
 src/kudu/gutil/strings/string_util-test.cc      |  1 +
 src/kudu/gutil/strings/stringpiece.cc           | 14 ++--
 src/kudu/gutil/strings/stringpiece.h            | 15 ++--
 src/kudu/gutil/strings/strip.cc                 | 18 +++--
 src/kudu/gutil/strings/strip.h                  |  3 +-
 src/kudu/gutil/strings/substitute.cc            |  7 +-
 src/kudu/gutil/strings/substitute.h             |  4 +-
 src/kudu/gutil/strings/util.cc                  | 32 ++++----
 src/kudu/gutil/strings/util.h                   | 10 +--
 src/kudu/gutil/strtoint.cc                      |  5 +-
 src/kudu/gutil/strtoint.h                       |  4 +-
 src/kudu/gutil/sysinfo.cc                       | 21 +++--
 src/kudu/gutil/sysinfo.h                        |  2 +
 .../gutil/threading/thread_collision_warner.cc  | 13 +++-
 .../gutil/threading/thread_collision_warner.h   |  4 +-
 src/kudu/gutil/walltime.h                       |  9 ++-
 src/kudu/integration-tests/all_types-itest.cc   | 30 ++++++-
 .../alter_table-randomized-test.cc              | 20 ++++-
 src/kudu/integration-tests/alter_table-test.cc  | 34 ++++++--
 .../authn_token_expire-itest.cc                 | 19 ++---
 .../catalog_manager_tsk-itest.cc                | 12 ++-
 .../client-negotiation-failover-itest.cc        | 19 +++--
 .../integration-tests/client-stress-test.cc     | 23 +++++-
 .../integration-tests/client_failover-itest.cc  | 21 ++++-
 .../integration-tests/cluster_itest_util.cc     | 25 ++++--
 src/kudu/integration-tests/cluster_itest_util.h | 33 ++++----
 src/kudu/integration-tests/cluster_verifier.cc  |  5 ++
 src/kudu/integration-tests/cluster_verifier.h   |  3 +-
 src/kudu/integration-tests/consistency-itest.cc | 19 ++++-
 .../integration-tests/create-table-itest.cc     | 26 ++++++-
 .../create-table-stress-test.cc                 | 35 +++++++--
 .../integration-tests/delete_table-itest.cc     | 38 ++++++++-
 .../integration-tests/delete_tablet-itest.cc    | 17 +++-
 src/kudu/integration-tests/dense_node-itest.cc  |  5 ++
 .../integration-tests/disk_reservation-itest.cc | 12 ++-
 .../exactly_once_writes-itest.cc                | 33 ++++++++
 .../external_mini_cluster-itest-base.cc         |  5 +-
 .../external_mini_cluster-itest-base.h          |  7 ++
 .../external_mini_cluster-test.cc               | 13 ++--
 .../integration-tests/external_mini_cluster.cc  | 15 +++-
 .../integration-tests/external_mini_cluster.h   | 26 +++++--
 .../external_mini_cluster_fs_inspector.cc       |  6 +-
 .../external_mini_cluster_fs_inspector.h        |  5 +-
 .../flex_partitioning-itest.cc                  | 31 ++++++--
 .../full_stack-insert-scan-test.cc              | 27 ++++---
 src/kudu/integration-tests/fuzz-itest.cc        | 39 ++++++++--
 .../internal_mini_cluster-itest-base.cc         |  2 +
 .../internal_mini_cluster-itest-base.h          |  1 +
 .../integration-tests/internal_mini_cluster.cc  | 13 +++-
 .../integration-tests/internal_mini_cluster.h   | 11 ++-
 .../integration-tests/linked_list-test-util.h   |  4 +-
 src/kudu/integration-tests/linked_list-test.cc  | 36 +++++----
 src/kudu/integration-tests/log-rolling-itest.cc |  3 +
 src/kudu/integration-tests/log_verifier.cc      | 13 +++-
 src/kudu/integration-tests/log_verifier.h       |  1 +
 .../integration-tests/master-stress-test.cc     | 18 ++++-
 .../master_cert_authority-itest.cc              | 12 ++-
 .../integration-tests/master_failover-itest.cc  | 18 ++++-
 .../integration-tests/master_migration-itest.cc | 15 +++-
 .../master_replication-itest.cc                 | 27 +++++--
 src/kudu/integration-tests/mini_cluster.cc      |  5 +-
 src/kudu/integration-tests/mini_cluster.h       |  6 +-
 .../minidump_generation-itest.cc                | 10 ++-
 .../integration-tests/multidir_cluster-itest.cc | 12 ++-
 .../integration-tests/open-readonly-fs-itest.cc | 21 ++++-
 .../integration-tests/raft_consensus-itest.cc   | 44 ++++++++++-
 src/kudu/integration-tests/registration-test.cc | 19 ++++-
 .../integration-tests/security-faults-itest.cc  | 15 +++-
 src/kudu/integration-tests/security-itest.cc    | 21 ++++-
 .../security-unknown-tsk-itest.cc               | 26 ++++---
 .../integration-tests/table_locations-itest.cc  |  8 +-
 src/kudu/integration-tests/tablet_copy-itest.cc | 36 ++++++++-
 .../tablet_copy_client_session-itest.cc         | 29 ++++++-
 .../tablet_history_gc-itest.cc                  | 35 ++++++++-
 .../tablet_replacement-itest.cc                 | 30 +++++--
 src/kudu/integration-tests/test_workload.cc     | 26 +++++--
 src/kudu/integration-tests/test_workload.h      |  6 +-
 .../integration-tests/token_signer-itest.cc     |  2 +
 src/kudu/integration-tests/ts_itest-base.h      |  1 +
 src/kudu/integration-tests/ts_recovery-itest.cc | 28 +++++++
 .../ts_tablet_manager-itest.cc                  | 24 ++++--
 .../update_scan_delta_compact-test.cc           | 19 +++++
 .../integration-tests/version_migration-test.cc | 13 +++-
 .../integration-tests/write_throttling-itest.cc | 14 +++-
 src/kudu/kserver/kserver.cc                     |  3 +-
 src/kudu/kserver/kserver.h                      |  2 +-
 src/kudu/master/catalog_manager-test.cc         | 12 +++
 src/kudu/master/catalog_manager.cc              | 38 +++++++--
 src/kudu/master/catalog_manager.h               | 35 +++++++--
 src/kudu/master/master-path-handlers.cc         | 23 ++++--
 src/kudu/master/master-path-handlers.h          |  6 +-
 src/kudu/master/master-test-util.h              |  3 +
 src/kudu/master/master-test.cc                  | 45 ++++++++---
 src/kudu/master/master.cc                       | 20 +++--
 src/kudu/master/master.h                        | 15 +---
 src/kudu/master/master_cert_authority.cc        |  4 +-
 src/kudu/master/master_cert_authority.h         |  5 +-
 src/kudu/master/master_main.cc                  |  8 +-
 src/kudu/master/master_options.cc               |  8 +-
 src/kudu/master/master_service.cc               | 26 ++++---
 src/kudu/master/master_service.h                | 45 ++++++++++-
 src/kudu/master/mini_master-test.cc             |  5 ++
 src/kudu/master/mini_master.cc                  |  8 +-
 src/kudu/master/mini_master.h                   |  8 +-
 src/kudu/master/sys_catalog-test.cc             | 26 +++++--
 src/kudu/master/sys_catalog.cc                  | 41 ++++++++--
 src/kudu/master/sys_catalog.h                   | 26 ++++++-
 src/kudu/master/ts_descriptor.cc                | 10 ++-
 src/kudu/master/ts_descriptor.h                 |  5 ++
 src/kudu/master/ts_manager.cc                   |  4 +-
 src/kudu/master/ts_manager.h                    |  1 -
 src/kudu/rpc/acceptor_pool.cc                   | 15 ++--
 src/kudu/rpc/acceptor_pool.h                    |  5 +-
 src/kudu/rpc/blocking_ops.cc                    |  9 ++-
 src/kudu/rpc/blocking_ops.h                     |  4 -
 src/kudu/rpc/client_negotiation.cc              | 15 ++--
 src/kudu/rpc/client_negotiation.h               | 13 ++--
 src/kudu/rpc/connection.cc                      | 22 +++---
 src/kudu/rpc/connection.h                       | 15 ++--
 src/kudu/rpc/connection_id.cc                   |  5 +-
 src/kudu/rpc/connection_id.h                    |  1 +
 src/kudu/rpc/exactly_once_rpc-test.cc           | 34 ++++++++
 src/kudu/rpc/inbound_call.cc                    | 19 ++++-
 src/kudu/rpc/inbound_call.h                     | 14 +++-
 src/kudu/rpc/messenger.cc                       | 32 +++++---
 src/kudu/rpc/messenger.h                        | 15 ++--
 src/kudu/rpc/mt-rpc-test.cc                     | 28 ++++++-
 src/kudu/rpc/negotiation-test.cc                |  3 -
 src/kudu/rpc/negotiation.cc                     | 15 +++-
 src/kudu/rpc/negotiation.h                      |  5 +-
 src/kudu/rpc/outbound_call.cc                   | 11 ++-
 src/kudu/rpc/outbound_call.h                    |  9 ++-
 src/kudu/rpc/protoc-gen-krpc.cc                 | 82 ++++++++++++--------
 src/kudu/rpc/proxy.cc                           | 17 ++--
 src/kudu/rpc/proxy.h                            | 10 ++-
 src/kudu/rpc/reactor-test.cc                    | 11 ++-
 src/kudu/rpc/reactor.cc                         | 17 ++--
 src/kudu/rpc/reactor.h                          | 13 ++--
 src/kudu/rpc/remote_method.cc                   |  3 +
 src/kudu/rpc/remote_user.cc                     |  1 -
 src/kudu/rpc/remote_user.h                      |  3 +-
 src/kudu/rpc/request_tracker-test.cc            |  7 +-
 src/kudu/rpc/request_tracker.h                  |  2 +
 src/kudu/rpc/result_tracker.cc                  | 10 ++-
 src/kudu/rpc/result_tracker.h                   | 18 +++--
 src/kudu/rpc/rpc-bench.cc                       | 19 ++++-
 src/kudu/rpc/rpc-test-base.h                    |  1 +
 src/kudu/rpc/rpc-test.cc                        | 30 ++++++-
 src/kudu/rpc/rpc.cc                             |  6 +-
 src/kudu/rpc/rpc.h                              |  5 +-
 src/kudu/rpc/rpc_context.cc                     | 14 +++-
 src/kudu/rpc/rpc_context.h                      |  7 +-
 src/kudu/rpc/rpc_controller.cc                  |  8 +-
 src/kudu/rpc/rpc_controller.h                   |  6 +-
 src/kudu/rpc/rpc_sidecar.cc                     | 10 ++-
 src/kudu/rpc/rpc_sidecar.h                      | 10 ++-
 src/kudu/rpc/rpc_stub-test.cc                   | 34 +++++++-
 src/kudu/rpc/rpcz_store.cc                      | 15 +++-
 src/kudu/rpc/sasl_common.cc                     | 11 ++-
 src/kudu/rpc/sasl_common.h                      |  5 +-
 src/kudu/rpc/sasl_helper.cc                     | 10 +--
 src/kudu/rpc/sasl_helper.h                      |  8 +-
 src/kudu/rpc/serialization.cc                   |  5 ++
 src/kudu/rpc/serialization.h                    |  4 +-
 src/kudu/rpc/server_negotiation.cc              | 17 ++--
 src/kudu/rpc/server_negotiation.h               |  8 +-
 src/kudu/rpc/service_if.cc                      | 15 +++-
 src/kudu/rpc/service_if.h                       | 21 ++---
 src/kudu/rpc/service_pool.cc                    | 14 +++-
 src/kudu/rpc/service_pool.h                     | 10 ++-
 src/kudu/rpc/service_queue-test.cc              | 15 +++-
 src/kudu/rpc/service_queue.cc                   |  5 +-
 src/kudu/rpc/service_queue.h                    | 12 ++-
 src/kudu/rpc/transfer.cc                        | 11 +--
 src/kudu/rpc/transfer.h                         | 23 +++---
 src/kudu/rpc/user_credentials.cc                |  4 +-
 src/kudu/rpc/user_credentials.h                 |  1 +
 src/kudu/security/ca/cert_management-test.cc    |  1 +
 src/kudu/security/ca/cert_management.cc         | 11 +--
 src/kudu/security/ca/cert_management.h          | 15 ++--
 src/kudu/security/cert.cc                       |  9 ++-
 src/kudu/security/cert.h                        | 11 ++-
 src/kudu/security/crypto.cc                     | 10 ++-
 src/kudu/security/crypto.h                      |  5 ++
 src/kudu/security/init.cc                       | 20 +++--
 src/kudu/security/init.h                        |  5 +-
 src/kudu/security/kerberos_util.cc              |  1 +
 src/kudu/security/krb5_realm_override.cc        |  7 +-
 src/kudu/security/openssl_util.cc               |  8 +-
 src/kudu/security/openssl_util.h                |  4 +-
 src/kudu/security/security-test-util.cc         |  6 +-
 src/kudu/security/security-test-util.h          |  3 -
 src/kudu/security/simple_acl.cc                 |  5 +-
 src/kudu/security/simple_acl.h                  |  2 -
 src/kudu/security/test/mini_kdc-test.cc         |  7 +-
 src/kudu/security/test/mini_kdc.cc              |  3 +-
 src/kudu/security/test/mini_kdc.h               |  4 +-
 src/kudu/security/tls_context.cc                |  5 ++
 src/kudu/security/tls_context.h                 | 10 ++-
 src/kudu/security/tls_handshake-test.cc         |  1 +
 src/kudu/security/tls_handshake.cc              |  3 +-
 src/kudu/security/tls_handshake.h               |  3 +-
 src/kudu/security/tls_socket.cc                 |  9 ++-
 src/kudu/security/tls_socket.h                  | 10 ++-
 src/kudu/security/token-test.cc                 |  2 +
 src/kudu/security/token_signer.cc               |  5 +-
 src/kudu/security/token_signer.h                |  3 +-
 src/kudu/security/token_signing_key.cc          |  1 +
 src/kudu/security/token_signing_key.h           |  3 +-
 src/kudu/security/token_verifier.cc             |  4 +
 src/kudu/security/token_verifier.h              |  6 ++
 src/kudu/security/x509_check_host.cc            | 10 +--
 src/kudu/security/x509_check_host.h             |  4 +-
 src/kudu/server/default-path-handlers.cc        | 14 +++-
 src/kudu/server/default-path-handlers.h         |  2 -
 src/kudu/server/generic_service.cc              | 13 +++-
 src/kudu/server/generic_service.h               | 24 ++++++
 src/kudu/server/glog_metrics.cc                 |  5 +-
 src/kudu/server/glog_metrics.h                  |  1 -
 src/kudu/server/pprof-path-handlers.cc          | 11 ++-
 src/kudu/server/rpc_server-test.cc              |  1 +
 src/kudu/server/rpc_server.cc                   | 12 ++-
 src/kudu/server/rpc_server.h                    |  7 +-
 src/kudu/server/rpcz-path-handler.cc            |  5 +-
 src/kudu/server/server_base.cc                  | 19 ++++-
 src/kudu/server/server_base.h                   |  7 +-
 src/kudu/server/server_base_options.cc          |  2 +
 src/kudu/server/server_base_options.h           |  2 +-
 src/kudu/server/tcmalloc_metrics.cc             |  7 +-
 src/kudu/server/tracing-path-handlers.cc        | 13 ++--
 src/kudu/server/tracing-path-handlers.h         |  5 +-
 src/kudu/server/webserver-test.cc               | 13 +++-
 src/kudu/server/webserver.cc                    | 20 +++--
 src/kudu/server/webserver.h                     | 10 ++-
 src/kudu/server/webserver_options.cc            |  4 +-
 src/kudu/server/webui_util.cc                   |  7 +-
 src/kudu/server/webui_util.h                    |  4 +-
 src/kudu/tablet/cbtree-test.cc                  | 16 +++-
 src/kudu/tablet/cfile_set-test.cc               | 34 +++++++-
 src/kudu/tablet/cfile_set.cc                    | 21 ++++-
 src/kudu/tablet/cfile_set.h                     | 33 ++++++--
 src/kudu/tablet/compaction-test.cc              | 40 +++++++++-
 src/kudu/tablet/compaction.cc                   | 25 +++++-
 src/kudu/tablet/compaction.h                    | 24 ++++--
 src/kudu/tablet/compaction_policy-test.cc       | 21 +++--
 src/kudu/tablet/compaction_policy.cc            | 13 ++--
 src/kudu/tablet/compaction_policy.h             |  7 +-
 src/kudu/tablet/composite-pushdown-test.cc      | 24 +++++-
 src/kudu/tablet/delta_applier.cc                | 11 ++-
 src/kudu/tablet/delta_applier.h                 | 12 ++-
 src/kudu/tablet/delta_compaction-test.cc        | 30 ++++---
 src/kudu/tablet/delta_compaction.cc             | 27 +++++--
 src/kudu/tablet/delta_compaction.h              | 17 ++--
 src/kudu/tablet/delta_iterator_merger.cc        | 14 +++-
 src/kudu/tablet/delta_iterator_merger.h         | 12 +++
 src/kudu/tablet/delta_key.cc                    |  5 +-
 src/kudu/tablet/delta_key.h                     |  9 ++-
 src/kudu/tablet/delta_stats.cc                  |  7 +-
 src/kudu/tablet/delta_stats.h                   | 13 ++--
 src/kudu/tablet/delta_store.cc                  | 10 +++
 src/kudu/tablet/delta_store.h                   | 21 +++--
 src/kudu/tablet/delta_tracker.cc                | 34 ++++++--
 src/kudu/tablet/delta_tracker.h                 | 29 +++++--
 src/kudu/tablet/deltafile-test.cc               | 29 ++++++-
 src/kudu/tablet/deltafile.cc                    | 26 +++++--
 src/kudu/tablet/deltafile.h                     | 40 ++++++++--
 src/kudu/tablet/deltamemstore-test.cc           | 35 ++++++++-
 src/kudu/tablet/deltamemstore.cc                | 22 ++++--
 src/kudu/tablet/deltamemstore.h                 | 28 +++++--
 src/kudu/tablet/diskrowset-test.cc              | 39 ++++++++--
 src/kudu/tablet/diskrowset.cc                   | 25 ++++--
 src/kudu/tablet/diskrowset.h                    | 35 ++++++---
 src/kudu/tablet/lock_manager-test.cc            | 19 ++++-
 src/kudu/tablet/lock_manager.cc                 | 10 ++-
 src/kudu/tablet/lock_manager.h                  |  4 +-
 src/kudu/tablet/major_delta_compaction-test.cc  | 29 ++++---
 src/kudu/tablet/memrowset-test.cc               | 27 ++++++-
 src/kudu/tablet/memrowset.cc                    | 17 +++-
 src/kudu/tablet/memrowset.h                     | 38 +++++++--
 src/kudu/tablet/metadata-test.cc                | 12 ++-
 src/kudu/tablet/mock-rowsets.h                  |  1 +
 src/kudu/tablet/mt-diskrowset-test.cc           | 11 +++
 .../tablet/mt-rowset_delta_compaction-test.cc   | 26 ++++++-
 src/kudu/tablet/mt-tablet-test.cc               | 27 ++++++-
 src/kudu/tablet/multi_column_writer.cc          | 10 ++-
 src/kudu/tablet/multi_column_writer.h           |  7 +-
 src/kudu/tablet/mutation.cc                     |  9 ++-
 src/kudu/tablet/mutation.h                      | 14 +++-
 src/kudu/tablet/mvcc-test.cc                    | 15 +++-
 src/kudu/tablet/mvcc.cc                         | 10 +--
 src/kudu/tablet/mvcc.h                          | 11 ++-
 src/kudu/tablet/row_op.cc                       | 13 +++-
 src/kudu/tablet/row_op.h                        | 10 ++-
 src/kudu/tablet/rowset.cc                       |  7 +-
 src/kudu/tablet/rowset.h                        | 23 ++++--
 src/kudu/tablet/rowset_info.cc                  | 11 ++-
 src/kudu/tablet/rowset_metadata.cc              |  5 +-
 src/kudu/tablet/rowset_metadata.h               |  9 ++-
 src/kudu/tablet/rowset_tree-test.cc             | 14 +++-
 src/kudu/tablet/rowset_tree.cc                  |  6 +-
 src/kudu/tablet/rowset_tree.h                   |  6 +-
 src/kudu/tablet/svg_dump.cc                     | 11 +--
 src/kudu/tablet/svg_dump.h                      |  1 +
 src/kudu/tablet/tablet-decoder-eval-test.cc     | 35 ++++++++-
 src/kudu/tablet/tablet-harness.h                |  5 +-
 src/kudu/tablet/tablet-pushdown-test.cc         | 26 ++++++-
 src/kudu/tablet/tablet-schema-test.cc           | 22 ++++--
 src/kudu/tablet/tablet-test-base.h              |  7 +-
 src/kudu/tablet/tablet-test-util.h              |  3 +
 src/kudu/tablet/tablet-test.cc                  | 39 ++++++++--
 src/kudu/tablet/tablet.cc                       | 52 ++++++++++---
 src/kudu/tablet/tablet.h                        | 30 +++----
 src/kudu/tablet/tablet_bootstrap-test.cc        | 45 +++++++++++
 src/kudu/tablet/tablet_bootstrap.cc             | 45 +++++++++--
 src/kudu/tablet/tablet_bootstrap.h              | 13 +---
 src/kudu/tablet/tablet_history_gc-test.cc       | 34 +++++++-
 src/kudu/tablet/tablet_metadata-test.cc         | 18 ++++-
 src/kudu/tablet/tablet_metadata.cc              | 17 ++--
 src/kudu/tablet/tablet_metadata.h               | 23 ++++--
 src/kudu/tablet/tablet_metrics.cc               |  3 +
 src/kudu/tablet/tablet_metrics.h                | 11 +--
 src/kudu/tablet/tablet_mm_ops-test.cc           | 16 +++-
 src/kudu/tablet/tablet_mm_ops.cc                |  9 ++-
 src/kudu/tablet/tablet_mm_ops.h                 |  6 +-
 src/kudu/tablet/tablet_random_access-test.cc    | 37 +++++++--
 src/kudu/tablet/tablet_replica-test.cc          | 34 +++++++-
 src/kudu/tablet/tablet_replica.cc               | 30 ++++---
 src/kudu/tablet/tablet_replica.h                | 36 ++++++---
 src/kudu/tablet/tablet_replica_mm_ops.cc        |  8 +-
 src/kudu/tablet/tablet_replica_mm_ops.h         | 15 ++--
 src/kudu/tablet/tablet_throttle-test.cc         | 15 ++--
 src/kudu/tablet/transaction_order_verifier.cc   |  3 +
 src/kudu/tablet/transaction_order_verifier.h    |  2 +
 .../transactions/alter_schema_transaction.cc    | 15 ++--
 .../transactions/alter_schema_transaction.h     | 16 ++--
 src/kudu/tablet/transactions/transaction.cc     |  2 +
 src/kudu/tablet/transactions/transaction.h      | 28 +++++--
 .../tablet/transactions/transaction_driver.cc   | 26 ++++++-
 .../tablet/transactions/transaction_driver.h    | 15 ++--
 .../transactions/transaction_tracker-test.cc    | 26 ++++++-
 .../tablet/transactions/transaction_tracker.cc  | 10 +++
 .../tablet/transactions/transaction_tracker.h   | 12 +--
 .../tablet/transactions/write_transaction.cc    | 42 +++++++---
 .../tablet/transactions/write_transaction.h     | 30 ++++---
 src/kudu/tools/color.cc                         |  6 +-
 src/kudu/tools/create-demo-table.cc             | 13 ++--
 src/kudu/tools/data_gen_util.cc                 |  7 +-
 src/kudu/tools/data_gen_util.h                  |  1 -
 src/kudu/tools/ksck-test.cc                     | 16 +++-
 src/kudu/tools/ksck.cc                          | 22 ++++--
 src/kudu/tools/ksck.h                           | 31 ++++----
 src/kudu/tools/ksck_remote-test.cc              | 20 +++++
 src/kudu/tools/ksck_remote.cc                   | 28 ++++++-
 src/kudu/tools/ksck_remote.h                    | 34 +++++---
 src/kudu/tools/kudu-admin-test.cc               | 28 +++++++
 src/kudu/tools/kudu-tool-test.cc                | 45 +++++++++--
 src/kudu/tools/kudu-ts-cli-test.cc              | 16 +++-
 src/kudu/tools/tool_action-test.cc              |  2 +
 src/kudu/tools/tool_action.cc                   |  6 +-
 src/kudu/tools/tool_action.h                    |  1 +
 src/kudu/tools/tool_action_cluster.cc           |  3 +
 src/kudu/tools/tool_action_common.cc            | 28 +++++--
 src/kudu/tools/tool_action_common.h             | 12 +--
 src/kudu/tools/tool_action_fs.cc                | 11 ++-
 src/kudu/tools/tool_action_local_replica.cc     | 26 +++++--
 src/kudu/tools/tool_action_master.cc            |  4 +-
 src/kudu/tools/tool_action_pbc.cc               | 22 ++++--
 src/kudu/tools/tool_action_perf.cc              | 19 +++--
 src/kudu/tools/tool_action_remote_replica.cc    | 21 +++--
 src/kudu/tools/tool_action_table.cc             |  5 +-
 src/kudu/tools/tool_action_tablet.cc            | 14 +++-
 src/kudu/tools/tool_action_tserver.cc           |  4 +-
 src/kudu/tools/tool_action_wal.cc               |  2 +
 src/kudu/tools/tool_main.cc                     |  3 +
 src/kudu/tools/tool_test_util.cc                |  4 +
 src/kudu/tserver/heartbeater.cc                 | 24 +++++-
 src/kudu/tserver/mini_tablet_server-test.cc     |  6 ++
 src/kudu/tserver/mini_tablet_server.cc          | 18 ++++-
 src/kudu/tserver/mini_tablet_server.h           |  5 +-
 src/kudu/tserver/scanner_metrics.h              |  4 +-
 src/kudu/tserver/scanners-test.cc               |  8 +-
 src/kudu/tserver/scanners.cc                    |  8 ++
 src/kudu/tserver/scanners.h                     | 10 ++-
 src/kudu/tserver/tablet_copy_client-test.cc     | 37 ++++++++-
 src/kudu/tserver/tablet_copy_client.cc          | 26 +++++--
 src/kudu/tserver/tablet_copy_client.h           |  6 +-
 src/kudu/tserver/tablet_copy_service-test.cc    | 36 ++++++---
 src/kudu/tserver/tablet_copy_service.cc         | 25 ++++--
 src/kudu/tserver/tablet_copy_service.h          | 21 +++--
 .../tserver/tablet_copy_source_session-test.cc  | 42 +++++++++-
 src/kudu/tserver/tablet_copy_source_session.cc  | 17 +++-
 src/kudu/tserver/tablet_copy_source_session.h   | 14 ++--
 src/kudu/tserver/tablet_server-stress-test.cc   | 18 +++++
 src/kudu/tserver/tablet_server-test-base.h      |  2 +
 src/kudu/tserver/tablet_server-test.cc          | 80 +++++++++++++++++--
 src/kudu/tserver/tablet_server.cc               | 11 ++-
 src/kudu/tserver/tablet_server.h                |  5 +-
 src/kudu/tserver/tablet_server_main.cc          | 10 ++-
 src/kudu/tserver/tablet_server_options.cc       |  8 +-
 src/kudu/tserver/tablet_server_test_util.cc     |  1 -
 src/kudu/tserver/tablet_service.cc              | 55 +++++++++----
 src/kudu/tserver/tablet_service.h               | 51 ++++++++++--
 src/kudu/tserver/ts_tablet_manager-test.cc      | 25 +++++-
 src/kudu/tserver/ts_tablet_manager.cc           | 51 ++++++++----
 src/kudu/tserver/ts_tablet_manager.h            | 33 ++++----
 src/kudu/tserver/tserver-path-handlers.cc       | 29 ++++++-
 src/kudu/tserver/tserver-path-handlers.h        |  1 +
 src/kudu/twitter-demo/ingest_firehose.cc        | 22 +++---
 src/kudu/twitter-demo/insert_consumer.cc        | 13 ++--
 src/kudu/twitter-demo/insert_consumer.h         |  9 +--
 src/kudu/twitter-demo/oauth.cc                  |  2 +
 src/kudu/twitter-demo/parser-test.cc            |  6 +-
 src/kudu/twitter-demo/parser.cc                 |  4 +-
 src/kudu/twitter-demo/parser.h                  |  2 +-
 src/kudu/twitter-demo/twitter_streamer.cc       | 11 ++-
 src/kudu/twitter-demo/twitter_streamer.h        |  2 +
 src/kudu/util/CMakeLists.txt                    |  1 +
 src/kudu/util/async_logger.cc                   |  2 -
 src/kudu/util/async_logger.h                    |  7 +-
 src/kudu/util/atomic-test.cc                    |  1 +
 src/kudu/util/atomic.cc                         |  3 +-
 src/kudu/util/atomic.h                          |  4 +-
 src/kudu/util/bitmap-test.cc                    |  5 +-
 src/kudu/util/bitmap.cc                         |  8 +-
 src/kudu/util/bitmap.h                          |  7 ++
 src/kudu/util/blocking_queue-test.cc            | 10 ++-
 src/kudu/util/bloom_filter-test.cc              |  7 +-
 src/kudu/util/bloom_filter.cc                   |  9 ++-
 src/kudu/util/bloom_filter.h                    |  4 +
 src/kudu/util/cache-test.cc                     | 17 +++-
 src/kudu/util/cache.cc                          | 10 ++-
 src/kudu/util/cache.h                           |  2 +-
 src/kudu/util/cache_metrics.h                   |  9 +--
 src/kudu/util/callback_bind-test.cc             | 14 +++-
 src/kudu/util/coding-inl.h                      |  7 +-
 src/kudu/util/coding.cc                         |  1 +
 src/kudu/util/coding.h                          | 11 ++-
 src/kudu/util/compression/compression-test.cc   | 12 ++-
 src/kudu/util/compression/compression_codec.cc  |  5 +-
 src/kudu/util/compression/compression_codec.h   |  5 +-
 src/kudu/util/condition_variable.cc             | 11 ++-
 src/kudu/util/condition_variable.h              |  7 +-
 src/kudu/util/countdown_latch-test.cc           |  7 +-
 src/kudu/util/crc-test.cc                       |  9 +++
 src/kudu/util/curl_util.cc                      |  4 +
 src/kudu/util/debug-util-test.cc                | 11 ++-
 src/kudu/util/debug-util.cc                     | 19 +++--
 src/kudu/util/debug-util.h                      |  2 +
 src/kudu/util/debug/trace_event.h               |  1 +
 src/kudu/util/debug/trace_event_impl.cc         | 36 ++++++---
 src/kudu/util/debug/trace_event_impl.h          | 24 +++---
 .../util/debug/trace_event_synthetic_delay.cc   | 10 ++-
 .../util/debug/trace_event_synthetic_delay.h    |  4 +
 src/kudu/util/easy_json-test.cc                 |  2 +-
 src/kudu/util/easy_json.cc                      |  5 +-
 src/kudu/util/env-test.cc                       | 47 +++++++----
 src/kudu/util/env.cc                            |  3 +
 src/kudu/util/env.h                             |  3 +-
 src/kudu/util/env_posix.cc                      | 24 ++++--
 src/kudu/util/env_util-test.cc                  | 11 ++-
 src/kudu/util/env_util.cc                       | 11 +--
 src/kudu/util/env_util.h                        | 11 ++-
 src/kudu/util/errno-test.cc                     |  1 +
 src/kudu/util/errno.cc                          |  6 +-
 src/kudu/util/errno.h                           |  1 +
 src/kudu/util/failure_detector-test.cc          | 10 ++-
 src/kudu/util/failure_detector.cc               |  9 ++-
 src/kudu/util/failure_detector.h                |  8 +-
 src/kudu/util/faststring-test.cc                |  5 ++
 src/kudu/util/faststring.h                      |  3 +
 src/kudu/util/fault_injection.cc                |  9 ++-
 src/kudu/util/fault_injection.h                 |  1 +
 src/kudu/util/file_cache-stress-test.cc         |  1 +
 src/kudu/util/file_cache-test.cc                | 11 ++-
 src/kudu/util/file_cache.cc                     |  9 ++-
 src/kudu/util/file_cache.h                      |  4 +-
 src/kudu/util/flag_tags-test.cc                 |  8 +-
 src/kudu/util/flag_tags.cc                      |  9 ++-
 src/kudu/util/flag_tags.h                       |  1 -
 src/kudu/util/flag_validators-test.cc           |  9 ++-
 src/kudu/util/flags-test.cc                     | 10 ++-
 src/kudu/util/flags.cc                          | 23 ++++--
 src/kudu/util/flags.h                           |  6 +-
 src/kudu/util/group_varint-inl.h                | 30 ++++++-
 src/kudu/util/group_varint-test.cc              | 13 +++-
 src/kudu/util/group_varint.cc                   |  7 +-
 src/kudu/util/hash_util-test.cc                 |  4 +-
 src/kudu/util/hdr_histogram-test.cc             |  5 +-
 src/kudu/util/hdr_histogram.cc                  |  4 +
 src/kudu/util/hdr_histogram.h                   |  4 +-
 src/kudu/util/hexdump.cc                        |  2 +
 src/kudu/util/init.cc                           |  3 +
 src/kudu/util/init.h                            |  1 -
 src/kudu/util/inline_slice-test.cc              |  6 +-
 src/kudu/util/interval_tree-test.cc             | 17 ++--
 src/kudu/util/jsonreader-test.cc                |  4 +
 src/kudu/util/jsonreader.cc                     |  3 +
 src/kudu/util/jsonreader.h                      |  3 +-
 src/kudu/util/jsonwriter-test.cc                |  2 +-
 src/kudu/util/jsonwriter.cc                     |  4 +
 src/kudu/util/jsonwriter.h                      |  5 +-
 src/kudu/util/kernel_stack_watchdog.cc          | 10 ++-
 src/kudu/util/kernel_stack_watchdog.h           |  6 +-
 src/kudu/util/knapsack_solver-test.cc           |  8 +-
 src/kudu/util/locks.cc                          |  1 +
 src/kudu/util/locks.h                           |  9 ++-
 src/kudu/util/logging-test.cc                   | 12 ++-
 src/kudu/util/logging.cc                        | 20 ++---
 src/kudu/util/logging.h                         |  5 +-
 src/kudu/util/maintenance_manager-test.cc       | 14 +++-
 src/kudu/util/maintenance_manager.cc            | 26 ++++++-
 src/kudu/util/maintenance_manager.h             | 33 ++++----
 src/kudu/util/make_shared.h                     |  4 +
 src/kudu/util/map-util-test.cc                  |  5 +-
 src/kudu/util/mem_tracker-test.cc               |  7 ++
 src/kudu/util/mem_tracker.cc                    |  8 +-
 src/kudu/util/mem_tracker.h                     | 10 +--
 src/kudu/util/memcmpable_varint-test.cc         | 11 ++-
 src/kudu/util/memcmpable_varint.cc              |  4 +-
 src/kudu/util/memcmpable_varint.h               |  6 +-
 src/kudu/util/memory/arena-test.cc              | 10 ++-
 src/kudu/util/memory/arena.cc                   |  9 +--
 src/kudu/util/memory/arena.h                    | 17 ++--
 src/kudu/util/memory/memory.cc                  |  3 +-
 src/kudu/util/memory/memory.h                   | 10 ++-
 src/kudu/util/memory/overwrite.h                |  2 +
 src/kudu/util/metrics-test.cc                   | 14 +++-
 src/kudu/util/metrics.cc                        | 11 +--
 src/kudu/util/metrics.h                         | 16 ++--
 src/kudu/util/minidump-test.cc                  | 13 +++-
 src/kudu/util/minidump.cc                       | 10 ++-
 src/kudu/util/minidump.h                        |  3 +-
 src/kudu/util/monotime-test.cc                  |  5 ++
 src/kudu/util/monotime.cc                       | 16 ++--
 src/kudu/util/monotime.h                        |  7 +-
 src/kudu/util/mt-hdr_histogram-test.cc          |  9 ++-
 src/kudu/util/mt-metrics-test.cc                | 16 ++--
 src/kudu/util/mt-threadlocal-test.cc            | 11 ++-
 src/kudu/util/mutex.cc                          |  7 ++
 src/kudu/util/net/dns_resolver-test.cc          | 10 ++-
 src/kudu/util/net/dns_resolver.cc               |  8 +-
 src/kudu/util/net/dns_resolver.h                |  3 +-
 src/kudu/util/net/net_util-test.cc              |  8 +-
 src/kudu/util/net/net_util.cc                   | 16 ++--
 src/kudu/util/net/net_util.h                    |  2 +
 src/kudu/util/net/sockaddr.cc                   |  9 ++-
 src/kudu/util/net/sockaddr.h                    |  4 +-
 src/kudu/util/net/socket.cc                     | 11 ++-
 src/kudu/util/net/socket.h                      |  5 +-
 src/kudu/util/nvm_cache.cc                      | 22 +++---
 src/kudu/util/nvm_cache.h                       |  1 +
 src/kudu/util/object_pool-test.cc               |  3 +
 src/kudu/util/oid_generator-test.cc             |  6 +-
 src/kudu/util/oid_generator.cc                  |  4 +-
 src/kudu/util/oid_generator.h                   |  4 +-
 src/kudu/util/once-test.cc                      |  5 +-
 src/kudu/util/os-util-test.cc                   |  5 +-
 src/kudu/util/os-util.cc                        | 11 ++-
 src/kudu/util/os-util.h                         |  1 +
 src/kudu/util/path_util.cc                      | 12 ++-
 src/kudu/util/pb_util-internal.cc               |  3 +
 src/kudu/util/pb_util-internal.h                |  6 ++
 src/kudu/util/pb_util-test.cc                   | 14 +++-
 src/kudu/util/pb_util.cc                        | 27 ++++---
 src/kudu/util/pb_util.h                         | 10 ++-
 src/kudu/util/process_memory-test.cc            |  6 +-
 src/kudu/util/process_memory.cc                 | 19 +++--
 src/kudu/util/protoc-gen-insertions.cc          |  6 +-
 src/kudu/util/pstack_watcher-test.cc            | 17 ++--
 src/kudu/util/pstack_watcher.cc                 | 11 ++-
 src/kudu/util/pstack_watcher.h                  |  6 +-
 src/kudu/util/random-test.cc                    |  5 +-
 src/kudu/util/random_util-test.cc               |  6 +-
 src/kudu/util/random_util.cc                    |  5 +-
 src/kudu/util/resettable_heartbeater-test.cc    | 10 ++-
 src/kudu/util/resettable_heartbeater.cc         |  8 +-
 src/kudu/util/resettable_heartbeater.h          |  3 +-
 src/kudu/util/rle-test.cc                       | 19 +++--
 src/kudu/util/rolling_log-test.cc               | 12 ++-
 src/kudu/util/rolling_log.cc                    |  7 +-
 src/kudu/util/rolling_log.h                     |  1 +
 src/kudu/util/rw_mutex-test.cc                  |  7 +-
 src/kudu/util/rw_mutex.cc                       |  6 +-
 src/kudu/util/rw_mutex.h                        |  2 +
 src/kudu/util/rw_semaphore-test.cc              |  5 +-
 src/kudu/util/rwc_lock-test.cc                  |  6 +-
 src/kudu/util/rwc_lock.cc                       |  1 -
 src/kudu/util/rwc_lock.h                        |  2 +
 src/kudu/util/semaphore.cc                      | 10 +++
 src/kudu/util/semaphore.h                       |  3 +-
 src/kudu/util/semaphore_macosx.cc               |  3 +
 src/kudu/util/signal.cc                         |  2 +-
 src/kudu/util/slice-test.cc                     |  5 ++
 src/kudu/util/slice.cc                          |  3 +
 src/kudu/util/slice.h                           | 12 ++-
 src/kudu/util/spinlock_profiling-test.cc        |  8 +-
 src/kudu/util/spinlock_profiling.cc             |  9 ++-
 src/kudu/util/spinlock_profiling.h              |  2 +-
 src/kudu/util/stack_watchdog-test.cc            |  7 +-
 src/kudu/util/status-test.cc                    | 10 ++-
 src/kudu/util/status.cc                         |  6 +-
 src/kudu/util/status.h                          |  3 +
 src/kudu/util/status_callback.cc                |  5 ++
 src/kudu/util/string_case-test.cc               |  2 +
 src/kudu/util/string_case.cc                    |  5 +-
 src/kudu/util/striped64-test.cc                 |  9 ++-
 src/kudu/util/striped64.cc                      | 10 ++-
 src/kudu/util/striped64.h                       |  7 +-
 src/kudu/util/subprocess-test.cc                |  7 ++
 src/kudu/util/subprocess.cc                     | 12 +--
 src/kudu/util/subprocess.h                      |  4 +-
 src/kudu/util/test_graph.cc                     |  8 +-
 src/kudu/util/test_graph.h                      |  7 +-
 src/kudu/util/test_main.cc                      |  6 +-
 src/kudu/util/test_util.cc                      | 14 +++-
 src/kudu/util/test_util.h                       | 14 +++-
 src/kudu/util/thread-test.cc                    | 14 +++-
 src/kudu/util/thread.cc                         | 23 ++++--
 src/kudu/util/thread.h                          | 17 ++--
 src/kudu/util/thread_restrictions.cc            |  4 +-
 src/kudu/util/threadlocal.cc                    |  3 +
 src/kudu/util/threadpool-test.cc                | 16 +++-
 src/kudu/util/threadpool.cc                     | 12 +--
 src/kudu/util/threadpool.h                      |  8 +-
 src/kudu/util/throttler-test.cc                 |  5 +-
 src/kudu/util/throttler.cc                      |  1 +
 src/kudu/util/throttler.h                       |  3 +-
 src/kudu/util/trace-test.cc                     | 39 +++++++---
 src/kudu/util/trace.cc                          |  7 +-
 src/kudu/util/trace.h                           |  4 +
 src/kudu/util/trace_metrics.cc                  |  9 ++-
 src/kudu/util/trace_metrics.h                   |  9 ++-
 src/kudu/util/url-coding-test.cc                |  9 ++-
 src/kudu/util/url-coding.cc                     |  7 +-
 src/kudu/util/url-coding.h                      |  3 +-
 src/kudu/util/user-test.cc                      |  4 +-
 src/kudu/util/user.cc                           |  4 +-
 src/kudu/util/version_info.cc                   |  1 +
 src/kudu/util/zlib.cc                           |  5 ++
 932 files changed, 8769 insertions(+), 2819 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/benchmarks/rle.cc
----------------------------------------------------------------------
diff --git a/src/kudu/benchmarks/rle.cc b/src/kudu/benchmarks/rle.cc
index 93c514b..2d3d041 100644
--- a/src/kudu/benchmarks/rle.cc
+++ b/src/kudu/benchmarks/rle.cc
@@ -21,12 +21,17 @@
 // micro benchmark (rle-benchmark.cc).
 //
 
-#include <glog/logging.h>
+#include <cstddef>
+#include <ostream>
+
 #include <gflags/gflags.h>
+#include <glog/logging.h>
 
 #include "kudu/gutil/basictypes.h"
 #include "kudu/gutil/mathlimits.h"
 #include "kudu/util/bit-stream-utils.h"
+#include "kudu/util/bit-stream-utils.inline.h"
+#include "kudu/util/faststring.h"
 #include "kudu/util/logging.h"
 #include "kudu/util/rle-encoding.h"
 #include "kudu/util/stopwatch.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/benchmarks/tpch/line_item_tsv_importer.h
----------------------------------------------------------------------
diff --git a/src/kudu/benchmarks/tpch/line_item_tsv_importer.h b/src/kudu/benchmarks/tpch/line_item_tsv_importer.h
index 517b522..a394c18 100644
--- a/src/kudu/benchmarks/tpch/line_item_tsv_importer.h
+++ b/src/kudu/benchmarks/tpch/line_item_tsv_importer.h
@@ -17,7 +17,6 @@
 #ifndef KUDU_TPCH_LINE_ITEM_TSV_IMPORTER_H
 #define KUDU_TPCH_LINE_ITEM_TSV_IMPORTER_H
 
-#include <iostream>
 #include <fstream>
 #include <vector>
 #include <string>

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/benchmarks/tpch/rpc_line_item_dao-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/benchmarks/tpch/rpc_line_item_dao-test.cc b/src/kudu/benchmarks/tpch/rpc_line_item_dao-test.cc
index c6c161f..494360c 100644
--- a/src/kudu/benchmarks/tpch/rpc_line_item_dao-test.cc
+++ b/src/kudu/benchmarks/tpch/rpc_line_item_dao-test.cc
@@ -16,25 +16,31 @@
 // under the License.
 
 #include <algorithm>
-#include <boost/bind.hpp>
-#include <gtest/gtest.h>
-#include <gflags/gflags.h>
+#include <cstdint>
 #include <string>
 #include <vector>
 
+#include <boost/bind.hpp>
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
 #include "kudu/benchmarks/tpch/rpc_line_item_dao.h"
 #include "kudu/benchmarks/tpch/tpch-schemas.h"
+#include "kudu/client/row_result.h"
 #include "kudu/common/partial_row.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/stringprintf.h"
 #include "kudu/integration-tests/internal_mini_cluster.h"
 #include "kudu/master/mini_master.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 namespace kudu {
 
 using client::KuduRowResult;
-using client::KuduSchema;
 using std::string;
 using std::vector;
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/benchmarks/tpch/rpc_line_item_dao.cc
----------------------------------------------------------------------
diff --git a/src/kudu/benchmarks/tpch/rpc_line_item_dao.cc b/src/kudu/benchmarks/tpch/rpc_line_item_dao.cc
index e0574ae..b575734 100644
--- a/src/kudu/benchmarks/tpch/rpc_line_item_dao.cc
+++ b/src/kudu/benchmarks/tpch/rpc_line_item_dao.cc
@@ -15,23 +15,28 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <boost/function.hpp>
-#include <glog/logging.h>
+#include "kudu/benchmarks/tpch/rpc_line_item_dao.h"
+
+#include <ostream>
 #include <vector>
 #include <utility>
 
-#include "kudu/benchmarks/tpch/rpc_line_item_dao.h"
+#include <boost/function.hpp>
+#include <gflags/gflags.h>
+#include <glog/logging.h>
+
+#include "kudu/benchmarks/tpch/tpch-schemas.h"
 #include "kudu/client/callbacks.h"
 #include "kudu/client/client.h"
-#include "kudu/client/meta_cache.h"
+#include "kudu/client/scan_predicate.h"
+#include "kudu/client/schema.h"
 #include "kudu/client/value.h"
 #include "kudu/client/write_op.h"
 #include "kudu/gutil/gscoped_ptr.h"
-#include "kudu/gutil/map-util.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/stl_util.h"
-#include "kudu/util/coding.h"
-#include "kudu/util/locks.h"
 #include "kudu/util/monotime.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
 
 DEFINE_bool(tpch_cache_blocks_when_scanning, true,
@@ -42,6 +47,8 @@ using std::vector;
 
 namespace kudu {
 
+class KuduPartialRow;
+
 using client::KuduInsert;
 using client::KuduClient;
 using client::KuduClientBuilder;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/benchmarks/tpch/rpc_line_item_dao.h
----------------------------------------------------------------------
diff --git a/src/kudu/benchmarks/tpch/rpc_line_item_dao.h b/src/kudu/benchmarks/tpch/rpc_line_item_dao.h
index 1da2f84..8fb2ad4 100644
--- a/src/kudu/benchmarks/tpch/rpc_line_item_dao.h
+++ b/src/kudu/benchmarks/tpch/rpc_line_item_dao.h
@@ -17,21 +17,32 @@
 #ifndef KUDU_TPCH_RPC_LINE_ITEM_DAO_H
 #define KUDU_TPCH_RPC_LINE_ITEM_DAO_H
 
-#include <boost/function.hpp>
-#include <set>
+#include <cstdint>
 #include <string>
-#include <utility>
 #include <vector>
 
-#include "kudu/benchmarks/tpch/tpch-schemas.h"
 #include "kudu/client/client.h"
+#include "kudu/client/shared_ptr.h"
 #include "kudu/client/row_result.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/util/locks.h"
 #include "kudu/util/monotime.h"
 #include "kudu/util/semaphore.h"
 
+namespace boost {
+template <typename Signature>
+class function;
+} // namespace boost
+
 namespace kudu {
 
+namespace client {
+class KuduPredicate;
+}
+
+class KuduPartialRow;
+class Slice;
+
 class RpcLineItemDAO {
  public:
   class Scanner;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/benchmarks/tpch/tpch1.cc
----------------------------------------------------------------------
diff --git a/src/kudu/benchmarks/tpch/tpch1.cc b/src/kudu/benchmarks/tpch/tpch1.cc
index 816afc9..b87f969 100644
--- a/src/kudu/benchmarks/tpch/tpch1.cc
+++ b/src/kudu/benchmarks/tpch/tpch1.cc
@@ -56,25 +56,33 @@
 // 'N','O',74476040,111701729697.74,106118230307.6,110367043872.5,25.5,38249.1,0,2920374
 // 'R','F',37719753,56568041380.90,53741292684.6,55889619119.8,25.5,38250.9,0.1,1478870
 // ====
-#include <boost/bind.hpp>
+
+#include <cstdint>
+#include <cstdlib>
+#include <ostream>
+#include <string>
 #include <unordered_map>
-#include <stdlib.h>
+#include <utility>
+#include <vector>
 
+#include <boost/bind.hpp>
+#include <gflags/gflags.h>
 #include <glog/logging.h>
 
-#include "kudu/benchmarks/tpch/tpch-schemas.h"
-#include "kudu/benchmarks/tpch/rpc_line_item_dao.h"
 #include "kudu/benchmarks/tpch/line_item_tsv_importer.h"
+#include "kudu/benchmarks/tpch/rpc_line_item_dao.h"
+#include "kudu/client/row_result.h"
 #include "kudu/codegen/compilation_manager.h"
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/hash/city.h"
-#include "kudu/gutil/strings/numbers.h"
+#include "kudu/gutil/stringprintf.h"
 #include "kudu/integration-tests/internal_mini_cluster.h"
 #include "kudu/master/mini_master.h"
 #include "kudu/util/env.h"
 #include "kudu/util/flags.h"
 #include "kudu/util/logging.h"
 #include "kudu/util/slice.h"
+#include "kudu/util/status.h"
 #include "kudu/util/stopwatch.h"
 
 DEFINE_string(tpch_path_to_data, "/tmp/lineitem.tbl",
@@ -101,9 +109,7 @@ using std::vector;
 
 namespace kudu {
 
-using client::KuduColumnSchema;
 using client::KuduRowResult;
-using client::KuduSchema;
 
 struct Result {
   int32_t l_quantity;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/benchmarks/tpch/tpch_real_world.cc
----------------------------------------------------------------------
diff --git a/src/kudu/benchmarks/tpch/tpch_real_world.cc b/src/kudu/benchmarks/tpch/tpch_real_world.cc
index 291e721..b3b160f 100644
--- a/src/kudu/benchmarks/tpch/tpch_real_world.cc
+++ b/src/kudu/benchmarks/tpch/tpch_real_world.cc
@@ -40,26 +40,46 @@
 // TODO Make the inserts multi-threaded. See Kudu-629 for the technique.
 
 #include <stdlib.h>
-#include <sys/types.h>
 #include <sys/stat.h>
+
+#include <algorithm>
+#include <cerrno>
+#include <cinttypes>
 #include <csignal>
+#include <cstdint>
+#include <iostream>
+#include <string>
+#include <type_traits>
+#include <vector>
 
 #include <boost/bind.hpp>
+#include <boost/function.hpp>
+#include <gflags/gflags.h>
 #include <glog/logging.h>
 
 #include "kudu/benchmarks/tpch/line_item_tsv_importer.h"
 #include "kudu/benchmarks/tpch/rpc_line_item_dao.h"
 #include "kudu/benchmarks/tpch/tpch-schemas.h"
+#include "kudu/client/row_result.h"
+#include "kudu/client/schema.h"
+#include "kudu/common/partial_row.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/move.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/stl_util.h"
+#include "kudu/gutil/stringprintf.h"
 #include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/integration-tests/external_mini_cluster.h"
 #include "kudu/util/atomic.h"
+#include "kudu/util/countdown_latch.h"
 #include "kudu/util/env.h"
 #include "kudu/util/errno.h"
 #include "kudu/util/flags.h"
 #include "kudu/util/logging.h"
 #include "kudu/util/monotime.h"
+#include "kudu/util/net/net_util.h"
+#include "kudu/util/status.h"
 #include "kudu/util/stopwatch.h"
 #include "kudu/util/subprocess.h"
 #include "kudu/util/thread.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/benchmarks/wal_hiccup.cc
----------------------------------------------------------------------
diff --git a/src/kudu/benchmarks/wal_hiccup.cc b/src/kudu/benchmarks/wal_hiccup.cc
index faf5e5d..9dc3eec 100644
--- a/src/kudu/benchmarks/wal_hiccup.cc
+++ b/src/kudu/benchmarks/wal_hiccup.cc
@@ -15,20 +15,29 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <fcntl.h>
+#include <unistd.h>
+
 #include <algorithm>
+#include <cstdint>
+#include <cstring>
+#include <ostream>
+#include <string>
 #include <vector>
 
-#include <fcntl.h>
-
 #include <gflags/gflags.h>
 #include <glog/logging.h>
-#include "kudu/gutil/strings/substitute.h"
+
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/stl_util.h"
+#include "kudu/gutil/strings/substitute.h"
 #include "kudu/gutil/walltime.h"
 #include "kudu/util/countdown_latch.h"
 #include "kudu/util/hdr_histogram.h"
 #include "kudu/util/logging.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/path_util.h"
+#include "kudu/util/status.h"
 #include "kudu/util/stopwatch.h"
 #include "kudu/util/thread.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/binary_dict_block.cc
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/binary_dict_block.cc b/src/kudu/cfile/binary_dict_block.cc
index 6189aec..9e96163 100644
--- a/src/kudu/cfile/binary_dict_block.cc
+++ b/src/kudu/cfile/binary_dict_block.cc
@@ -17,22 +17,33 @@
 
 #include "kudu/cfile/binary_dict_block.h"
 
-#include <algorithm>
 #include <limits>
+#include <ostream>
+#include <string>
+#include <vector>
 
 #include <glog/logging.h>
 
-#include "kudu/cfile/bshuf_block.h"
+#include "kudu/cfile/block_pointer.h"
+#include "kudu/cfile/cfile.pb.h"
 #include "kudu/cfile/cfile_reader.h"
 #include "kudu/cfile/cfile_util.h"
 #include "kudu/cfile/cfile_writer.h"
+#include "kudu/cfile/bshuf_block.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/rowblock.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/types.h"
 #include "kudu/gutil/casts.h"
-#include "kudu/gutil/stringprintf.h"
-#include "kudu/util/coding-inl.h"
+#include "kudu/gutil/map-util.h"
+#include "kudu/gutil/strings/stringpiece.h"
+#include "kudu/gutil/strings/substitute.h"
+#include "kudu/util/bitmap.h"
 #include "kudu/util/coding.h"
-#include "kudu/util/group_varint-inl.h"
-#include "kudu/util/hexdump.h"
+#include "kudu/util/coding-inl.h"
 #include "kudu/util/memory/arena.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/binary_dict_block.h
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/binary_dict_block.h b/src/kudu/cfile/binary_dict_block.h
index 39c570e..796f20e 100644
--- a/src/kudu/cfile/binary_dict_block.h
+++ b/src/kudu/cfile/binary_dict_block.h
@@ -36,25 +36,40 @@
 #ifndef KUDU_CFILE_BINARY_DICT_BLOCK_H
 #define KUDU_CFILE_BINARY_DICT_BLOCK_H
 
-#include <string>
-#include <vector>
+#include <sys/types.h>
+
+#include <cstddef>
+#include <cstdint>
 
 #include <sparsehash/dense_hash_map>
 
-#include "kudu/cfile/binary_plain_block.h"
+#include "kudu/common/rowid.h"
 #include "kudu/cfile/block_encodings.h"
-#include "kudu/cfile/block_pointer.h"
-#include "kudu/cfile/cfile.pb.h"
+#include "kudu/cfile/binary_plain_block.h"
+#include "kudu/gutil/casts.h"
 #include "kudu/gutil/gscoped_ptr.h"
-#include "kudu/gutil/map-util.h"
+#include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/stringpiece.h"
 #include "kudu/util/faststring.h"
 #include "kudu/util/memory/arena.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
+
+template <class X>
+struct GoodFastHash;
 
 namespace kudu {
-class Arena;
+
+class ColumnDataView;
+class ColumnMaterializationContext;
+class SelectionVectorView;
+
 namespace cfile {
 
+class CFileFooterPB;
+class CFileWriter;
+
 struct WriterOptions;
 
 // Header Mode type
@@ -180,7 +195,8 @@ class BinaryDictBlockDecoder final : public BlockDecoder {
 } // namespace kudu
 
 // Defined for tight_enum_test_cast<> -- has to be defined outside of any namespace.
-MAKE_ENUM_LIMITS(kudu::cfile::DictEncodingMode, kudu::cfile::DictEncodingMode_min,
+MAKE_ENUM_LIMITS(kudu::cfile::DictEncodingMode,
+                 kudu::cfile::DictEncodingMode_min,
                  kudu::cfile::DictEncodingMode_max);
 
 #endif // KUDU_CFILE_BINARY_DICT_BLOCK_H

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/binary_plain_block.cc
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/binary_plain_block.cc b/src/kudu/cfile/binary_plain_block.cc
index e13a952..d8b5e68 100644
--- a/src/kudu/cfile/binary_plain_block.cc
+++ b/src/kudu/cfile/binary_plain_block.cc
@@ -18,13 +18,22 @@
 #include "kudu/cfile/binary_plain_block.h"
 
 #include <algorithm>
+#include <cstdint>
+#include <ostream>
+#include <string>
+
 #include <glog/logging.h>
 
 #include "kudu/cfile/cfile_util.h"
-#include "kudu/cfile/cfile_writer.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/rowblock.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/types.h"
 #include "kudu/gutil/stringprintf.h"
+#include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/coding.h"
 #include "kudu/util/coding-inl.h"
 #include "kudu/util/group_varint-inl.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/binary_plain_block.h
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/binary_plain_block.h b/src/kudu/cfile/binary_plain_block.h
index 2edba9d..5a9e203 100644
--- a/src/kudu/cfile/binary_plain_block.h
+++ b/src/kudu/cfile/binary_plain_block.h
@@ -29,12 +29,28 @@
 #ifndef KUDU_CFILE_BINARY_PLAIN_BLOCK_H
 #define KUDU_CFILE_BINARY_PLAIN_BLOCK_H
 
+#include <sys/types.h>
+
+#include <cstddef>
+#include <cstdint>
+#include <cstring>
 #include <vector>
 
+#include <glog/logging.h>
+
 #include "kudu/cfile/block_encodings.h"
+#include "kudu/common/rowid.h"
+#include "kudu/gutil/port.h"
 #include "kudu/util/faststring.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
+
+class ColumnDataView;
+class ColumnMaterializationContext;
+class SelectionVectorView;
+
 namespace cfile {
 
 struct WriterOptions;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/binary_prefix_block.cc
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/binary_prefix_block.cc b/src/kudu/cfile/binary_prefix_block.cc
index 0895f36..5157a45 100644
--- a/src/kudu/cfile/binary_prefix_block.cc
+++ b/src/kudu/cfile/binary_prefix_block.cc
@@ -18,17 +18,28 @@
 #include "kudu/cfile/binary_prefix_block.h"
 
 #include <algorithm>
+#include <cstring>
+#include <cstdint>
+#include <ostream>
 #include <string>
 
+#include <glog/logging.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/schema.h"
+#include "kudu/common/types.h"
 #include "kudu/gutil/port.h"
+#include "kudu/gutil/stringprintf.h"
+#include "kudu/gutil/strings/fastmem.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/coding.h"
 #include "kudu/util/coding-inl.h"
 #include "kudu/util/group_varint-inl.h"
 #include "kudu/util/hexdump.h"
+#include "kudu/util/logging.h"
+#include "kudu/util/memory/arena.h"
 #include "kudu/util/slice.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/binary_prefix_block.h
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/binary_prefix_block.h b/src/kudu/cfile/binary_prefix_block.h
index a330a09..2f51650 100644
--- a/src/kudu/cfile/binary_prefix_block.h
+++ b/src/kudu/cfile/binary_prefix_block.h
@@ -17,10 +17,20 @@
 #ifndef KUDU_CFILE_BINARY_PREFIX_BLOCK_H
 #define KUDU_CFILE_BINARY_PREFIX_BLOCK_H
 
+#include <sys/types.h>
+
+#include <cstddef>
+#include <cstdint>
 #include <vector>
 
+#include <glog/logging.h>
+
 #include "kudu/cfile/block_encodings.h"
 #include "kudu/common/rowid.h"
+#include "kudu/gutil/port.h"
+#include "kudu/util/faststring.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/block_cache-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/block_cache-test.cc b/src/kudu/cfile/block_cache-test.cc
index b490636..86acbef 100644
--- a/src/kudu/cfile/block_cache-test.cc
+++ b/src/kudu/cfile/block_cache-test.cc
@@ -15,6 +15,8 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <cstring>
+
 #include <gtest/gtest.h>
 
 #include "kudu/cfile/block_cache.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/block_cache.cc
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/block_cache.cc b/src/kudu/cfile/block_cache.cc
index 3ac3bd6..9a4f034 100644
--- a/src/kudu/cfile/block_cache.cc
+++ b/src/kudu/cfile/block_cache.cc
@@ -15,13 +15,14 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <ostream>
+#include <string>
+
 #include <gflags/gflags.h>
 
 #include "kudu/cfile/block_cache.h"
-#include "kudu/gutil/port.h"
 #include "kudu/util/cache.h"
 #include "kudu/util/flag_tags.h"
-#include "kudu/util/metrics.h"
 #include "kudu/util/slice.h"
 #include "kudu/util/string_case.h"
 
@@ -35,6 +36,8 @@ DEFINE_string(block_cache_type, "DRAM",
               "in a memory-mapped file using the NVML library.");
 TAG_FLAG(block_cache_type, experimental);
 
+template <class T> class scoped_refptr;
+
 namespace kudu {
 
 class MetricEntity;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/block_cache.h
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/block_cache.h b/src/kudu/cfile/block_cache.h
index 42ce6ee..6a2e8b1 100644
--- a/src/kudu/cfile/block_cache.h
+++ b/src/kudu/cfile/block_cache.h
@@ -18,19 +18,27 @@
 #define KUDU_CFILE_BLOCK_CACHE_H
 
 #include <algorithm>
+#include <cstddef>
+#include <cstdint>
+
+#include <gflags/gflags_declare.h>
 #include <glog/logging.h>
 
 #include "kudu/fs/block_id.h"
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/singleton.h"
 #include "kudu/util/cache.h"
+#include "kudu/util/slice.h"
 
 DECLARE_string(block_cache_type);
 
+template <class T> class scoped_refptr;
+
 namespace kudu {
 
-class MetricRegistry;
+class MetricEntity;
 
 namespace cfile {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/block_compression.cc
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/block_compression.cc b/src/kudu/cfile/block_compression.cc
index f949967..e7bb5df 100644
--- a/src/kudu/cfile/block_compression.cc
+++ b/src/kudu/cfile/block_compression.cc
@@ -15,14 +15,17 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include "kudu/cfile/block_compression.h"
+
+#include <cstring>
+
 #include <glog/logging.h>
-#include <algorithm>
 #include <gflags/gflags.h>
 
-#include "kudu/cfile/block_compression.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/util/coding-inl.h"
 #include "kudu/util/coding.h"
+#include "kudu/util/coding-inl.h"
 #include "kudu/util/compression/compression_codec.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/logging.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/block_compression.h
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/block_compression.h b/src/kudu/cfile/block_compression.h
index 8a56601..76c05a0 100644
--- a/src/kudu/cfile/block_compression.h
+++ b/src/kudu/cfile/block_compression.h
@@ -17,9 +17,13 @@
 #ifndef KUDU_CFILE_BLOCK_COMPRESSION_H
 #define KUDU_CFILE_BLOCK_COMPRESSION_H
 
-#include <memory>
+#include <cstddef>
+#include <cstdint>
+#include <ostream>
 #include <vector>
 
+#include <glog/logging.h>
+
 #include "kudu/gutil/macros.h"
 #include "kudu/util/faststring.h"
 #include "kudu/util/slice.h"
@@ -52,7 +56,6 @@ namespace cfile {
 //    not be executed.
 // <compressed data>
 
-
 // Builder for writing compressed blocks.
 // Always writes v2 format.
 class CompressedBlockBuilder {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/bloomfile-test-base.h
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/bloomfile-test-base.h b/src/kudu/cfile/bloomfile-test-base.h
index ea88136..cf45ce4 100644
--- a/src/kudu/cfile/bloomfile-test-base.h
+++ b/src/kudu/cfile/bloomfile-test-base.h
@@ -27,6 +27,7 @@
 #include "kudu/util/random.h"
 #include "kudu/util/random_util.h"
 #include "kudu/util/stopwatch.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 #include "kudu/util/thread.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/bloomfile-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/bloomfile-test.cc b/src/kudu/cfile/bloomfile-test.cc
index 6b385a9..34aead3 100644
--- a/src/kudu/cfile/bloomfile-test.cc
+++ b/src/kudu/cfile/bloomfile-test.cc
@@ -15,8 +15,28 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <algorithm>
+#include <cstdint>
+#include <cstdlib>
+#include <memory>
+#include <ostream>
+
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
 #include "kudu/cfile/bloomfile-test-base.h"
+#include "kudu/cfile/bloomfile.h"
+#include "kudu/cfile/cfile_util.h"
+#include "kudu/fs/block_manager.h"
 #include "kudu/fs/fs-test-util.h"
+#include "kudu/fs/fs_manager.h"
+#include "kudu/gutil/endian.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/integral_types.h"
+#include "kudu/util/bloom_filter.h"
+#include "kudu/util/mem_tracker.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/test_macros.h"
 
 using std::shared_ptr;
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/bloomfile.cc
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/bloomfile.cc b/src/kudu/cfile/bloomfile.cc
index 5fa1665..520a743 100644
--- a/src/kudu/cfile/bloomfile.cc
+++ b/src/kudu/cfile/bloomfile.cc
@@ -15,18 +15,35 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <mutex>
-#include <sched.h>
+#include <algorithm>
+#include <cstdint>
+#include <ostream>
 #include <string>
-#include <unistd.h>
+#include <type_traits>
+#include <vector>
 
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
+
+#include "kudu/cfile/block_handle.h"
+#include "kudu/cfile/block_pointer.h"
 #include "kudu/cfile/bloomfile.h"
+#include "kudu/cfile/cfile.pb.h"
+#include "kudu/cfile/cfile_util.h"
 #include "kudu/cfile/cfile_writer.h"
+#include "kudu/cfile/index_btree.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/types.h"
+#include "kudu/fs/block_manager.h"
 #include "kudu/gutil/atomicops.h"
+#include "kudu/gutil/move.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/stringprintf.h"
-#include "kudu/gutil/sysinfo.h"
 #include "kudu/util/coding.h"
+#include "kudu/util/compression/compression.pb.h"
 #include "kudu/util/hexdump.h"
+#include "kudu/util/logging.h"
 #include "kudu/util/malloc.h"
 #include "kudu/util/pb_util.h"
 #include "kudu/util/threadlocal_cache.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/bloomfile.h
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/bloomfile.h b/src/kudu/cfile/bloomfile.h
index 5de88d7..a7a1f8c 100644
--- a/src/kudu/cfile/bloomfile.h
+++ b/src/kudu/cfile/bloomfile.h
@@ -17,22 +17,34 @@
 #ifndef KUDU_CFILE_BLOOMFILE_H
 #define KUDU_CFILE_BLOOMFILE_H
 
+#include <cstddef>
+#include <cstdint>
 #include <memory>
-#include <string>
-#include <vector>
 
 #include "kudu/cfile/cfile_reader.h"
 #include "kudu/cfile/cfile_writer.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/util/bloom_filter.h"
 #include "kudu/util/faststring.h"
 #include "kudu/util/mem_tracker.h"
 #include "kudu/util/once.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
+
+namespace fs {
+class ReadableBlock;
+class ScopedWritableBlockCloser;
+class WritableBlock;
+}
+
 namespace cfile {
 
+class BloomBlockHeaderPB;
+struct ReaderOptions;
+
 class BloomFileWriter {
  public:
   BloomFileWriter(std::unique_ptr<fs::WritableBlock> block,

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/bshuf_block.h
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/bshuf_block.h b/src/kudu/cfile/bshuf_block.h
index 5efa62d..ea6df42 100644
--- a/src/kudu/cfile/bshuf_block.h
+++ b/src/kudu/cfile/bshuf_block.h
@@ -23,18 +23,31 @@
 #ifndef KUDU_CFILE_BSHUF_BLOCK_H
 #define KUDU_CFILE_BSHUF_BLOCK_H
 
+#include <sys/types.h>
+
 #include <algorithm>
-#include <stdint.h>
+#include <cstring>
+#include <cstdint>
+#include <ostream>
+
+#include <glog/logging.h>
 
 #include "kudu/cfile/bitshuffle_arch_wrapper.h"
 #include "kudu/cfile/block_encodings.h"
 #include "kudu/cfile/cfile_util.h"
 #include "kudu/common/columnblock.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/rowid.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/types.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/alignment.h"
 #include "kudu/util/coding.h"
 #include "kudu/util/coding-inl.h"
-#include "kudu/util/hexdump.h"
+#include "kudu/util/faststring.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 namespace cfile {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/cfile-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/cfile-test.cc b/src/kudu/cfile/cfile-test.cc
index 4afb5a4..4ab605e 100644
--- a/src/kudu/cfile/cfile-test.cc
+++ b/src/kudu/cfile/cfile-test.cc
@@ -15,25 +15,63 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <gtest/gtest.h>
+#include <algorithm>
+#include <cstdint>
+#include <cstdlib>
+#include <cstring>
+#include <ctime>
+#include <functional>
+#include <memory>
+#include <ostream>
+#include <string>
+#include <vector>
+
+#include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
 #include <glog/logging.h>
-#include <stdlib.h>
-#include <list>
+#include <gtest/gtest.h>
 
+#include "kudu/cfile/block_cache.h"
+#include "kudu/cfile/block_handle.h"
+#include "kudu/cfile/block_pointer.h"
 #include "kudu/cfile/cfile-test-base.h"
 #include "kudu/cfile/cfile.pb.h"
 #include "kudu/cfile/cfile_reader.h"
+#include "kudu/cfile/cfile_util.h"
 #include "kudu/cfile/cfile_writer.h"
-#include "kudu/cfile/index_block.h"
 #include "kudu/cfile/index_btree.h"
+#include "kudu/cfile/type_encodings.h"
+#include "kudu/common/column_materialization_context.h"
 #include "kudu/common/columnblock.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/encoded_key.h"
+#include "kudu/common/rowblock.h"
+#include "kudu/common/rowid.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/types.h"
+#include "kudu/fs/block_id.h"
+#include "kudu/fs/block_manager.h"
 #include "kudu/fs/fs-test-util.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/gutil/singleton.h"
 #include "kudu/gutil/stringprintf.h"
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/util/bitmap.h"
+#include "kudu/util/cache.h"
+#include "kudu/util/compression/compression.pb.h"
+#include "kudu/util/env.h"
+#include "kudu/util/mem_tracker.h"
+#include "kudu/util/memory/arena.h"
 #include "kudu/util/metrics.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"
 
 DECLARE_string(block_cache_type);
 DECLARE_string(cfile_do_on_finish);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/cfile_reader.cc
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/cfile_reader.cc b/src/kudu/cfile/cfile_reader.cc
index 0036ae2..86c72ca 100644
--- a/src/kudu/cfile/cfile_reader.cc
+++ b/src/kudu/cfile/cfile_reader.cc
@@ -17,28 +17,47 @@
 
 #include "kudu/cfile/cfile_reader.h"
 
-#include <glog/logging.h>
-
 #include <algorithm>
+#include <cstring>
 #include <memory>
+#include <ostream>
+
+#include <gflags/gflags.h>
+#include <glog/logging.h>
 
 #include "kudu/cfile/binary_plain_block.h"
 #include "kudu/cfile/block_cache.h"
+#include "kudu/cfile/block_compression.h"
 #include "kudu/cfile/block_handle.h"
 #include "kudu/cfile/block_pointer.h"
 #include "kudu/cfile/cfile.pb.h"
-#include "kudu/cfile/cfile_writer.h"
-#include "kudu/cfile/index_block.h"
+#include "kudu/cfile/cfile_util.h"
+#include "kudu/cfile/cfile_writer.h" // for kMagicString
 #include "kudu/cfile/index_btree.h"
+#include "kudu/cfile/type_encodings.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/encoded_key.h"
+#include "kudu/common/key_encoder.h"
+#include "kudu/common/rowblock.h"
+#include "kudu/common/types.h"
+#include "kudu/gutil/basictypes.h"
 #include "kudu/gutil/gscoped_ptr.h"
-#include "kudu/gutil/mathlimits.h"
+#include "kudu/gutil/move.h"
+#include "kudu/gutil/stringprintf.h"
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/util/bitmap.h"
+#include "kudu/util/cache.h"
 #include "kudu/util/coding.h"
 #include "kudu/util/compression/compression_codec.h"
 #include "kudu/util/crc.h"
 #include "kudu/util/debug/trace_event.h"
 #include "kudu/util/flag_tags.h"
+#include "kudu/util/logging.h"
 #include "kudu/util/malloc.h"
+#include "kudu/util/memory/arena.h"
 #include "kudu/util/memory/overwrite.h"
 #include "kudu/util/object_pool.h"
 #include "kudu/util/pb_util.h"


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

Posted by al...@apache.org.
http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/memrowset-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/memrowset-test.cc b/src/kudu/tablet/memrowset-test.cc
index 8df2889..881a300 100644
--- a/src/kudu/tablet/memrowset-test.cc
+++ b/src/kudu/tablet/memrowset-test.cc
@@ -15,19 +15,44 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <cstdint>
+#include <cstdio>
+#include <memory>
+#include <ostream>
+#include <string>
+#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/common.pb.h"
 #include "kudu/common/row.h"
-#include "kudu/common/scan_spec.h"
+#include "kudu/common/row_changelist.h"
+#include "kudu/common/rowblock.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/gutil/gscoped_ptr.h"
+#include "kudu/gutil/ref_counted.h"
+#include "kudu/gutil/stringprintf.h"
 #include "kudu/tablet/memrowset.h"
+#include "kudu/tablet/mvcc.h"
+#include "kudu/tablet/rowset.h"
 #include "kudu/tablet/tablet-test-util.h"
+#include "kudu/tablet/tablet.pb.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"
 
 DEFINE_int32(roundtrip_num_rows, 10000,
              "Number of rows to use for the round-trip test");

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/memrowset.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/memrowset.cc b/src/kudu/tablet/memrowset.cc
index f113eff..61130e7 100644
--- a/src/kudu/tablet/memrowset.cc
+++ b/src/kudu/tablet/memrowset.cc
@@ -19,6 +19,8 @@
 
 #include <memory>
 #include <string>
+#include <type_traits>
+#include <utility>
 #include <vector>
 
 #include <gflags/gflags.h>
@@ -26,22 +28,29 @@
 
 #include "kudu/codegen/compilation_manager.h"
 #include "kudu/codegen/row_projector.h"
+#include "kudu/common/columnblock.h"
 #include "kudu/common/common.pb.h"
-#include "kudu/common/generic_iterators.h"
+#include "kudu/common/encoded_key.h"
 #include "kudu/common/row.h"
-#include "kudu/consensus/consensus.pb.h"
+#include "kudu/common/row_changelist.h"
+#include "kudu/common/rowblock.h"
+#include "kudu/common/scan_spec.h"
 #include "kudu/consensus/log_anchor_registry.h"
+#include "kudu/consensus/opid.pb.h"
 #include "kudu/gutil/dynamic_annotations.h"
+#include "kudu/gutil/move.h"
+#include "kudu/gutil/strings/substitute.h"
 #include "kudu/tablet/compaction.h"
+#include "kudu/tablet/mutation.h"
+#include "kudu/tablet/tablet.pb.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/mem_tracker.h"
-#include "kudu/util/memory/overwrite.h"
+#include "kudu/util/memory/memory.h"
 
 DEFINE_bool(mrs_use_codegen, true, "whether the memrowset should use code "
             "generation for iteration");
 TAG_FLAG(mrs_use_codegen, hidden);
 
-using std::pair;
 using std::shared_ptr;
 using std::string;
 using std::vector;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/memrowset.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/memrowset.h b/src/kudu/tablet/memrowset.h
index fd827a3..5c15851 100644
--- a/src/kudu/tablet/memrowset.h
+++ b/src/kudu/tablet/memrowset.h
@@ -17,33 +17,52 @@
 #ifndef KUDU_TABLET_MEMROWSET_H
 #define KUDU_TABLET_MEMROWSET_H
 
+#include <cstdint>
+#include <cstring>
 #include <memory>
 #include <mutex>
+#include <ostream>
 #include <string>
 #include <vector>
 
-#include <boost/optional/optional_fwd.hpp>
+#include <boost/optional/optional.hpp>
+#include <glog/logging.h>
 
-#include "kudu/common/rowblock.h"
-#include "kudu/common/scan_spec.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/iterator.h"
+#include "kudu/common/row.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/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/mutation.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/util/mem_tracker.h"
+#include "kudu/util/faststring.h"
 #include "kudu/util/memory/arena.h"
-#include "kudu/util/memory/memory.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
 
 class MemTracker;
+class MemoryTrackingBufferAllocator;
+class RowBlock;
+class RowBlockRow;
+class RowChangeList;
+class ScanSpec;
+struct IteratorStats;
+
+namespace consensus {
+class OpId;
+}
 
 namespace tablet {
-
 //
 // Implementation notes:
 // --------------------------
@@ -59,7 +78,10 @@ namespace tablet {
 // NOTE: all allocations done by the MemRowSet are done inside its associated
 // thread-safe arena, and then freed in bulk when the MemRowSet is destructed.
 
+class CompactionInput;
 class MemRowSet;
+class Mutation;
+class OperationResultPB;
 
 // The value stored in the CBTree for a single row.
 class MRSRow {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/metadata-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/metadata-test.cc b/src/kudu/tablet/metadata-test.cc
index 6ec3901..cf419ec 100644
--- a/src/kudu/tablet/metadata-test.cc
+++ b/src/kudu/tablet/metadata-test.cc
@@ -15,16 +15,20 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <gtest/gtest.h>
 #include <string>
 #include <vector>
 
-#include "kudu/common/schema.h"
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
+#include "kudu/fs/block_id.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/ref_counted.h"
+#include "kudu/gutil/strings/substitute.h"
 #include "kudu/tablet/rowset_metadata.h"
 #include "kudu/tablet/tablet_metadata.h"
-#include "kudu/gutil/strings/join.h"
-#include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 using std::vector;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/mock-rowsets.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/mock-rowsets.h b/src/kudu/tablet/mock-rowsets.h
index 07736e0..62deb55 100644
--- a/src/kudu/tablet/mock-rowsets.h
+++ b/src/kudu/tablet/mock-rowsets.h
@@ -22,6 +22,7 @@
 #include <string>
 #include <vector>
 
+#include "kudu/common/timestamp.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/tablet/rowset.h"
 #include "kudu/tablet/rowset_metadata.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/mt-diskrowset-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/mt-diskrowset-test.cc b/src/kudu/tablet/mt-diskrowset-test.cc
index 348f004..12906dd 100644
--- a/src/kudu/tablet/mt-diskrowset-test.cc
+++ b/src/kudu/tablet/mt-diskrowset-test.cc
@@ -15,10 +15,21 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <cstdint>
 #include <memory>
 #include <thread>
+#include <unordered_set>
+#include <vector>
+
+#include <gflags/gflags.h>
+#include <glog/logging.h>
+#include <gtest/gtest.h>
 
 #include "kudu/tablet/diskrowset-test-base.h"
+#include "kudu/tablet/diskrowset.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
+#include "kudu/util/test_util.h"
 
 DEFINE_int32(num_threads, 2, "Number of threads to test");
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/mt-rowset_delta_compaction-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/mt-rowset_delta_compaction-test.cc b/src/kudu/tablet/mt-rowset_delta_compaction-test.cc
index 21d2d80..7e13585 100644
--- a/src/kudu/tablet/mt-rowset_delta_compaction-test.cc
+++ b/src/kudu/tablet/mt-rowset_delta_compaction-test.cc
@@ -15,14 +15,34 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <cstddef>
+#include <cstdint>
 #include <memory>
+#include <vector>
 
+#include <gflags/gflags.h>
+#include <gtest/gtest.h>
+
+#include "kudu/common/common.pb.h"
+#include "kudu/common/iterator.h"
+#include "kudu/common/rowblock.h"
+#include "kudu/common/schema.h"
 #include "kudu/gutil/atomicops.h"
-#include "kudu/gutil/stringprintf.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/gutil/walltime.h"
-#include "kudu/util/thread.h"
 #include "kudu/tablet/diskrowset-test-base.h"
+#include "kudu/tablet/diskrowset.h"
+#include "kudu/tablet/mvcc.h"
+#include "kudu/tablet/tablet.pb.h"
+#include "kudu/util/locks.h"
+#include "kudu/util/logging.h"
+#include "kudu/util/memory/arena.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
+#include "kudu/util/test_util.h"
+#include "kudu/util/thread.h"
 
 enum {
   kDefaultNumSecondsPerThread = 1,

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/mt-tablet-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/mt-tablet-test.cc b/src/kudu/tablet/mt-tablet-test.cc
index bb6af9a..66194c4 100644
--- a/src/kudu/tablet/mt-tablet-test.cc
+++ b/src/kudu/tablet/mt-tablet-test.cc
@@ -15,17 +15,40 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <cstdint>
+#include <cstdlib>
+#include <memory>
+#include <ostream>
+#include <string>
+#include <vector>
+
 #include <gflags/gflags.h>
+#include <glog/logging.h>
 #include <gtest/gtest.h>
-#include <memory>
 
 #include "kudu/codegen/compilation_manager.h"
-#include "kudu/gutil/macros.h"
+#include "kudu/common/columnblock.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/iterator.h"
+#include "kudu/common/partial_row.h"
+#include "kudu/common/rowblock.h"
+#include "kudu/common/rowid.h"
+#include "kudu/common/schema.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/tablet/local_tablet_writer.h"
+#include "kudu/tablet/rowset.h"
 #include "kudu/tablet/tablet-test-base.h"
+#include "kudu/tablet/tablet.h"
 #include "kudu/util/countdown_latch.h"
+#include "kudu/util/faststring.h"
+#include "kudu/util/memory/arena.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/status.h"
+#include "kudu/util/stopwatch.h"
 #include "kudu/util/test_graph.h"
+#include "kudu/util/test_util.h"
 #include "kudu/util/thread.h"
 
 DECLARE_int32(tablet_history_max_age_sec);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/multi_column_writer.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/multi_column_writer.cc b/src/kudu/tablet/multi_column_writer.cc
index 8b01048..56bfed1 100644
--- a/src/kudu/tablet/multi_column_writer.cc
+++ b/src/kudu/tablet/multi_column_writer.cc
@@ -17,12 +17,20 @@
 
 #include "kudu/tablet/multi_column_writer.h"
 
-#include <utility>
+#include <algorithm>
+#include <memory>
+#include <ostream>
+#include <string>
 
+#include "kudu/cfile/cfile_util.h"
 #include "kudu/cfile/cfile_writer.h"
+#include "kudu/common/columnblock.h"
 #include "kudu/common/rowblock.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/stl_util.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/multi_column_writer.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/multi_column_writer.h b/src/kudu/tablet/multi_column_writer.h
index 77e6a12..61fe007 100644
--- a/src/kudu/tablet/multi_column_writer.h
+++ b/src/kudu/tablet/multi_column_writer.h
@@ -17,20 +17,23 @@
 #ifndef KUDU_TABLET_MULTI_COLUMN_WRITER_H
 #define KUDU_TABLET_MULTI_COLUMN_WRITER_H
 
+#include <cstddef>
 #include <map>
 #include <string>
 #include <vector>
 
 #include <glog/logging.h>
 
-#include "kudu/common/schema.h"
-#include "kudu/fs/fs_manager.h"
+#include "kudu/fs/block_id.h"
 #include "kudu/gutil/macros.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 
+class FsManager;
 class RowBlock;
 class Schema;
+struct ColumnId;
 
 namespace cfile {
 class CFileWriter;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/mutation.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/mutation.cc b/src/kudu/tablet/mutation.cc
index 6e24fec..7e02f17 100644
--- a/src/kudu/tablet/mutation.cc
+++ b/src/kudu/tablet/mutation.cc
@@ -15,12 +15,17 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include "kudu/gutil/atomicops.h"
-#include "kudu/gutil/strings/strcat.h"
 #include "kudu/tablet/mutation.h"
+
 #include <string>
 
+#include "kudu/gutil/atomicops.h"
+#include "kudu/gutil/strings/strcat.h"
+
 namespace kudu {
+
+class Schema;
+
 namespace tablet {
 
 std::string Mutation::StringifyMutationList(const Schema &schema, const Mutation *head) {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/mutation.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/mutation.h b/src/kudu/tablet/mutation.h
index 0b90d76..fd9d92c 100644
--- a/src/kudu/tablet/mutation.h
+++ b/src/kudu/tablet/mutation.h
@@ -18,17 +18,25 @@
 #ifndef KUDU_TABLET_MUTATION_H
 #define KUDU_TABLET_MUTATION_H
 
+#include <cstdint>
+#include <cstring>
+#include <new>
+#include <ostream>
 #include <string>
 
+#include <glog/logging.h>
+
 #include "kudu/common/row_changelist.h"
-#include "kudu/common/schema.h"
+#include "kudu/common/timestamp.h"
+#include "kudu/gutil/atomicops.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/port.h"
-#include "kudu/util/memory/arena.h"
 #include "kudu/util/slice.h"
-#include "kudu/tablet/mvcc.h"
 
 namespace kudu {
+
+class Schema;
+
 namespace tablet {
 
 // A single mutation associated with a row.

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/mvcc-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/mvcc-test.cc b/src/kudu/tablet/mvcc-test.cc
index 705a336..6a086eb 100644
--- a/src/kudu/tablet/mvcc-test.cc
+++ b/src/kudu/tablet/mvcc-test.cc
@@ -15,15 +15,26 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <glog/logging.h>
-#include <gtest/gtest.h>
 #include <mutex>
+#include <ostream>
+#include <string>
 #include <thread>
+#include <vector>
+
+#include <glog/logging.h>
+#include <gtest/gtest.h>
 
+#include "kudu/clock/clock.h"
 #include "kudu/clock/hybrid_clock.h"
 #include "kudu/clock/logical_clock.h"
+#include "kudu/common/timestamp.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/tablet/mvcc.h"
+#include "kudu/util/locks.h"
 #include "kudu/util/monotime.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 using std::thread;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/mvcc.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/mvcc.cc b/src/kudu/tablet/mvcc.cc
index d8f25f0..5408bd9 100644
--- a/src/kudu/tablet/mvcc.cc
+++ b/src/kudu/tablet/mvcc.cc
@@ -18,19 +18,19 @@
 #include "kudu/tablet/mvcc.h"
 
 #include <algorithm>
-#include <glog/logging.h>
 #include <mutex>
+#include <ostream>
+#include <utility>
+
+#include <glog/logging.h>
 
-#include "kudu/clock/logical_clock.h"
 #include "kudu/gutil/map-util.h"
-#include "kudu/gutil/mathlimits.h"
 #include "kudu/gutil/port.h"
-#include "kudu/gutil/stringprintf.h"
 #include "kudu/gutil/strings/strcat.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/countdown_latch.h"
 #include "kudu/util/debug/trace_event.h"
-#include "kudu/util/stopwatch.h"
+#include "kudu/util/monotime.h"
 
 namespace kudu {
 namespace tablet {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/mvcc.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/mvcc.h b/src/kudu/tablet/mvcc.h
index 7b5cdf8..6c9c103 100644
--- a/src/kudu/tablet/mvcc.h
+++ b/src/kudu/tablet/mvcc.h
@@ -17,18 +17,23 @@
 #ifndef KUDU_TABLET_MVCC_H
 #define KUDU_TABLET_MVCC_H
 
-#include <gtest/gtest_prod.h>
 #include <mutex>
 #include <string>
 #include <unordered_map>
 #include <vector>
 
-#include "kudu/clock/clock.h"
-#include "kudu/gutil/gscoped_ptr.h"
+#include <gtest/gtest_prod.h>
+
+#include "kudu/common/timestamp.h"
+#include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
 #include "kudu/util/locks.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 class CountDownLatch;
+class MonoTime;
+
 namespace tablet {
 class MvccManager;
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/row_op.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/row_op.cc b/src/kudu/tablet/row_op.cc
index 058f40f..c176707 100644
--- a/src/kudu/tablet/row_op.cc
+++ b/src/kudu/tablet/row_op.cc
@@ -15,14 +15,25 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include "kudu/common/wire_protocol.h"
 #include "kudu/tablet/row_op.h"
+
+#include <algorithm>
+#include <type_traits>
+
+#include <glog/logging.h>
+
+#include "kudu/common/wire_protocol.h"
+#include "kudu/gutil/move.h"
+#include "kudu/tablet/rowset.h"
 #include "kudu/tablet/tablet.pb.h"
 #include "kudu/util/pb_util.h"
 
 using kudu::pb_util::SecureDebugString;
 
 namespace kudu {
+
+class Status;
+
 namespace tablet {
 
 RowOp::RowOp(DecodedRowOperation decoded_op)

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/row_op.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/row_op.h b/src/kudu/tablet/row_op.h
index f10bc9b..c156546 100644
--- a/src/kudu/tablet/row_op.h
+++ b/src/kudu/tablet/row_op.h
@@ -19,17 +19,21 @@
 
 #include <string>
 
-#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/common/row_operations.h"
-#include "kudu/tablet/rowset.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/tablet/lock_manager.h"
 
 namespace kudu {
 
 class Schema;
+class Status;
 
 namespace tablet {
 
+class OperationResultPB;
+class RowSet;
+class RowSetKeyProbe;
+
 // Structure tracking the progress of a single row operation within a WriteTransaction.
 struct RowOp {
  public:
@@ -98,11 +102,9 @@ struct RowOp {
 
   // The result of the operation, after Apply.
   gscoped_ptr<OperationResultPB> result;
-
 };
 
 
 } // namespace tablet
 } // namespace kudu
 #endif /* KUDU_TABLET_ROW_OP_H */
-

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/rowset.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/rowset.cc b/src/kudu/tablet/rowset.cc
index b81bb91..7023c56 100644
--- a/src/kudu/tablet/rowset.cc
+++ b/src/kudu/tablet/rowset.cc
@@ -17,16 +17,19 @@
 
 #include "kudu/tablet/rowset.h"
 
+#include <algorithm>
 #include <limits>
 #include <memory>
 #include <string>
 #include <vector>
 
 #include "kudu/common/generic_iterators.h"
-#include "kudu/gutil/stl_util.h"
-#include "kudu/gutil/stringprintf.h"
+#include "kudu/common/iterator.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/timestamp.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/tablet/rowset_metadata.h"
+#include "kudu/util/make_shared.h"
 
 using std::shared_ptr;
 using std::string;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/rowset.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/rowset.h b/src/kudu/tablet/rowset.h
index 43bc74d..a6fed1b 100644
--- a/src/kudu/tablet/rowset.h
+++ b/src/kudu/tablet/rowset.h
@@ -17,25 +17,36 @@
 #ifndef KUDU_TABLET_ROWSET_H
 #define KUDU_TABLET_ROWSET_H
 
+#include <cstddef>
+#include <cstdint>
 #include <memory>
 #include <mutex>
+#include <ostream>
 #include <string>
 #include <vector>
 
-#include "kudu/cfile/cfile_util.h"
-#include "kudu/common/iterator.h"
+#include <glog/logging.h>
+
+#include "kudu/common/common.pb.h"
+#include "kudu/common/encoded_key.h"
+#include "kudu/common/row.h"
 #include "kudu/common/rowid.h"
-#include "kudu/common/schema.h"
+#include "kudu/common/timestamp.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
-#include "kudu/tablet/mvcc.h"
+#include "kudu/gutil/move.h"
+#include "kudu/gutil/port.h"
 #include "kudu/util/bloom_filter.h"
-#include "kudu/util/faststring.h"
-#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
+// IWYU pragma: no_include "kudu/util/monotime.h"
 
 namespace kudu {
 
+class MonoTime; // IWYU pragma: keep
 class RowChangeList;
+class RowwiseIterator;
+class Schema;
+class Slice;
 
 namespace consensus {
 class OpId;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/rowset_info.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/rowset_info.cc b/src/kudu/tablet/rowset_info.cc
index f65ca0d..bbfbeb8 100644
--- a/src/kudu/tablet/rowset_info.cc
+++ b/src/kudu/tablet/rowset_info.cc
@@ -18,22 +18,25 @@
 #include "kudu/tablet/rowset_info.h"
 
 #include <algorithm>
+#include <cstdint>
+#include <cstring>
 #include <memory>
-#include <unordered_map>
+#include <ostream>
 #include <string>
+#include <type_traits>
+#include <unordered_map>
 #include <utility>
 
 #include <glog/logging.h>
-#include <inttypes.h>
 
 #include "kudu/gutil/casts.h"
 #include "kudu/gutil/endian.h"
-#include "kudu/gutil/map-util.h"
-#include "kudu/gutil/strings/util.h"
+#include "kudu/gutil/stringprintf.h"
 #include "kudu/tablet/rowset.h"
 #include "kudu/tablet/rowset_tree.h"
 #include "kudu/util/logging.h"
 #include "kudu/util/slice.h"
+#include "kudu/util/status.h"
 
 using std::shared_ptr;
 using std::string;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/rowset_metadata.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/rowset_metadata.cc b/src/kudu/tablet/rowset_metadata.cc
index 99b7d68..7f26988 100644
--- a/src/kudu/tablet/rowset_metadata.cc
+++ b/src/kudu/tablet/rowset_metadata.cc
@@ -17,17 +17,18 @@
 
 #include "kudu/tablet/rowset_metadata.h"
 
+#include <algorithm>
 #include <mutex>
+#include <ostream>
 #include <string>
 #include <unordered_set>
-#include <utility>
 #include <vector>
 
 #include <glog/stl_logging.h>
 
-#include "kudu/common/wire_protocol.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/gutil/map-util.h"
+#include "kudu/tablet/metadata.pb.h"
 
 using std::vector;
 using strings::Substitute;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/rowset_metadata.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/rowset_metadata.h b/src/kudu/tablet/rowset_metadata.h
index edd91aa..9f1e62e 100644
--- a/src/kudu/tablet/rowset_metadata.h
+++ b/src/kudu/tablet/rowset_metadata.h
@@ -17,29 +17,32 @@
 #ifndef KUDU_TABLET_ROWSET_METADATA_H
 #define KUDU_TABLET_ROWSET_METADATA_H
 
+#include <cstdint>
 #include <map>
 #include <mutex>
 #include <string>
 #include <vector>
 
 #include <boost/container/flat_map.hpp>
+#include <boost/container/vector.hpp>
+#include <glog/logging.h>
 
 #include "kudu/common/schema.h"
 #include "kudu/fs/block_id.h"
 #include "kudu/fs/fs_manager.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/map-util.h"
 #include "kudu/tablet/tablet_metadata.h"
-#include "kudu/util/debug-util.h"
-#include "kudu/util/env.h"
 #include "kudu/util/locks.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 
 namespace tablet {
 
+class RowSetDataPB;
 class RowSetMetadataUpdate;
-class TabletMetadata;
 
 // Keeps track of the RowSet data blocks.
 //

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/rowset_tree-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/rowset_tree-test.cc b/src/kudu/tablet/rowset_tree-test.cc
index 9b9cb8b..74b99a1 100644
--- a/src/kudu/tablet/rowset_tree-test.cc
+++ b/src/kudu/tablet/rowset_tree-test.cc
@@ -15,17 +15,25 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <glog/logging.h>
-#include <gtest/gtest.h>
+#include <algorithm>
+#include <cstdlib>
 #include <memory>
-#include <stdio.h>
 #include <unordered_set>
+#include <string>
+#include <vector>
+
+#include <glog/logging.h>
+#include <gtest/gtest.h>
 
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/stringprintf.h"
 #include "kudu/tablet/mock-rowsets.h"
 #include "kudu/tablet/rowset.h"
 #include "kudu/tablet/rowset_tree.h"
+#include "kudu/util/make_shared.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::shared_ptr;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/rowset_tree.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/rowset_tree.cc b/src/kudu/tablet/rowset_tree.cc
index afffa40..2ffa2a9 100644
--- a/src/kudu/tablet/rowset_tree.cc
+++ b/src/kudu/tablet/rowset_tree.cc
@@ -23,12 +23,16 @@
 #include <memory>
 #include <string>
 #include <vector>
+#include <ostream>
+
+#include <glog/logging.h>
 
 #include "kudu/gutil/stl_util.h"
 #include "kudu/tablet/rowset.h"
 #include "kudu/tablet/rowset_metadata.h"
-#include "kudu/util/interval_tree.h"
 #include "kudu/util/interval_tree-inl.h"
+#include "kudu/util/interval_tree.h"
+#include "kudu/util/make_shared.h"
 #include "kudu/util/slice.h"
 
 using std::vector;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/rowset_tree.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/rowset_tree.h b/src/kudu/tablet/rowset_tree.h
index eb98138..cc4adc5 100644
--- a/src/kudu/tablet/rowset_tree.h
+++ b/src/kudu/tablet/rowset_tree.h
@@ -17,14 +17,16 @@
 #ifndef KUDU_TABLET_ROWSET_MANAGER_H
 #define KUDU_TABLET_ROWSET_MANAGER_H
 
+#include <cstdint>
+#include <functional>
 #include <unordered_map>
 #include <vector>
-#include <utility>
 
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/map-util.h"
-#include "kudu/util/status.h"
 #include "kudu/tablet/rowset.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/svg_dump.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/svg_dump.cc b/src/kudu/tablet/svg_dump.cc
index f0e8a74..50f46be 100644
--- a/src/kudu/tablet/svg_dump.cc
+++ b/src/kudu/tablet/svg_dump.cc
@@ -17,18 +17,19 @@
 
 #include "kudu/tablet/svg_dump.h"
 
-#include <glog/logging.h>
-#include <time.h>
-
+#include <ctime>
 #include <fstream>
-#include <iostream>
 #include <string>
 #include <unordered_set>
 #include <vector>
 
-#include "kudu/common/encoded_key.h"
+#include <gflags/gflags.h>
+#include <glog/logging.h>
+
 #include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/move.h"
 #include "kudu/gutil/stringprintf.h"
 #include "kudu/gutil/strings/util.h"
 #include "kudu/tablet/rowset_info.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/svg_dump.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/svg_dump.h b/src/kudu/tablet/svg_dump.h
index caba777..59c1397 100644
--- a/src/kudu/tablet/svg_dump.h
+++ b/src/kudu/tablet/svg_dump.h
@@ -17,6 +17,7 @@
 #ifndef KUDU_TABLET_COMPACTION_SVG_DUMP_H_
 #define KUDU_TABLET_COMPACTION_SVG_DUMP_H_
 
+#include <cstddef>
 #include <ostream>
 #include <unordered_set>
 #include <vector>

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/tablet-decoder-eval-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/tablet-decoder-eval-test.cc b/src/kudu/tablet/tablet-decoder-eval-test.cc
index 991d3c4..3522629 100644
--- a/src/kudu/tablet/tablet-decoder-eval-test.cc
+++ b/src/kudu/tablet/tablet-decoder-eval-test.cc
@@ -15,14 +15,41 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <algorithm>
+#include <cinttypes>
+#include <cstdint>
+#include <cstring>
+#include <memory>
+#include <ostream>
+#include <string>
+#include <unordered_map>
+
+#include <gflags/gflags.h>
 #include <glog/logging.h>
 #include <gtest/gtest.h>
 
-#include "kudu/gutil/strings/substitute.h"
-#include <kudu/util/flags.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/row.h"
+#include "kudu/common/rowblock.h"
+#include "kudu/common/scan_spec.h"
 #include "kudu/common/schema.h"
-#include "kudu/tablet/tablet-test-base.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/stringprintf.h"
+#include "kudu/gutil/strings/substitute.h"
+#include "kudu/tablet/local_tablet_writer.h"
+#include "kudu/tablet/tablet-test-util.h"
+#include "kudu/tablet/tablet.h"
+#include "kudu/util/auto_release_pool.h"
+#include "kudu/util/compression/compression.pb.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"
 
 DEFINE_int32(decoder_eval_test_nrepeats, 1, "Number of times to repeat per tablet");
 DEFINE_int32(decoder_eval_test_lower, 0, "Lower bound on the predicate [lower, upper)");

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/tablet-harness.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/tablet-harness.h b/src/kudu/tablet/tablet-harness.h
index 9d61ff2..5fc547c 100644
--- a/src/kudu/tablet/tablet-harness.h
+++ b/src/kudu/tablet/tablet-harness.h
@@ -24,9 +24,11 @@
 
 #include "kudu/clock/hybrid_clock.h"
 #include "kudu/clock/logical_clock.h"
+#include "kudu/common/partial_row.h"
 #include "kudu/common/schema.h"
 #include "kudu/consensus/log_anchor_registry.h"
 #include "kudu/consensus/metadata.pb.h"
+#include "kudu/fs/fs_manager.h"
 #include "kudu/tablet/tablet.h"
 #include "kudu/util/env.h"
 #include "kudu/util/mem_tracker.h"
@@ -50,8 +52,7 @@ static std::pair<PartitionSchema, Partition> CreateDefaultPartition(const Schema
 
   // Create the tablet partitions.
   std::vector<Partition> partitions;
-  CHECK_OK(partition_schema.CreatePartitions(
-      std::vector<KuduPartialRow>(), {}, schema, &partitions));
+  CHECK_OK(partition_schema.CreatePartitions({}, {}, schema, &partitions));
   CHECK_EQ(1, partitions.size());
   return std::make_pair(partition_schema, partitions[0]);
 }

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/tablet-pushdown-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/tablet-pushdown-test.cc b/src/kudu/tablet/tablet-pushdown-test.cc
index 03758bc..cabc2a3 100644
--- a/src/kudu/tablet/tablet-pushdown-test.cc
+++ b/src/kudu/tablet/tablet-pushdown-test.cc
@@ -15,17 +15,35 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <glog/logging.h>
-#include <gtest/gtest.h>
-
 #include <algorithm>
+#include <cinttypes>
+#include <cstdint>
+#include <memory>
+#include <string>
+#include <unordered_map>
 #include <vector>
 
+#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/iterator_stats.h"
+#include "kudu/common/partial_row.h"
+#include "kudu/common/row.h"
+#include "kudu/common/scan_spec.h"
 #include "kudu/common/schema.h"
-#include "kudu/tablet/tablet-test-base.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/util/auto_release_pool.h"
 #include "kudu/util/memory/arena.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/tablet-schema-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/tablet-schema-test.cc b/src/kudu/tablet/tablet-schema-test.cc
index a066bfc..4b428e7 100644
--- a/src/kudu/tablet/tablet-schema-test.cc
+++ b/src/kudu/tablet/tablet-schema-test.cc
@@ -15,19 +15,29 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <cstddef>
+#include <cstdint>
+#include <memory>
+#include <string>
+#include <utility>
+#include <vector>
+
 #include <glog/logging.h>
 #include <gtest/gtest.h>
 
-#include <algorithm>
-#include <vector>
-
+#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/strings/substitute.h"
-#include "kudu/tablet/transactions/alter_schema_transaction.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/tablet/tablet_metadata.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::pair;
 using std::string;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/tablet-test-base.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/tablet-test-base.h b/src/kudu/tablet/tablet-test-base.h
index 3f4df2d..92ce1b6 100644
--- a/src/kudu/tablet/tablet-test-base.h
+++ b/src/kudu/tablet/tablet-test-base.h
@@ -18,14 +18,15 @@
 #define KUDU_TABLET_TABLET_TEST_BASE_H
 
 #include <algorithm>
-#include <boost/optional.hpp>
-#include <glog/logging.h>
-#include <gtest/gtest.h>
 #include <limits>
 #include <string>
 #include <unordered_set>
 #include <vector>
 
+#include <boost/optional/optional.hpp>
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
 #include "kudu/common/partial_row.h"
 #include "kudu/common/row.h"
 #include "kudu/common/scan_spec.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/tablet-test-util.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/tablet-test-util.h b/src/kudu/tablet/tablet-test-util.h
index 515ff0c..4b76bac 100644
--- a/src/kudu/tablet/tablet-test-util.h
+++ b/src/kudu/tablet/tablet-test-util.h
@@ -22,6 +22,8 @@
 #include <string>
 #include <vector>
 
+#include <gflags/gflags.h>
+
 #include "kudu/common/iterator.h"
 #include "kudu/gutil/casts.h"
 #include "kudu/gutil/strings/join.h"
@@ -31,6 +33,7 @@
 #include "kudu/tablet/transactions/alter_schema_transaction.h"
 #include "kudu/tablet/transactions/write_transaction.h"
 #include "kudu/util/metrics.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/tablet-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/tablet-test.cc b/src/kudu/tablet/tablet-test.cc
index 1e257db..d09ff20 100644
--- a/src/kudu/tablet/tablet-test.cc
+++ b/src/kudu/tablet/tablet-test.cc
@@ -15,21 +15,50 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <algorithm>
+#include <cstdint>
 #include <ctime>
-
+#include <map>
+#include <memory>
+#include <ostream>
+#include <string>
+#include <vector>
+
+#include <boost/optional/optional.hpp>
+#include <gflags/gflags.h>
 #include <glog/logging.h>
+#include <gtest/gtest.h>
 
 #include "kudu/cfile/cfile_util.h"
+#include "kudu/common/common.pb.h"
 #include "kudu/common/iterator.h"
-#include "kudu/common/row.h"
-#include "kudu/common/scan_spec.h"
+#include "kudu/common/rowblock.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/gutil/gscoped_ptr.h"
+#include "kudu/gutil/move.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/join.h"
+#include "kudu/tablet/delta_key.h"
+#include "kudu/tablet/delta_stats.h"
 #include "kudu/tablet/deltafile.h"
 #include "kudu/tablet/local_tablet_writer.h"
-#include "kudu/tablet/tablet.h"
+#include "kudu/tablet/mvcc.h"
+#include "kudu/tablet/rowset_metadata.h"
 #include "kudu/tablet/tablet-test-base.h"
-#include "kudu/util/slice.h"
+#include "kudu/tablet/tablet-test-util.h"
+#include "kudu/tablet/tablet.h"
+#include "kudu/tablet/tablet.pb.h"
+#include "kudu/tablet/tablet_metadata.h"
+#include "kudu/util/faststring.h"
+#include "kudu/util/jsonwriter.h"
+#include "kudu/util/make_shared.h"
+#include "kudu/util/metrics.h"
+#include "kudu/util/status.h"
+#include "kudu/util/stopwatch.h"
 #include "kudu/util/test_macros.h"
 
 DEFINE_int32(testflush_num_inserts, 1000,

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/tablet.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/tablet.cc b/src/kudu/tablet/tablet.cc
index 6da7ea3..90c4835 100644
--- a/src/kudu/tablet/tablet.cc
+++ b/src/kudu/tablet/tablet.cc
@@ -18,55 +18,79 @@
 #include "kudu/tablet/tablet.h"
 
 #include <algorithm>
+#include <cstdlib>
+#include <cstring>
 #include <iterator>
-#include <limits>
 #include <memory>
 #include <mutex>
 #include <ostream>
+#include <type_traits>
+#include <unordered_map>
 #include <unordered_set>
 #include <utility>
 #include <vector>
 
-#include "kudu/cfile/cfile_writer.h"
+#include <gflags/gflags.h>
+#include <glog/logging.h>
+
 #include "kudu/clock/hybrid_clock.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/encoded_key.h"
+#include "kudu/common/generic_iterators.h"
 #include "kudu/common/iterator.h"
+#include "kudu/common/partition.h"
+#include "kudu/common/row.h"
 #include "kudu/common/row_changelist.h"
 #include "kudu/common/row_operations.h"
+#include "kudu/common/rowid.h"
 #include "kudu/common/scan_spec.h"
 #include "kudu/common/schema.h"
-#include "kudu/consensus/consensus.pb.h"
+#include "kudu/common/timestamp.h"
+#include "kudu/common/types.h"
+#include "kudu/common/wire_protocol.pb.h"
 #include "kudu/consensus/log_anchor_registry.h"
-#include "kudu/consensus/opid_util.h"
-#include "kudu/gutil/atomicops.h"
-#include "kudu/gutil/map-util.h"
+#include "kudu/consensus/opid.pb.h"
+#include "kudu/fs/fs_manager.h"
+#include "kudu/gutil/basictypes.h"
+#include "kudu/gutil/bind.h"
+#include "kudu/gutil/bind_helpers.h"
+#include "kudu/gutil/casts.h"
+#include "kudu/gutil/move.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/human_readable.h"
-#include "kudu/gutil/strings/numbers.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/tablet/compaction.h"
 #include "kudu/tablet/compaction_policy.h"
-#include "kudu/tablet/delta_compaction.h"
+#include "kudu/tablet/delta_tracker.h"
 #include "kudu/tablet/diskrowset.h"
+#include "kudu/tablet/memrowset.h"
 #include "kudu/tablet/row_op.h"
 #include "kudu/tablet/rowset_info.h"
+#include "kudu/tablet/rowset_metadata.h"
 #include "kudu/tablet/rowset_tree.h"
 #include "kudu/tablet/svg_dump.h"
+#include "kudu/tablet/tablet.pb.h"
 #include "kudu/tablet/tablet_metrics.h"
 #include "kudu/tablet/tablet_mm_ops.h"
 #include "kudu/tablet/transactions/alter_schema_transaction.h"
 #include "kudu/tablet/transactions/write_transaction.h"
+#include "kudu/tserver/tserver.pb.h"
+#include "kudu/util/bitmap.h"
 #include "kudu/util/bloom_filter.h"
 #include "kudu/util/debug/trace_event.h"
-#include "kudu/util/env.h"
+#include "kudu/util/faststring.h"
 #include "kudu/util/fault_injection.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/locks.h"
 #include "kudu/util/logging.h"
 #include "kudu/util/maintenance_manager.h"
-#include "kudu/util/mem_tracker.h"
+#include "kudu/util/make_shared.h"
 #include "kudu/util/metrics.h"
-#include "kudu/util/scoped_cleanup.h"
-#include "kudu/util/stopwatch.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status_callback.h"
+#include "kudu/util/stopwatch.h"  // IWYU pragma: keep
+#include "kudu/util/throttler.h"
 #include "kudu/util/trace.h"
 #include "kudu/util/url-coding.h"
 
@@ -160,6 +184,10 @@ using std::vector;
 using strings::Substitute;
 
 namespace kudu {
+
+class RowBlock;
+struct IteratorStats;
+
 namespace tablet {
 
 static CompactionPolicy *CreateCompactionPolicy() {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/tablet.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/tablet.h b/src/kudu/tablet/tablet.h
index 3f3c006..daf7227 100644
--- a/src/kudu/tablet/tablet.h
+++ b/src/kudu/tablet/tablet.h
@@ -17,7 +17,8 @@
 #ifndef KUDU_TABLET_TABLET_H
 #define KUDU_TABLET_TABLET_H
 
-#include <condition_variable>
+#include <cstddef>
+#include <cstdint>
 #include <iosfwd>
 #include <map>
 #include <memory>
@@ -25,37 +26,41 @@
 #include <string>
 #include <vector>
 
+#include <gtest/gtest_prod.h>
+
+#include "kudu/clock/clock.h"
+#include "kudu/common/common.pb.h"
 #include "kudu/common/iterator.h"
 #include "kudu/common/schema.h"
-#include "kudu/gutil/atomicops.h"
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/tablet/lock_manager.h"
 #include "kudu/tablet/mvcc.h"
 #include "kudu/tablet/rowset.h"
-#include "kudu/tablet/rowset_metadata.h"
 #include "kudu/tablet/tablet_mem_trackers.h"
 #include "kudu/tablet/tablet_metadata.h"
+#include "kudu/util/bloom_filter.h"
 #include "kudu/util/locks.h"
 #include "kudu/util/metrics.h"
+#include "kudu/util/rw_semaphore.h"
 #include "kudu/util/semaphore.h"
-#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
-#include "kudu/util/throttler.h"
 
 namespace kudu {
 
+class ConstContiguousRow;
 class MaintenanceManager;
 class MaintenanceOp;
 class MaintenanceOpStats;
 class MemTracker;
-class MetricEntity;
-class RowChangeList;
-class UnionIterator;
-
-namespace clock {
-class Clock;
-}
+class MonoDelta;
+class RowBlock;
+class ScanSpec;
+class Throttler;
+class Timestamp;
+struct IteratorStats;
 
 namespace log {
 class LogAnchorRegistry;
@@ -67,7 +72,6 @@ class AlterSchemaTransactionState;
 class CompactionPolicy;
 class HistoryGcOpts;
 class MemRowSet;
-class MvccSnapshot;
 struct RowOp;
 class RowSetsInCompaction;
 class RowSetTree;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/tablet_bootstrap-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/tablet_bootstrap-test.cc b/src/kudu/tablet/tablet_bootstrap-test.cc
index 5b51ccf..e31574f 100644
--- a/src/kudu/tablet/tablet_bootstrap-test.cc
+++ b/src/kudu/tablet/tablet_bootstrap-test.cc
@@ -17,23 +17,65 @@
 
 #include "kudu/consensus/log-test-base.h"
 
+#include <cstddef>
+#include <cstdint>
+#include <limits>
 #include <memory>
+#include <ostream>
+#include <string>
+#include <type_traits>
+#include <utility>
 #include <vector>
 
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
+#include "kudu/clock/clock.h"
 #include "kudu/clock/logical_clock.h"
+#include "kudu/common/common.pb.h"
 #include "kudu/common/iterator.h"
+#include "kudu/common/partition.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/timestamp.h"
+#include "kudu/common/wire_protocol-test-util.h"
+#include "kudu/common/wire_protocol.h"
+#include "kudu/common/wire_protocol.pb.h"
 #include "kudu/consensus/consensus-test-util.h"
+#include "kudu/consensus/consensus.pb.h"
 #include "kudu/consensus/consensus_meta.h"
 #include "kudu/consensus/consensus_meta_manager.h"
+#include "kudu/consensus/log.h"
 #include "kudu/consensus/log_anchor_registry.h"
+#include "kudu/consensus/log_reader.h"
 #include "kudu/consensus/log_util.h"
 #include "kudu/consensus/metadata.pb.h"
+#include "kudu/consensus/opid.pb.h"
 #include "kudu/consensus/opid_util.h"
+#include "kudu/consensus/raft_consensus.h"
+#include "kudu/consensus/ref_counted_replicate.h"
 #include "kudu/fs/data_dirs.h"
+#include "kudu/fs/fs_manager.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/move.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
+#include "kudu/rpc/result_tracker.h"
+#include "kudu/tablet/metadata.pb.h"
+#include "kudu/tablet/mvcc.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_bootstrap.h"
 #include "kudu/tablet/tablet_metadata.h"
+#include "kudu/tablet/tablet_replica.h"
+#include "kudu/tserver/tserver.pb.h"
+#include "kudu/util/env.h"
 #include "kudu/util/logging_test_util.h"
+#include "kudu/util/pb_util.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 
 using std::shared_ptr;
 using std::string;
@@ -41,6 +83,9 @@ using std::unique_ptr;
 using std::vector;
 
 namespace kudu {
+
+class MemTracker;
+
 namespace tablet {
 
 using clock::Clock;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/tablet_bootstrap.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/tablet_bootstrap.cc b/src/kudu/tablet/tablet_bootstrap.cc
index f6b9d65..1eb6533 100644
--- a/src/kudu/tablet/tablet_bootstrap.cc
+++ b/src/kudu/tablet/tablet_bootstrap.cc
@@ -17,47 +17,78 @@
 
 #include "kudu/tablet/tablet_bootstrap.h"
 
-#include <gflags/gflags.h>
+#include <algorithm>
+#include <cstdint>
+#include <iterator>
 #include <map>
 #include <memory>
+#include <ostream>
 #include <string>
+#include <unordered_map>
 #include <utility>
 #include <vector>
 
+#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/common/partial_row.h"
+#include "kudu/common/common.pb.h"
 #include "kudu/common/row_operations.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/timestamp.h"
 #include "kudu/common/wire_protocol.h"
+#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/consensus/consensus.pb.h"
 #include "kudu/consensus/log.h"
+#include "kudu/consensus/log.pb.h"
 #include "kudu/consensus/log_anchor_registry.h"
 #include "kudu/consensus/log_reader.h"
 #include "kudu/consensus/log_util.h"
 #include "kudu/consensus/metadata.pb.h"
+#include "kudu/consensus/opid.pb.h"
 #include "kudu/consensus/opid_util.h"
+#include "kudu/consensus/raft_consensus.h"
 #include "kudu/fs/fs_manager.h"
+#include "kudu/gutil/bind.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/macros.h"
+#include "kudu/gutil/map-util.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/human_readable.h"
-#include "kudu/gutil/strings/strcat.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/gutil/strings/util.h"
 #include "kudu/gutil/walltime.h"
 #include "kudu/rpc/result_tracker.h"
-#include "kudu/tablet/lock_manager.h"
+#include "kudu/rpc/rpc_header.pb.h"
+#include "kudu/tablet/metadata.pb.h"
+#include "kudu/tablet/mvcc.h"
 #include "kudu/tablet/row_op.h"
+#include "kudu/tablet/rowset.h"
+#include "kudu/tablet/rowset_metadata.h"
 #include "kudu/tablet/tablet.h"
+#include "kudu/tablet/tablet.pb.h"
+#include "kudu/tablet/tablet_metadata.h"
+#include "kudu/tablet/tablet_replica.h"
 #include "kudu/tablet/transactions/alter_schema_transaction.h"
+#include "kudu/tablet/transactions/transaction.h"
 #include "kudu/tablet/transactions/write_transaction.h"
+#include "kudu/tserver/tserver.pb.h"
+#include "kudu/tserver/tserver_admin.pb.h"
 #include "kudu/util/debug/trace_event.h"
+#include "kudu/util/env.h"
 #include "kudu/util/fault_injection.h"
 #include "kudu/util/flag_tags.h"
-#include "kudu/util/locks.h"
 #include "kudu/util/logging.h"
+#include "kudu/util/metrics.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/path_util.h"
 #include "kudu/util/pb_util.h"
-#include "kudu/util/scoped_cleanup.h"
 #include "kudu/util/stopwatch.h"
 
+
 DECLARE_int32(group_commit_queue_size_bytes);
 
 DEFINE_bool(skip_remove_old_recovery_dir, false,

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/tablet_bootstrap.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/tablet_bootstrap.h b/src/kudu/tablet/tablet_bootstrap.h
index 83df3ff..4a147cc 100644
--- a/src/kudu/tablet/tablet_bootstrap.h
+++ b/src/kudu/tablet/tablet_bootstrap.h
@@ -17,22 +17,14 @@
 #pragma once
 
 #include <memory>
-#include <string>
-#include <vector>
 
-#include "kudu/common/schema.h"
-#include "kudu/consensus/log.pb.h"
-#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/ref_counted.h"
-#include "kudu/tablet/tablet_replica.h"
-#include "kudu/util/rw_mutex.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
 
+class MemTracker;
 class MetricRegistry;
-class Partition;
-class PartitionSchema;
 
 namespace log {
 class Log;
@@ -40,8 +32,8 @@ class LogAnchorRegistry;
 }
 
 namespace consensus {
+class RaftConfigPB;
 struct ConsensusBootstrapInfo;
-class ConsensusMetadataManager;
 } // namespace consensus
 
 namespace rpc {
@@ -55,6 +47,7 @@ class Clock;
 namespace tablet {
 class Tablet;
 class TabletMetadata;
+class TabletReplica;
 
 extern const char* kLogRecoveryDir;
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/tablet_history_gc-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/tablet_history_gc-test.cc b/src/kudu/tablet/tablet_history_gc-test.cc
index c8a5f08..d12bba7 100644
--- a/src/kudu/tablet/tablet_history_gc-test.cc
+++ b/src/kudu/tablet/tablet_history_gc-test.cc
@@ -15,16 +15,46 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <algorithm>
 #include <atomic>
-#include <gflags/gflags.h>
 
+#include <cstdint>
+#include <memory>
+#include <ostream>
+#include <string>
+#include <vector>
+
+#include <boost/optional/optional.hpp>
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
+#include "kudu/clock/clock.h"
 #include "kudu/clock/hybrid_clock.h"
 #include "kudu/clock/mock_ntp.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/partial_row.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/timestamp.h"
+#include "kudu/gutil/casts.h"
+#include "kudu/gutil/move.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/strings/substitute.h"
+#include "kudu/gutil/walltime.h"
 #include "kudu/tablet/compaction.h"
-#include "kudu/tablet/mvcc.h"
+#include "kudu/tablet/diskrowset.h"
+#include "kudu/tablet/local_tablet_writer.h"
+#include "kudu/tablet/rowset.h"
+#include "kudu/tablet/rowset_metadata.h"
+#include "kudu/tablet/tablet-harness.h"
 #include "kudu/tablet/tablet-test-base.h"
 #include "kudu/tablet/tablet.h"
+#include "kudu/tablet/tablet_metadata.h"
 #include "kudu/tablet/tablet_metrics.h"
+#include "kudu/util/make_shared.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 
 DECLARE_bool(enable_maintenance_manager);
 DECLARE_int32(tablet_history_max_age_sec);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/tablet_metadata-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/tablet_metadata-test.cc b/src/kudu/tablet/tablet_metadata-test.cc
index 5bc3e7d..72287e0 100644
--- a/src/kudu/tablet/tablet_metadata-test.cc
+++ b/src/kudu/tablet/tablet_metadata-test.cc
@@ -15,15 +15,27 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <cstdint>
+#include <memory>
+#include <ostream>
+#include <string>
+
 #include <glog/logging.h>
+#include <gtest/gtest.h>
 
-#include "kudu/common/schema.h"
+#include "kudu/common/partial_row.h"
 #include "kudu/common/wire_protocol-test-util.h"
-#include "kudu/fs/fs_manager.h"
-#include "kudu/gutil/ref_counted.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/port.h"
 #include "kudu/tablet/local_tablet_writer.h"
+#include "kudu/tablet/metadata.pb.h"
+#include "kudu/tablet/tablet-harness.h"
 #include "kudu/tablet/tablet-test-util.h"
+#include "kudu/tablet/tablet.h"
+#include "kudu/tablet/tablet_metadata.h"
 #include "kudu/util/pb_util.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 
 namespace kudu {
 namespace tablet {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/tablet_metadata.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/tablet_metadata.cc b/src/kudu/tablet/tablet_metadata.cc
index 463ae3d..93502e8 100644
--- a/src/kudu/tablet/tablet_metadata.cc
+++ b/src/kudu/tablet/tablet_metadata.cc
@@ -18,25 +18,32 @@
 #include "kudu/tablet/tablet_metadata.h"
 
 #include <algorithm>
-#include <boost/optional.hpp>
-#include <gflags/gflags.h>
 #include <mutex>
+#include <ostream>
 #include <string>
+#include <type_traits>
+
+#include <boost/optional/optional.hpp>
+#include <gflags/gflags.h>
 
+#include "kudu/common/schema.h"
 #include "kudu/common/wire_protocol.h"
-#include "kudu/consensus/metadata.pb.h"
 #include "kudu/consensus/opid.pb.h"
 #include "kudu/consensus/opid_util.h"
-#include "kudu/fs/block_manager.h"
+#include "kudu/fs/block_id.h"
 #include "kudu/fs/data_dirs.h"
+#include "kudu/fs/fs.pb.h"
+#include "kudu/fs/fs_manager.h"
 #include "kudu/gutil/atomicops.h"
 #include "kudu/gutil/bind.h"
-#include "kudu/gutil/dynamic_annotations.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/rowset_metadata.h"
 #include "kudu/util/debug/trace_event.h"
+#include "kudu/util/env.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/logging.h"
 #include "kudu/util/pb_util.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/tablet_metadata.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/tablet_metadata.h b/src/kudu/tablet/tablet_metadata.h
index 316b390..afac374 100644
--- a/src/kudu/tablet/tablet_metadata.h
+++ b/src/kudu/tablet/tablet_metadata.h
@@ -18,31 +18,42 @@
 #define KUDU_TABLET_TABLET_METADATA_H
 
 #include <atomic>
-#include <boost/optional/optional_fwd.hpp>
+#include <cstdint>
 #include <memory>
 #include <string>
 #include <unordered_set>
 #include <vector>
 
+#include <glog/logging.h>
+
 #include "kudu/common/partition.h"
-#include "kudu/common/schema.h"
 #include "kudu/consensus/opid.pb.h"
 #include "kudu/fs/block_id.h"
-#include "kudu/fs/fs_manager.h"
-#include "kudu/gutil/callback.h"
-#include "kudu/gutil/dynamic_annotations.h"
+#include "kudu/gutil/atomicops.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/integral_types.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/tablet/metadata.pb.h"
+#include "kudu/util/locks.h"
 #include "kudu/util/mutex.h"
 #include "kudu/util/status.h"
 #include "kudu/util/status_callback.h"
 
+namespace boost {
+template <class T>
+class optional;
+}
+
 namespace kudu {
+
+class BlockIdPB;
+class FsManager;
+class Schema;
+
 namespace tablet {
 
 class RowSetMetadata;
-class RowSetMetadataUpdate;
 
 typedef std::vector<std::shared_ptr<RowSetMetadata> > RowSetMetadataVector;
 typedef std::unordered_set<int64_t> RowSetMetadataIds;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/tablet_metrics.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/tablet_metrics.cc b/src/kudu/tablet/tablet_metrics.cc
index c24f96c..d73ccd4 100644
--- a/src/kudu/tablet/tablet_metrics.cc
+++ b/src/kudu/tablet/tablet_metrics.cc
@@ -19,8 +19,11 @@
 #include <functional>
 #include <map>
 #include <utility>
+#include <cstdint>
+#include <unordered_map>
 
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/tablet/rowset.h"
 #include "kudu/util/memory/arena.h"
 #include "kudu/util/metrics.h"
 #include "kudu/util/trace.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/tablet_metrics.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/tablet_metrics.h b/src/kudu/tablet/tablet_metrics.h
index 5fcea64..d7f3b38 100644
--- a/src/kudu/tablet/tablet_metrics.h
+++ b/src/kudu/tablet/tablet_metrics.h
@@ -17,17 +17,14 @@
 #ifndef KUDU_TABLET_TABLET_METRICS_H
 #define KUDU_TABLET_TABLET_METRICS_H
 
-#include "kudu/gutil/macros.h"
-#include "kudu/tablet/rowset.h"
+#include <cstdint>
+
+#include "kudu/gutil/ref_counted.h"
+#include "kudu/util/metrics.h"
 
 namespace kudu {
 
 class Arena;
-class Counter;
-template<class T>
-class AtomicGauge;
-class Histogram;
-class MetricEntity;
 
 namespace tablet {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/tablet_mm_ops-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/tablet_mm_ops-test.cc b/src/kudu/tablet/tablet_mm_ops-test.cc
index 815242e..a2f5572 100644
--- a/src/kudu/tablet/tablet_mm_ops-test.cc
+++ b/src/kudu/tablet/tablet_mm_ops-test.cc
@@ -15,10 +15,24 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <memory>
+#include <unordered_set>
+#include <vector>
+
+#include <gtest/gtest.h>
+
+#include "kudu/common/common.pb.h"
+#include "kudu/gutil/map-util.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
+#include "kudu/tablet/tablet-test-base.h"
 #include "kudu/tablet/tablet.h"
 #include "kudu/tablet/tablet_metrics.h"
 #include "kudu/tablet/tablet_mm_ops.h"
-#include "kudu/tablet/tablet-test-base.h"
+#include "kudu/util/maintenance_manager.h"
+#include "kudu/util/metrics.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/test_macros.h"
 
 namespace kudu {
 namespace tablet {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/tablet_mm_ops.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/tablet_mm_ops.cc b/src/kudu/tablet/tablet_mm_ops.cc
index 12268a0..3f6f949 100644
--- a/src/kudu/tablet/tablet_mm_ops.cc
+++ b/src/kudu/tablet/tablet_mm_ops.cc
@@ -17,14 +17,21 @@
 
 #include "kudu/tablet/tablet_mm_ops.h"
 
+#include <algorithm>
 #include <mutex>
 
 #include <gflags/gflags.h>
+#include <glog/logging.h>
 
+#include "kudu/gutil/strings/substitute.h"
+#include "kudu/tablet/rowset.h"
 #include "kudu/tablet/tablet.h"
 #include "kudu/tablet/tablet_metrics.h"
 #include "kudu/util/flag_tags.h"
-#include "kudu/util/locks.h"
+#include "kudu/util/logging.h"
+#include "kudu/util/metrics.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/status.h"
 
 DEFINE_int32(undo_delta_block_gc_init_budget_millis, 1000,
     "The maximum number of milliseconds we will spend initializing "

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/tablet_mm_ops.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/tablet_mm_ops.h b/src/kudu/tablet/tablet_mm_ops.h
index 2f8e18d..8fc865e 100644
--- a/src/kudu/tablet/tablet_mm_ops.h
+++ b/src/kudu/tablet/tablet_mm_ops.h
@@ -18,15 +18,19 @@
 #ifndef KUDU_TABLET_TABLET_MM_OPS_H_
 #define KUDU_TABLET_TABLET_MM_OPS_H_
 
+#include <cstdint>
 #include <string>
 
+#include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/util/locks.h"
 #include "kudu/util/maintenance_manager.h"
 
 namespace kudu {
 
 class Histogram;
-template<class T>
+template <class T>
 class AtomicGauge;
 
 namespace tablet {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/tablet_random_access-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/tablet_random_access-test.cc b/src/kudu/tablet/tablet_random_access-test.cc
index 8d9304f..e31ae5d 100644
--- a/src/kudu/tablet/tablet_random_access-test.cc
+++ b/src/kudu/tablet/tablet_random_access-test.cc
@@ -15,21 +15,44 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <boost/optional.hpp>
+#include <cstdint>
+#include <cstdlib>
+#include <memory>
+#include <ostream>
+#include <string>
+#include <vector>
+
+#include <boost/bind.hpp> // IWYU pragma: keep
+#include <boost/optional/optional.hpp>
 #include <boost/optional/optional_io.hpp>
 #include <glog/logging.h>
-#include <glog/stl_logging.h>
 #include <gtest/gtest.h>
 #include <gflags/gflags.h>
-#include <string>
-#include <vector>
-
+#include <gflags/gflags_declare.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/rowblock.h"
+#include "kudu/common/scan_spec.h"
 #include "kudu/common/schema.h"
-#include "kudu/gutil/casts.h"
+#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/tablet/key_value_test_schema.h"
+#include "kudu/tablet/local_tablet_writer.h"
+#include "kudu/tablet/rowset.h"
+#include "kudu/tablet/tablet-test-util.h"
 #include "kudu/tablet/tablet.h"
-#include "kudu/tablet/tablet-test-base.h"
+#include "kudu/util/countdown_latch.h"
+#include "kudu/util/memory/arena.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/status.h"
 #include "kudu/util/stopwatch.h"
+#include "kudu/util/test_util.h"
+#include "kudu/util/thread.h"
 
 DEFINE_int32(keyspace_size, 3000, "number of unique row keys to insert/mutate");
 DEFINE_int32(runtime_seconds, 1, "number of seconds to run the test");

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/tablet_replica-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/tablet_replica-test.cc b/src/kudu/tablet/tablet_replica-test.cc
index 8335827..7ebb64e 100644
--- a/src/kudu/tablet/tablet_replica-test.cc
+++ b/src/kudu/tablet/tablet_replica-test.cc
@@ -15,36 +15,62 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <algorithm>
+#include <cstdint>
+#include <memory>
+#include <ostream>
+#include <string>
+
+#include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
 #include <glog/logging.h>
 #include <gtest/gtest.h>
 
 #include "kudu/clock/clock.h"
-#include "kudu/clock/logical_clock.h"
+#include "kudu/common/common.pb.h"
 #include "kudu/common/partial_row.h"
-#include "kudu/common/timestamp.h"
-#include "kudu/common/wire_protocol-test-util.h"
+#include "kudu/common/row_operations.h"
+#include "kudu/common/schema.h"
 #include "kudu/common/wire_protocol.h"
+#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/consensus/consensus.pb.h"
 #include "kudu/consensus/consensus_meta.h"
 #include "kudu/consensus/consensus_meta_manager.h"
 #include "kudu/consensus/log.h"
+#include "kudu/consensus/log_anchor_registry.h"
 #include "kudu/consensus/log_reader.h"
 #include "kudu/consensus/log_util.h"
+#include "kudu/consensus/metadata.pb.h"
+#include "kudu/consensus/opid.pb.h"
 #include "kudu/consensus/opid_util.h"
+#include "kudu/consensus/raft_consensus.h"
+#include "kudu/fs/fs_manager.h"
+#include "kudu/gutil/bind.h"
+#include "kudu/gutil/bind_helpers.h"
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
+#include "kudu/gutil/move.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/rpc/messenger.h"
+#include "kudu/rpc/result_tracker.h"
 #include "kudu/tablet/tablet-test-util.h"
+#include "kudu/tablet/tablet.h"
+#include "kudu/tablet/tablet_metadata.h"
 #include "kudu/tablet/tablet_replica.h"
 #include "kudu/tablet/tablet_replica_mm_ops.h"
 #include "kudu/tablet/transactions/transaction.h"
 #include "kudu/tablet/transactions/transaction_driver.h"
+#include "kudu/tablet/transactions/transaction_tracker.h"
 #include "kudu/tablet/transactions/write_transaction.h"
 #include "kudu/tserver/tserver.pb.h"
+#include "kudu/util/countdown_latch.h"
 #include "kudu/util/maintenance_manager.h"
 #include "kudu/util/metrics.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/pb_util.h"
+#include "kudu/util/status.h"
 #include "kudu/util/test_macros.h"
-#include "kudu/util/test_util.h"
 #include "kudu/util/threadpool.h"
 
 METRIC_DECLARE_entity(tablet);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/tablet_replica.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/tablet_replica.cc b/src/kudu/tablet/tablet_replica.cc
index 873f5f2..c16b465 100644
--- a/src/kudu/tablet/tablet_replica.cc
+++ b/src/kudu/tablet/tablet_replica.cc
@@ -21,37 +21,33 @@
 #include <functional>
 #include <memory>
 #include <mutex>
+#include <ostream>
 #include <string>
-#include <utility>
+#include <type_traits>
 #include <vector>
 
-#include <gflags/gflags.h>
-
+#include "kudu/clock/clock.h"
+#include "kudu/common/partition.h"
+#include "kudu/consensus/consensus.pb.h"
 #include "kudu/consensus/consensus_meta_manager.h"
 #include "kudu/consensus/consensus_peers.h"
 #include "kudu/consensus/log.h"
 #include "kudu/consensus/log_anchor_registry.h"
-#include "kudu/consensus/log_util.h"
-#include "kudu/consensus/opid_util.h"
-#include "kudu/consensus/quorum_util.h"
+#include "kudu/consensus/opid.pb.h"
 #include "kudu/consensus/raft_consensus.h"
-#include "kudu/gutil/mathlimits.h"
+#include "kudu/gutil/move.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/gutil/sysinfo.h"
-#include "kudu/rpc/messenger.h"
-#include "kudu/rpc/remote_method.h"
-#include "kudu/rpc/rpc_service.h"
-#include "kudu/rpc/service_pool.h"
+#include "kudu/rpc/result_tracker.h"
+#include "kudu/tablet/mvcc.h"
+#include "kudu/tablet/tablet.pb.h"
+#include "kudu/tablet/tablet_replica_mm_ops.h"
 #include "kudu/tablet/transactions/alter_schema_transaction.h"
 #include "kudu/tablet/transactions/transaction_driver.h"
 #include "kudu/tablet/transactions/write_transaction.h"
-#include "kudu/tablet/tablet.pb.h"
-#include "kudu/tablet/tablet_bootstrap.h"
-#include "kudu/tablet/tablet_metrics.h"
-#include "kudu/tablet/tablet_replica_mm_ops.h"
-#include "kudu/util/logging.h"
+#include "kudu/util/maintenance_manager.h"
 #include "kudu/util/metrics.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/pb_util.h"
 #include "kudu/util/stopwatch.h"
 #include "kudu/util/threadpool.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/tablet_replica.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/tablet_replica.h b/src/kudu/tablet/tablet_replica.h
index 27a858d..b1d8bf9 100644
--- a/src/kudu/tablet/tablet_replica.h
+++ b/src/kudu/tablet/tablet_replica.h
@@ -18,30 +18,51 @@
 #ifndef KUDU_TABLET_TABLET_REPLICA_H_
 #define KUDU_TABLET_TABLET_REPLICA_H_
 
+#include <cstdint>
 #include <map>
 #include <memory>
 #include <mutex>
 #include <string>
 #include <vector>
 
-#include "kudu/consensus/log.h"
+#include <glog/logging.h>
+#include <gtest/gtest_prod.h>
+
 #include "kudu/consensus/raft_consensus.h"
 #include "kudu/consensus/time_manager.h"
+#include "kudu/consensus/log.h"
+#include "kudu/consensus/metadata.pb.h"
+#include "kudu/fs/fs_manager.h"
 #include "kudu/gutil/callback.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/ref_counted.h"
+#include "kudu/tablet/metadata.pb.h"
 #include "kudu/tablet/tablet.h"
+#include "kudu/tablet/tablet_metadata.h"
 #include "kudu/tablet/transaction_order_verifier.h"
+#include "kudu/tablet/transactions/transaction.h"
 #include "kudu/tablet/transactions/transaction_tracker.h"
-#include "kudu/util/metrics.h"
-#include "kudu/util/semaphore.h"
+#include "kudu/util/locks.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 class MaintenanceManager;
 class MaintenanceOp;
+class MonoDelta;
 class ThreadPool;
+class ThreadPoolToken;
+template <typename Sig>
+class Callback;
 
 namespace consensus {
 class ConsensusMetadataManager;
+class TransactionStatusPB;
+}
+
+namespace clock {
+class Clock;
 }
 
 namespace log {
@@ -53,16 +74,11 @@ class Messenger;
 class ResultTracker;
 } // namespace rpc
 
-namespace tserver {
-class CatchUpServiceTest;
-} // namespace tserver
-
 namespace tablet {
-class LeaderTransactionDriver;
-class ReplicaTransactionDriver;
-class TabletReplica;
+class AlterSchemaTransactionState;
 class TabletStatusPB;
 class TransactionDriver;
+class WriteTransactionState;
 
 // A replica in a tablet consensus configuration, which coordinates writes to tablets.
 // Each time Write() is called this class appends a new entry to a replicated

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/tablet_replica_mm_ops.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/tablet_replica_mm_ops.cc b/src/kudu/tablet/tablet_replica_mm_ops.cc
index f2d16e2..6d0fc38 100644
--- a/src/kudu/tablet/tablet_replica_mm_ops.cc
+++ b/src/kudu/tablet/tablet_replica_mm_ops.cc
@@ -17,17 +17,21 @@
 
 #include "kudu/tablet/tablet_replica_mm_ops.h"
 
-#include <algorithm>
-#include <gflags/gflags.h>
 #include <map>
 #include <mutex>
+#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/tablet/tablet_metrics.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/maintenance_manager.h"
 #include "kudu/util/metrics.h"
+#include "kudu/util/status.h"
 
 DEFINE_int32(flush_threshold_mb, 1024,
              "Size at which MemRowSet flushes are triggered. "

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/tablet_replica_mm_ops.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/tablet_replica_mm_ops.h b/src/kudu/tablet/tablet_replica_mm_ops.h
index fc391ed..2404b48 100644
--- a/src/kudu/tablet/tablet_replica_mm_ops.h
+++ b/src/kudu/tablet/tablet_replica_mm_ops.h
@@ -18,16 +18,21 @@
 #ifndef KUDU_TABLET_TABLET_REPLICA_MM_OPS_H_
 #define KUDU_TABLET_TABLET_REPLICA_MM_OPS_H_
 
+#include <cstdint>
+#include <string>
+
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
+#include "kudu/gutil/stringprintf.h"
+#include "kudu/tablet/tablet.h"
 #include "kudu/tablet/tablet_replica.h"
+#include "kudu/util/locks.h"
 #include "kudu/util/maintenance_manager.h"
+#include "kudu/util/metrics.h"
+#include "kudu/util/semaphore.h"
 #include "kudu/util/stopwatch.h"
 
 namespace kudu {
-
-class Histogram;
-template<class T>
-class AtomicGauge;
-
 namespace tablet {
 
 class FlushOpPerfImprovementPolicy {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/tablet_throttle-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/tablet_throttle-test.cc b/src/kudu/tablet/tablet_throttle-test.cc
index c150dcc..80a83b2 100644
--- a/src/kudu/tablet/tablet_throttle-test.cc
+++ b/src/kudu/tablet/tablet_throttle-test.cc
@@ -15,15 +15,20 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <gflags/gflags.h>
-#include <glog/logging.h>
+#include <memory>
+#include <string>
 
-#include "kudu/tablet/tablet.h"
+#include <gflags/gflags_declare.h>
+#include <gtest/gtest.h>
+
+#include "kudu/common/common.pb.h"
+#include "kudu/common/schema.h"
+#include "kudu/gutil/port.h"
 #include "kudu/tablet/tablet-test-util.h"
-#include "kudu/util/test_macros.h"
+#include "kudu/tablet/tablet.h"
+#include "kudu/util/monotime.h"
 
 DECLARE_int64(tablet_throttler_rpc_per_sec);
-
 DECLARE_int64(tablet_throttler_bytes_per_sec);
 
 namespace kudu {

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

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/transaction_order_verifier.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/transaction_order_verifier.h b/src/kudu/tablet/transaction_order_verifier.h
index 8c41a32..a2c327a 100644
--- a/src/kudu/tablet/transaction_order_verifier.h
+++ b/src/kudu/tablet/transaction_order_verifier.h
@@ -17,6 +17,8 @@
 #ifndef KUDU_TABLET_TRANSACTION_ORDER_VERIFIER_H
 #define KUDU_TABLET_TRANSACTION_ORDER_VERIFIER_H
 
+#include <cstdint>
+
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/walltime.h"
 #include "kudu/gutil/threading/thread_collision_warner.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/transactions/alter_schema_transaction.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/transactions/alter_schema_transaction.cc b/src/kudu/tablet/transactions/alter_schema_transaction.cc
index 89ed599..eea0417 100644
--- a/src/kudu/tablet/transactions/alter_schema_transaction.cc
+++ b/src/kudu/tablet/transactions/alter_schema_transaction.cc
@@ -15,15 +15,21 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <glog/logging.h>
-
 #include "kudu/tablet/transactions/alter_schema_transaction.h"
 
+#include <algorithm>
+#include <memory>
+
+#include <glog/logging.h>
+
 #include "kudu/clock/hybrid_clock.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/timestamp.h"
 #include "kudu/common/wire_protocol.h"
-#include "kudu/rpc/rpc_context.h"
+#include "kudu/consensus/log.h"
+#include "kudu/consensus/raft_consensus.h"
+#include "kudu/gutil/strings/substitute.h"
 #include "kudu/tablet/tablet.h"
-#include "kudu/tablet/tablet_metrics.h"
 #include "kudu/tablet/tablet_replica.h"
 #include "kudu/tserver/tserver.pb.h"
 #include "kudu/util/pb_util.h"
@@ -32,7 +38,6 @@
 namespace kudu {
 namespace tablet {
 
-using boost::bind;
 using consensus::ReplicateMsg;
 using consensus::CommitMsg;
 using consensus::ALTER_SCHEMA_OP;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/transactions/alter_schema_transaction.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/transactions/alter_schema_transaction.h b/src/kudu/tablet/transactions/alter_schema_transaction.h
index e1e0ab9..ae17933 100644
--- a/src/kudu/tablet/transactions/alter_schema_transaction.h
+++ b/src/kudu/tablet/transactions/alter_schema_transaction.h
@@ -18,23 +18,29 @@
 #ifndef KUDU_TABLET_ALTER_SCHEMA_TRANSACTION_H_
 #define KUDU_TABLET_ALTER_SCHEMA_TRANSACTION_H_
 
+#include <cstddef>
+#include <cstdint>
+#include <memory>
 #include <mutex>
 #include <string>
 
+#include "kudu/consensus/consensus.pb.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
 #include "kudu/tablet/transactions/transaction.h"
-#include "kudu/util/locks.h"
+#include "kudu/tserver/tserver_admin.pb.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 
 class Schema;
-
-namespace consensus {
-class Consensus;
-}
+class rw_semaphore;
 
 namespace tablet {
 
+class TabletReplica;
+
 // Transaction Context for the AlterSchema operation.
 // Keeps track of the Transaction states (request, result, ...)
 class AlterSchemaTransactionState : public TransactionState {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/transactions/transaction.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/transactions/transaction.cc b/src/kudu/tablet/transactions/transaction.cc
index efa6688..543dcd8 100644
--- a/src/kudu/tablet/transactions/transaction.cc
+++ b/src/kudu/tablet/transactions/transaction.cc
@@ -17,6 +17,8 @@
 
 #include "kudu/tablet/transactions/transaction.h"
 
+#include "kudu/rpc/result_tracker.h"
+
 namespace kudu {
 namespace tablet {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/transactions/transaction.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/transactions/transaction.h b/src/kudu/tablet/transactions/transaction.h
index dd277cd..2fabd05 100644
--- a/src/kudu/tablet/transactions/transaction.h
+++ b/src/kudu/tablet/transactions/transaction.h
@@ -18,24 +18,38 @@
 #ifndef KUDU_TABLET_TRANSACTION_H_
 #define KUDU_TABLET_TRANSACTION_H_
 
-#include <string>
+#include <cstddef>
+#include <cstdint>
 #include <mutex>
-#include <kudu/rpc/result_tracker.h>
+#include <string>
+
+#include <glog/logging.h>
 
+#include "kudu/common/common.pb.h"
 #include "kudu/common/timestamp.h"
 #include "kudu/common/wire_protocol.h"
+#include "kudu/consensus/consensus.pb.h"
+#include "kudu/consensus/opid.pb.h"
 #include "kudu/consensus/raft_consensus.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
+#include "kudu/rpc/result_tracker.h"
+#include "kudu/rpc/rpc_header.pb.h"
+#include "kudu/tserver/tserver.pb.h"
 #include "kudu/util/auto_release_pool.h"
+#include "kudu/util/countdown_latch.h"
 #include "kudu/util/locks.h"
 #include "kudu/util/memory/arena.h"
 #include "kudu/util/status.h"
 
-namespace kudu {
-
-namespace rpc {
-class ResultTracker;
-} // namespace rpc
+namespace google {
+namespace protobuf {
+class Message;
+}
+}
 
+namespace kudu {
 namespace tablet {
 class TabletReplica;
 class TransactionCompletionCallback;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/transactions/transaction_driver.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/transactions/transaction_driver.cc b/src/kudu/tablet/transactions/transaction_driver.cc
index d823b10..986e925 100644
--- a/src/kudu/tablet/transactions/transaction_driver.cc
+++ b/src/kudu/tablet/transactions/transaction_driver.cc
@@ -17,18 +17,40 @@
 
 #include "kudu/tablet/transactions/transaction_driver.h"
 
+#include <algorithm>
 #include <functional>
+#include <memory>
 #include <mutex>
-
+#include <ostream>
+#include <type_traits>
+
+#include <glog/logging.h>
+#include <google/protobuf/descriptor.h>
+#include <google/protobuf/message.h>
+
+#include "kudu/clock/clock.h"
+#include "kudu/consensus/raft_consensus.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/timestamp.h"
+#include "kudu/consensus/log.h"
 #include "kudu/consensus/time_manager.h"
+#include "kudu/gutil/bind.h"
+#include "kudu/gutil/bind_helpers.h"
+#include "kudu/gutil/move.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/strcat.h"
+#include "kudu/gutil/strings/substitute.h"
 #include "kudu/rpc/result_tracker.h"
+#include "kudu/rpc/rpc_header.pb.h"
+#include "kudu/tablet/mvcc.h"
+#include "kudu/tablet/tablet.h"
 #include "kudu/tablet/tablet_replica.h"
+#include "kudu/tablet/transaction_order_verifier.h"
 #include "kudu/tablet/transactions/transaction_tracker.h"
-#include "kudu/util/debug-util.h"
 #include "kudu/util/debug/trace_event.h"
 #include "kudu/util/logging.h"
 #include "kudu/util/pb_util.h"
+#include "kudu/util/status_callback.h"
 #include "kudu/util/threadpool.h"
 #include "kudu/util/trace.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/transactions/transaction_driver.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/transactions/transaction_driver.h b/src/kudu/tablet/transactions/transaction_driver.h
index da65d59..1e77dd6 100644
--- a/src/kudu/tablet/transactions/transaction_driver.h
+++ b/src/kudu/tablet/transactions/transaction_driver.h
@@ -20,24 +20,29 @@
 
 #include <string>
 
-#include "kudu/clock/clock.h"
-#include "kudu/consensus/raft_consensus.h"
+#include "kudu/consensus/consensus.pb.h"
+#include "kudu/consensus/opid.pb.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/walltime.h"
-#include "kudu/rpc/result_tracker.h"
 #include "kudu/tablet/transactions/transaction.h"
+#include "kudu/util/locks.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/status.h"
 #include "kudu/util/trace.h"
 
 namespace kudu {
+class Timestamp;
 class ThreadPool;
+class ThreadPoolToken;
 
 namespace log {
 class Log;
 } // namespace log
 
-namespace rpc {
-class ResultTracker;
+namespace consensus {
+class RaftConsensus;
 }
 
 namespace tablet {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/transactions/transaction_tracker-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/transactions/transaction_tracker-test.cc b/src/kudu/tablet/transactions/transaction_tracker-test.cc
index 695dd6a..4edb7e8 100644
--- a/src/kudu/tablet/transactions/transaction_tracker-test.cc
+++ b/src/kudu/tablet/transactions/transaction_tracker-test.cc
@@ -15,20 +15,40 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <gtest/gtest.h>
+#include <cstdint>
+#include <ostream>
+#include <string>
 #include <memory>
 #include <vector>
 
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
+#include "kudu/consensus/consensus.pb.h"
+#include "kudu/gutil/casts.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/move.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/ref_counted.h"
+#include "kudu/tablet/transactions/transaction.h"
 #include "kudu/tablet/transactions/transaction_driver.h"
 #include "kudu/tablet/transactions/transaction_tracker.h"
-#include "kudu/tablet/transactions/transaction.h"
-#include "kudu/tablet/transactions/write_transaction.h"
+#include "kudu/util/countdown_latch.h"
 #include "kudu/util/mem_tracker.h"
 #include "kudu/util/metrics.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 #include "kudu/util/thread.h"
 
+namespace google {
+namespace protobuf {
+class Message;
+}
+}
+
 DECLARE_int64(tablet_transaction_memory_limit_mb);
 
 METRIC_DECLARE_entity(tablet);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/transactions/transaction_tracker.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/transactions/transaction_tracker.cc b/src/kudu/tablet/transactions/transaction_tracker.cc
index c15b39e..76d2d88 100644
--- a/src/kudu/tablet/transactions/transaction_tracker.cc
+++ b/src/kudu/tablet/transactions/transaction_tracker.cc
@@ -19,11 +19,21 @@
 
 #include <algorithm>
 #include <limits>
+#include <mutex>
+#include <ostream>
+#include <string>
 #include <vector>
 
+#include <gflags/gflags.h>
+#include <glog/logging.h>
+#include <google/protobuf/message.h>
+
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/tablet/tablet.h"
 #include "kudu/tablet/tablet_replica.h"
+#include "kudu/tablet/transactions/transaction.h"
 #include "kudu/tablet/transactions/transaction_driver.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/logging.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/transactions/transaction_tracker.h
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/transactions/transaction_tracker.h b/src/kudu/tablet/transactions/transaction_tracker.h
index 3a3725b..437e28e 100644
--- a/src/kudu/tablet/transactions/transaction_tracker.h
+++ b/src/kudu/tablet/transactions/transaction_tracker.h
@@ -18,25 +18,25 @@
 #ifndef KUDU_TABLET_TRANSACTION_TRACKER_H_
 #define KUDU_TABLET_TRANSACTION_TRACKER_H_
 
+#include <cstdint>
 #include <memory>
-#include <string>
 #include <unordered_map>
 #include <vector>
 
 #include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/ref_counted.h"
-#include "kudu/tablet/transactions/transaction.h"
 #include "kudu/util/locks.h"
+#include "kudu/util/metrics.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 
-template<class T>
-class AtomicGauge;
-class Counter;
 class MemTracker;
-class MetricEntity;
+class MonoDelta;
 
 namespace tablet {
+
 class TransactionDriver;
 
 // Each TabletReplica has a TransactionTracker which keeps track of pending transactions.

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tablet/transactions/write_transaction.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tablet/transactions/write_transaction.cc b/src/kudu/tablet/transactions/write_transaction.cc
index 899ebf0..bb56751 100644
--- a/src/kudu/tablet/transactions/write_transaction.cc
+++ b/src/kudu/tablet/transactions/write_transaction.cc
@@ -18,23 +18,44 @@
 #include "kudu/tablet/transactions/write_transaction.h"
 
 #include <algorithm>
+#include <cstdint>
+#include <ctime>
+#include <new>
+#include <ostream>
+#include <type_traits>
 #include <vector>
 
-#include "kudu/clock/hybrid_clock.h"
+#include <gflags/gflags.h>
+#include <glog/logging.h>
+
+#include "kudu/clock/clock.h"
+#include "kudu/common/common.pb.h"
 #include "kudu/common/row_operations.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/timestamp.h"
 #include "kudu/common/wire_protocol.h"
-#include "kudu/gutil/stl_util.h"
-#include "kudu/gutil/strings/numbers.h"
+#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/consensus/opid.pb.h"
+#include "kudu/consensus/raft_consensus.h"
+#include "kudu/util/memory/arena.h"
+#include "kudu/gutil/dynamic_annotations.h"
+#include "kudu/gutil/move.h"
+#include "kudu/gutil/strings/substitute.h"
 #include "kudu/gutil/walltime.h"
-#include "kudu/rpc/rpc_context.h"
+#include "kudu/rpc/rpc_header.pb.h"
+#include "kudu/tablet/lock_manager.h"
+#include "kudu/tablet/mvcc.h"
 #include "kudu/tablet/row_op.h"
 #include "kudu/tablet/tablet.h"
+#include "kudu/tablet/tablet.pb.h"
 #include "kudu/tablet/tablet_metrics.h"
 #include "kudu/tablet/tablet_replica.h"
 #include "kudu/tserver/tserver.pb.h"
 #include "kudu/util/debug/trace_event.h"
 #include "kudu/util/flag_tags.h"
+#include "kudu/util/metrics.h"
 #include "kudu/util/pb_util.h"
+#include "kudu/util/rw_semaphore.h"
 #include "kudu/util/trace.h"
 
 DEFINE_int32(tablet_inject_latency_on_apply_write_txn_ms, 0,
@@ -43,21 +64,22 @@ DEFINE_int32(tablet_inject_latency_on_apply_write_txn_ms, 0,
 TAG_FLAG(tablet_inject_latency_on_apply_write_txn_ms, unsafe);
 TAG_FLAG(tablet_inject_latency_on_apply_write_txn_ms, runtime);
 
+using std::string;
+using std::unique_ptr;
+using std::vector;
+using strings::Substitute;
+
 namespace kudu {
 namespace tablet {
 
-using consensus::ReplicateMsg;
+using pb_util::SecureShortDebugString;
 using consensus::CommitMsg;
 using consensus::DriverType;
+using consensus::ReplicateMsg;
 using consensus::WRITE_OP;
-using pb_util::SecureShortDebugString;
 using tserver::TabletServerErrorPB;
 using tserver::WriteRequestPB;
 using tserver::WriteResponsePB;
-using std::string;
-using std::unique_ptr;
-using std::vector;
-using strings::Substitute;
 
 WriteTransaction::WriteTransaction(unique_ptr<WriteTransactionState> state, DriverType type)
   : Transaction(state.get(), type, Transaction::WRITE_TXN),


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

Posted by al...@apache.org.
http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/master_cert_authority-itest.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/master_cert_authority-itest.cc b/src/kudu/integration-tests/master_cert_authority-itest.cc
index 3a369c4..24c6be2 100644
--- a/src/kudu/integration-tests/master_cert_authority-itest.cc
+++ b/src/kudu/integration-tests/master_cert_authority-itest.cc
@@ -17,13 +17,18 @@
 
 #include <memory>
 #include <string>
+#include <vector>
 
+#include <boost/optional/optional.hpp>
 #include <gtest/gtest.h>
 
-#include "kudu/gutil/strings/substitute.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/port.h"
 #include "kudu/integration-tests/internal_mini_cluster.h"
-#include "kudu/master/catalog_manager.h"
 #include "kudu/master/master.h"
+#include "kudu/master/master.pb.h"
 #include "kudu/master/master.proxy.h"
 #include "kudu/master/master_cert_authority.h"
 #include "kudu/master/mini_master.h"
@@ -32,7 +37,10 @@
 #include "kudu/security/ca/cert_management.h"
 #include "kudu/security/cert.h"
 #include "kudu/security/crypto.h"
+#include "kudu/security/openssl_util.h"
 #include "kudu/util/pb_util.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 #include "kudu/util/user.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/master_failover-itest.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/master_failover-itest.cc b/src/kudu/integration-tests/master_failover-itest.cc
index e02e5ca..93106b7 100644
--- a/src/kudu/integration-tests/master_failover-itest.cc
+++ b/src/kudu/integration-tests/master_failover-itest.cc
@@ -15,24 +15,34 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <glog/logging.h>
-#include <gtest/gtest.h>
+#include <cstdint>
 #include <memory>
+#include <ostream>
 #include <set>
 #include <string>
 #include <vector>
 
-#include "kudu/client/client.h"
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
 #include "kudu/client/client-internal.h"
 #include "kudu/client/client-test-util.h"
+#include "kudu/client/client.h"
+#include "kudu/client/schema.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/split.h"
+#include "kudu/gutil/strings/strip.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/gutil/strings/util.h"
 #include "kudu/integration-tests/external_mini_cluster.h"
 #include "kudu/master/sys_catalog.h"
 #include "kudu/util/metrics.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/net/net_util.h"
 #include "kudu/util/random.h"
+#include "kudu/util/status.h"
 #include "kudu/util/subprocess.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 METRIC_DECLARE_entity(server);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/master_migration-itest.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/master_migration-itest.cc b/src/kudu/integration-tests/master_migration-itest.cc
index 095086a..d58d419 100644
--- a/src/kudu/integration-tests/master_migration-itest.cc
+++ b/src/kudu/integration-tests/master_migration-itest.cc
@@ -15,21 +15,30 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <glog/logging.h>
-#include <gtest/gtest.h>
+#include <cstdint>
 #include <memory>
 #include <string>
+#include <utility>
 #include <vector>
 
-#include "kudu/client/client.h"
+#include <gtest/gtest.h>
+
 #include "kudu/client/client-test-util.h"
+#include "kudu/client/client.h"
+#include "kudu/client/schema.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/strip.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/integration-tests/external_mini_cluster.h"
+#include "kudu/integration-tests/mini_cluster.h"
 #include "kudu/master/sys_catalog.h"
 #include "kudu/util/env.h"
+#include "kudu/util/net/net_util.h"
 #include "kudu/util/path_util.h"
+#include "kudu/util/status.h"
 #include "kudu/util/subprocess.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 using kudu::client::KuduClient;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/master_replication-itest.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/master_replication-itest.cc b/src/kudu/integration-tests/master_replication-itest.cc
index ce8f991..b9f61a8 100644
--- a/src/kudu/integration-tests/master_replication-itest.cc
+++ b/src/kudu/integration-tests/master_replication-itest.cc
@@ -15,23 +15,38 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <gflags/gflags.h>
-#include <gtest/gtest.h>
-
+#include <cstdint>
+#include <memory>
+#include <ostream>
+#include <string>
 #include <vector>
 
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
 #include "kudu/client/client.h"
-#include "kudu/common/schema.h"
-#include "kudu/gutil/strings/substitute.h"
+#include "kudu/client/schema.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/integration-tests/internal_mini_cluster.h"
 #include "kudu/master/catalog_manager.h"
 #include "kudu/master/master.h"
+#include "kudu/master/master.pb.h"
 #include "kudu/master/master.proxy.h"
 #include "kudu/master/mini_master.h"
 #include "kudu/rpc/messenger.h"
 #include "kudu/rpc/rpc_controller.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/pb_util.h"
+#include "kudu/util/net/net_util.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
+#include "kudu/util/thread.h"
 
 using std::string;
 using std::vector;
@@ -39,6 +54,8 @@ using std::vector;
 namespace kudu {
 namespace master {
 
+class TSDescriptor;
+
 using client::KuduClient;
 using client::KuduClientBuilder;
 using client::KuduColumnSchema;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/mini_cluster.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/mini_cluster.cc b/src/kudu/integration-tests/mini_cluster.cc
index bbf3bc2..06fe10a 100644
--- a/src/kudu/integration-tests/mini_cluster.cc
+++ b/src/kudu/integration-tests/mini_cluster.cc
@@ -17,9 +17,12 @@
 
 #include "kudu/integration-tests/mini_cluster.h"
 
-#include <stdint.h>
 #include <unistd.h>
 
+#include <cstdint>
+#include <ostream>
+#include <string>
+
 #include <glog/logging.h>
 
 #include "kudu/gutil/strings/substitute.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/mini_cluster.h
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/mini_cluster.h b/src/kudu/integration-tests/mini_cluster.h
index 854cd0b..267d9d3 100644
--- a/src/kudu/integration-tests/mini_cluster.h
+++ b/src/kudu/integration-tests/mini_cluster.h
@@ -16,15 +16,17 @@
 // under the License.
 #pragma once
 
+#include <cstdint>
 #include <memory>
 #include <string>
 #include <vector>
 
 #include "kudu/client/shared_ptr.h"
-#include "kudu/util/net/net_util.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
-class Status;
+
+class HostPort;
 
 namespace client {
 class KuduClient;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/minidump_generation-itest.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/minidump_generation-itest.cc b/src/kudu/integration-tests/minidump_generation-itest.cc
index a442564..9e51a95 100644
--- a/src/kudu/integration-tests/minidump_generation-itest.cc
+++ b/src/kudu/integration-tests/minidump_generation-itest.cc
@@ -15,15 +15,21 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <csignal>
+#include <memory>
 #include <string>
 #include <vector>
 
-#include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
+#include <gtest/gtest.h>
 
-#include "kudu/integration-tests/external_mini_cluster-itest-base.h"
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/integration-tests/external_mini_cluster-itest-base.h"
+#include "kudu/integration-tests/external_mini_cluster.h"
+#include "kudu/util/env.h"
 #include "kudu/util/path_util.h"
 #include "kudu/util/subprocess.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 DECLARE_string(minidump_path);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/multidir_cluster-itest.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/multidir_cluster-itest.cc b/src/kudu/integration-tests/multidir_cluster-itest.cc
index 5b04ef4..19a288c 100644
--- a/src/kudu/integration-tests/multidir_cluster-itest.cc
+++ b/src/kudu/integration-tests/multidir_cluster-itest.cc
@@ -15,17 +15,23 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <gtest/gtest.h>
-
+#include <cstdint>
 #include <map>
+#include <memory>
 #include <string>
 #include <vector>
 
-#include "kudu/client/client.h"
+#include <gtest/gtest.h>
+
 #include "kudu/gutil/map-util.h"
 #include "kudu/integration-tests/external_mini_cluster-itest-base.h"
+#include "kudu/integration-tests/external_mini_cluster.h"
+#include "kudu/integration-tests/external_mini_cluster_fs_inspector.h"
 #include "kudu/integration-tests/test_workload.h"
 #include "kudu/util/path_util.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
+#include "kudu/util/test_util.h"
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/open-readonly-fs-itest.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/open-readonly-fs-itest.cc b/src/kudu/integration-tests/open-readonly-fs-itest.cc
index 7277e54..e1b11ce 100644
--- a/src/kudu/integration-tests/open-readonly-fs-itest.cc
+++ b/src/kudu/integration-tests/open-readonly-fs-itest.cc
@@ -15,15 +15,30 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <algorithm>
+#include <cstdint>
 #include <memory>
+#include <ostream>
+#include <string>
 #include <thread>
+#include <vector>
 
-#include "kudu/client/client-test-util.h"
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
+#include "kudu/client/client.h"
+#include "kudu/client/schema.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/client/write_op.h"
+#include "kudu/common/partial_row.h"
 #include "kudu/fs/fs_manager.h"
-#include "kudu/integration-tests/cluster_itest_util.h"
-#include "kudu/integration-tests/cluster_verifier.h"
+#include "kudu/gutil/strings/substitute.h"
 #include "kudu/integration-tests/external_mini_cluster.h"
+#include "kudu/util/env.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/random.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 using kudu::client::KuduClient;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/raft_consensus-itest.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/raft_consensus-itest.cc b/src/kudu/integration-tests/raft_consensus-itest.cc
index af5e391..bc7f849 100644
--- a/src/kudu/integration-tests/raft_consensus-itest.cc
+++ b/src/kudu/integration-tests/raft_consensus-itest.cc
@@ -15,38 +15,78 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <algorithm>
+#include <cstdint>
+#include <cstdlib>
+#include <memory>
+#include <ostream>
 #include <string>
 #include <unordered_map>
 #include <unordered_set>
+#include <utility>
 #include <vector>
 
-#include <boost/optional.hpp>
+#include <boost/optional/optional.hpp>
 #include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
 #include <glog/logging.h>
 #include <glog/stl_logging.h>
 #include <gtest/gtest.h>
 
 #include "kudu/client/client-test-util.h"
 #include "kudu/client/client.h"
+#include "kudu/client/shared_ptr.h"
 #include "kudu/client/write_op.h"
-#include "kudu/common/schema.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/partial_row.h"
 #include "kudu/common/wire_protocol-test-util.h"
 #include "kudu/common/wire_protocol.h"
+#include "kudu/common/wire_protocol.pb.h"
 #include "kudu/consensus/consensus.pb.h"
+#include "kudu/consensus/consensus.proxy.h"
 #include "kudu/consensus/consensus_peers.h"
 #include "kudu/consensus/metadata.pb.h"
+#include "kudu/consensus/opid.pb.h"
+#include "kudu/consensus/opid_util.h"
 #include "kudu/consensus/quorum_util.h"
+#include "kudu/gutil/basictypes.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
+#include "kudu/gutil/stl_util.h"
+#include "kudu/gutil/stringprintf.h"
 #include "kudu/gutil/strings/strcat.h"
+#include "kudu/gutil/strings/substitute.h"
 #include "kudu/gutil/strings/util.h"
+#include "kudu/integration-tests/cluster_itest_util.h"
 #include "kudu/integration-tests/cluster_verifier.h"
+#include "kudu/integration-tests/external_mini_cluster.h"
+#include "kudu/integration-tests/external_mini_cluster_fs_inspector.h"
 #include "kudu/integration-tests/log_verifier.h"
 #include "kudu/integration-tests/test_workload.h"
 #include "kudu/integration-tests/ts_itest-base.h"
+#include "kudu/master/master.pb.h"
+#include "kudu/rpc/messenger.h"
+#include "kudu/rpc/rpc_controller.h"
 #include "kudu/server/server_base.pb.h"
+#include "kudu/server/server_base.proxy.h"
+#include "kudu/tablet/metadata.pb.h"
+#include "kudu/tserver/tablet_server-test-base.h"
+#include "kudu/tserver/tserver.pb.h"
+#include "kudu/tserver/tserver_service.proxy.h"
+#include "kudu/util/atomic.h"
+#include "kudu/util/countdown_latch.h"
+#include "kudu/util/metrics.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/pb_util.h"
+#include "kudu/util/random.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"
+#include "kudu/util/thread.h"
 
 DEFINE_int32(num_client_threads, 8,
              "Number of client threads to launch");

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/registration-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/registration-test.cc b/src/kudu/integration-tests/registration-test.cc
index a08ba39..5a9a568 100644
--- a/src/kudu/integration-tests/registration-test.cc
+++ b/src/kudu/integration-tests/registration-test.cc
@@ -15,20 +15,25 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <algorithm>
 #include <memory>
+#include <ostream>
 #include <string>
-#include <utility>
 #include <vector>
 
 #include <gflags/gflags_declare.h>
+#include <glog/logging.h>
 #include <gtest/gtest.h>
 
+#include "kudu/common/common.pb.h"
 #include "kudu/common/schema.h"
-#include "kudu/common/wire_protocol-test-util.h"
-#include "kudu/fs/fs_manager.h"
+#include "kudu/common/wire_protocol.h"
+#include "kudu/common/wire_protocol.pb.h"
 #include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/integration-tests/internal_mini_cluster.h"
+#include "kudu/master/catalog_manager.h"
 #include "kudu/master/master-test-util.h"
 #include "kudu/master/master.h"
 #include "kudu/master/master.pb.h"
@@ -38,15 +43,21 @@
 #include "kudu/security/test/test_certs.h"
 #include "kudu/security/tls_context.h"
 #include "kudu/security/token_verifier.h"
+#include "kudu/server/webserver_options.h"
 #include "kudu/tablet/tablet.h"
 #include "kudu/tablet/tablet_replica.h"
 #include "kudu/tserver/mini_tablet_server.h"
 #include "kudu/tserver/tablet_server.h"
+#include "kudu/tserver/tablet_server_options.h"
 #include "kudu/util/curl_util.h"
 #include "kudu/util/faststring.h"
+#include "kudu/util/make_shared.h"
 #include "kudu/util/metrics.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/net/sockaddr.h"
 #include "kudu/util/pb_util.h"
-#include "kudu/util/stopwatch.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 #include "kudu/util/version_info.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/security-faults-itest.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/security-faults-itest.cc b/src/kudu/integration-tests/security-faults-itest.cc
index 5b58ed4..5201bf2 100644
--- a/src/kudu/integration-tests/security-faults-itest.cc
+++ b/src/kudu/integration-tests/security-faults-itest.cc
@@ -16,18 +16,31 @@
 // under the License.
 
 #include <algorithm>
+#include <cstdint>
 #include <iterator>
 #include <memory>
+#include <ostream>
 #include <string>
 #include <vector>
 
 #include <gflags/gflags_declare.h>
+#include <glog/logging.h>
+#include <gtest/gtest.h>
 
-#include "kudu/client/client.h"
 #include "kudu/client/client-test-util.h"
+#include "kudu/client/client.h"
+#include "kudu/client/schema.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/client/write_op.h"
+#include "kudu/common/partial_row.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/integration-tests/external_mini_cluster.h"
+#include "kudu/security/test/mini_kdc.h"
 #include "kudu/tablet/key_value_test_schema.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 DECLARE_bool(rpc_reopen_outbound_connections);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/security-itest.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/security-itest.cc b/src/kudu/integration-tests/security-itest.cc
index 13f3ac1..d8d5cc0 100644
--- a/src/kudu/integration-tests/security-itest.cc
+++ b/src/kudu/integration-tests/security-itest.cc
@@ -16,22 +16,39 @@
 // under the License.
 
 #include <sys/stat.h>
-#include <sys/types.h>
 
+#include <cstdio>
 #include <memory>
 #include <string>
 #include <vector>
 
-#include "kudu/client/client.h"
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
 #include "kudu/client/client-test-util.h"
+#include "kudu/client/client.h"
+#include "kudu/client/schema.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/client/write_op.h"
+#include "kudu/common/partial_row.h"
+#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/integration-tests/external_mini_cluster.h"
+#include "kudu/master/master.pb.h"
 #include "kudu/master/master.proxy.h"
 #include "kudu/rpc/messenger.h"
+#include "kudu/rpc/rpc_controller.h"
+#include "kudu/security/test/mini_kdc.h"
+#include "kudu/server/server_base.pb.h"
 #include "kudu/server/server_base.proxy.h"
 #include "kudu/tablet/key_value_test_schema.h"
 #include "kudu/util/env.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/net/sockaddr.h"
 #include "kudu/util/path_util.h"
+#include "kudu/util/status.h"
 #include "kudu/util/subprocess.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/integration-tests/security-unknown-tsk-itest.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/security-unknown-tsk-itest.cc b/src/kudu/integration-tests/security-unknown-tsk-itest.cc
index afa8fbb..5875e95 100644
--- a/src/kudu/integration-tests/security-unknown-tsk-itest.cc
+++ b/src/kudu/integration-tests/security-unknown-tsk-itest.cc
@@ -16,37 +16,45 @@
 // under the License.
 
 #include <atomic>
+#include <cstdint>
+#include <cstdlib>
 #include <memory>
+#include <ostream>
 #include <string>
 #include <thread>
 #include <vector>
 
-#include <boost/none.hpp>
 #include <boost/optional/optional.hpp>
 #include <gflags/gflags_declare.h>
+#include <glog/logging.h>
 #include <gtest/gtest.h>
 
-#include "kudu/common/schema.h"
-#include "kudu/client/client.h"
 #include "kudu/client/client-internal.h"
 #include "kudu/client/client-test-util.h"
+#include "kudu/client/client.h"
+#include "kudu/client/row_result.h"
 #include "kudu/client/schema.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/client/write_op.h"
+#include "kudu/common/partial_row.h"
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/stl_util.h"
+#include "kudu/gutil/walltime.h"
 #include "kudu/integration-tests/internal_mini_cluster.h"
 #include "kudu/integration-tests/test_workload.h"
-#include "kudu/master/master-test-util.h"
 #include "kudu/master/master.h"
-#include "kudu/master/master.pb.h"
 #include "kudu/master/mini_master.h"
+#include "kudu/rpc/messenger.h"
+#include "kudu/security/crypto.h"
+#include "kudu/security/openssl_util.h"
+#include "kudu/security/token.pb.h"
 #include "kudu/security/token_signer.h"
-#include "kudu/security/token_signing_key.h"
 #include "kudu/security/token_verifier.h"
 #include "kudu/tablet/key_value_test_schema.h"
-#include "kudu/tserver/mini_tablet_server.h"
-#include "kudu/tserver/tablet_server.h"
-#include "kudu/util/pb_util.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/scoped_cleanup.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 DECLARE_bool(rpc_reopen_outbound_connections);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/table_locations-itest.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/table_locations-itest.cc b/src/kudu/integration-tests/table_locations-itest.cc
index 9b972a7..9c04b6e 100644
--- a/src/kudu/integration-tests/table_locations-itest.cc
+++ b/src/kudu/integration-tests/table_locations-itest.cc
@@ -15,12 +15,14 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <gtest/gtest.h>
 #include <memory>
 #include <string>
 #include <utility>
 #include <vector>
 
+#include <gtest/gtest.h>
+
+#include "kudu/common/common.pb.h"
 #include "kudu/common/partial_row.h"
 #include "kudu/common/row_operations.h"
 #include "kudu/common/schema.h"
@@ -31,7 +33,11 @@
 #include "kudu/master/master.proxy.h"
 #include "kudu/master/mini_master.h"
 #include "kudu/rpc/messenger.h"
+#include "kudu/rpc/rpc_controller.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/pb_util.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 using kudu::pb_util::SecureDebugString;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/tablet_copy-itest.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/tablet_copy-itest.cc b/src/kudu/integration-tests/tablet_copy-itest.cc
index 3a53687..e8f44b1 100644
--- a/src/kudu/integration-tests/tablet_copy-itest.cc
+++ b/src/kudu/integration-tests/tablet_copy-itest.cc
@@ -16,31 +16,61 @@
 // under the License.
 
 #include <atomic>
+#include <cstdint>
+#include <limits>
+#include <memory>
+#include <ostream>
 #include <set>
 #include <string>
 #include <thread>
 #include <unordered_map>
+#include <utility>
 #include <vector>
 
-#include <boost/optional.hpp>
+#include <boost/optional/optional.hpp>
 #include <gflags/gflags.h>
+#include <glog/logging.h>
+#include <gtest/gtest.h>
 
 #include "kudu/client/client-test-util.h"
 #include "kudu/client/client.h"
+#include "kudu/client/schema.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/common/partial_row.h"
 #include "kudu/common/wire_protocol-test-util.h"
+#include "kudu/common/wire_protocol.h"
+#include "kudu/common/wire_protocol.pb.h"
 #include "kudu/consensus/consensus_meta_manager.h"
+#include "kudu/consensus/metadata.pb.h"
 #include "kudu/fs/fs_manager.h"
-#include "kudu/gutil/stl_util.h"
+#include "kudu/gutil/basictypes.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/map-util.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/integration-tests/cluster_itest_util.h"
 #include "kudu/integration-tests/cluster_verifier.h"
 #include "kudu/integration-tests/external_mini_cluster-itest-base.h"
+#include "kudu/integration-tests/external_mini_cluster.h"
+#include "kudu/integration-tests/external_mini_cluster_fs_inspector.h"
 #include "kudu/integration-tests/test_workload.h"
-#include "kudu/tablet/tablet_bootstrap.h"
+#include "kudu/tablet/metadata.pb.h"
+#include "kudu/tablet/tablet.pb.h"
 #include "kudu/tablet/tablet_metadata.h"
+#include "kudu/tablet/tablet_replica.h"
 #include "kudu/tserver/tablet_copy_client.h"
+#include "kudu/tserver/tserver.pb.h"
 #include "kudu/util/barrier.h"
+#include "kudu/util/env.h"
+#include "kudu/util/logging.h"
 #include "kudu/util/metrics.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/net/net_util.h"
+#include "kudu/util/net/sockaddr.h"
+#include "kudu/util/path_util.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
+#include "kudu/util/test_util.h"
 
 DEFINE_int32(test_num_threads, 16,
              "Number of test threads to launch");

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/tablet_copy_client_session-itest.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/tablet_copy_client_session-itest.cc b/src/kudu/integration-tests/tablet_copy_client_session-itest.cc
index 5442cd5..a4a1a03 100644
--- a/src/kudu/integration-tests/tablet_copy_client_session-itest.cc
+++ b/src/kudu/integration-tests/tablet_copy_client_session-itest.cc
@@ -15,15 +15,36 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <stdlib.h>
-
-#include <boost/optional.hpp>
+#include <cstdint>
+#include <cstdlib>
+#include <limits>
+#include <memory>
+#include <ostream>
+#include <string>
+#include <unordered_map>
+#include <vector>
+
+#include <boost/optional/optional.hpp>
+#include <glog/logging.h>
+#include <gtest/gtest.h>
 
 #include "kudu/common/wire_protocol.h"
-#include "kudu/gutil/macros.h"
+#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/integration-tests/cluster_itest_util.h"
 #include "kudu/integration-tests/external_mini_cluster-itest-base.h"
+#include "kudu/integration-tests/external_mini_cluster.h"
+#include "kudu/integration-tests/external_mini_cluster_fs_inspector.h"
 #include "kudu/integration-tests/test_workload.h"
+#include "kudu/tablet/metadata.pb.h"
+#include "kudu/tablet/tablet.pb.h"
+#include "kudu/tserver/tserver.pb.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/net/net_util.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
+#include "kudu/util/test_util.h"
+#include "kudu/util/thread.h"
 
 using kudu::itest::StartTabletCopy;
 using kudu::itest::TServerDetails;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/tablet_history_gc-itest.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/tablet_history_gc-itest.cc b/src/kudu/integration-tests/tablet_history_gc-itest.cc
index a0c4a7c..7952675 100644
--- a/src/kudu/integration-tests/tablet_history_gc-itest.cc
+++ b/src/kudu/integration-tests/tablet_history_gc-itest.cc
@@ -15,28 +15,61 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <algorithm>
+#include <cstdint>
+#include <iterator>
 #include <map>
 #include <memory>
+#include <ostream>
+#include <string>
+#include <type_traits>
 #include <unordered_set>
 #include <utility>
+#include <vector>
 
-#include "kudu/client/client-test-util.h"
+#include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
+#include <gtest/gtest.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/client/client-test-util.h"
+#include "kudu/client/client.h"
+#include "kudu/client/scan_batch.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/client/write_op.h"
+#include "kudu/common/partial_row.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/timestamp.h"
 #include "kudu/common/wire_protocol-test-util.h"
+#include "kudu/gutil/casts.h"
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/integration-tests/internal_mini_cluster.h"
 #include "kudu/integration-tests/internal_mini_cluster-itest-base.h"
 #include "kudu/integration-tests/test_workload.h"
 #include "kudu/tablet/local_tablet_writer.h"
+#include "kudu/tablet/rowset.h"
 #include "kudu/tablet/tablet.h"
+#include "kudu/tablet/tablet_metadata.h"
 #include "kudu/tablet/tablet_metrics.h"
 #include "kudu/tablet/tablet_replica.h"
 #include "kudu/tserver/mini_tablet_server.h"
 #include "kudu/tserver/tablet_server.h"
 #include "kudu/tserver/ts_tablet_manager.h"
+#include "kudu/util/env.h"
+#include "kudu/util/metrics.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/random.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
+#include "kudu/util/test_util.h"
 
 using kudu::client::KuduScanner;
 using kudu::client::KuduTable;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/tablet_replacement-itest.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/tablet_replacement-itest.cc b/src/kudu/integration-tests/tablet_replacement-itest.cc
index a2d9bbf..ff55e59 100644
--- a/src/kudu/integration-tests/tablet_replacement-itest.cc
+++ b/src/kudu/integration-tests/tablet_replacement-itest.cc
@@ -15,21 +15,41 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <boost/optional.hpp>
-#include <gflags/gflags.h>
-#include <gtest/gtest.h>
+#include <cstdint>
 #include <memory>
+#include <ostream>
 #include <string>
 #include <unordered_map>
+#include <vector>
 
-#include "kudu/common/wire_protocol.h"
+#include <boost/bind.hpp>
+#include <boost/optional/optional.hpp>
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
+#include "kudu/common/schema.h"
 #include "kudu/common/wire_protocol-test-util.h"
+#include "kudu/common/wire_protocol.h"
+#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/consensus/metadata.pb.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/integration-tests/external_mini_cluster-itest-base.h"
 #include "kudu/integration-tests/cluster_itest_util.h"
 #include "kudu/integration-tests/cluster_verifier.h"
+#include "kudu/integration-tests/external_mini_cluster-itest-base.h"
+#include "kudu/integration-tests/external_mini_cluster.h"
+#include "kudu/integration-tests/external_mini_cluster_fs_inspector.h"
 #include "kudu/integration-tests/test_workload.h"
+#include "kudu/rpc/rpc_controller.h"
+#include "kudu/tablet/metadata.pb.h"
+#include "kudu/tablet/tablet.pb.h"
 #include "kudu/tserver/tserver.pb.h"
+#include "kudu/tserver/tserver_service.proxy.h"
+#include "kudu/util/countdown_latch.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
+#include "kudu/util/test_util.h"
 
 using kudu::consensus::RaftPeerPB;
 using kudu::itest::TServerDetails;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/test_workload.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/test_workload.cc b/src/kudu/integration-tests/test_workload.cc
index 0669daa..333c27a 100644
--- a/src/kudu/integration-tests/test_workload.cc
+++ b/src/kudu/integration-tests/test_workload.cc
@@ -15,19 +15,29 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include "kudu/client/client.h"
+#include "kudu/integration-tests/test_workload.h"
+
+#include <cstddef>
+#include <memory>
+#include <ostream>
+
+#include <glog/logging.h>
+
 #include "kudu/client/client-test-util.h"
-#include "kudu/client/schema-internal.h"
-#include "kudu/common/schema.h"
+#include "kudu/client/client.h"
+#include "kudu/client/scan_batch.h"
+#include "kudu/client/schema.h"
+#include "kudu/client/write_op.h"
+#include "kudu/common/partial_row.h"
 #include "kudu/common/wire_protocol-test-util.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/mathlimits.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/stl_util.h"
-#include "kudu/gutil/strings/substitute.h"
-#include "kudu/integration-tests/external_mini_cluster.h"
-#include "kudu/integration-tests/test_workload.h"
 #include "kudu/tools/data_gen_util.h"
-#include "kudu/util/env.h"
-#include "kudu/util/net/sockaddr.h"
+#include "kudu/integration-tests/mini_cluster.h"
 #include "kudu/util/random.h"
+#include "kudu/util/status.h"
 #include "kudu/util/test_util.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/test_workload.h
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/test_workload.h b/src/kudu/integration-tests/test_workload.h
index 6b0a1ea..6e3dc1a 100644
--- a/src/kudu/integration-tests/test_workload.h
+++ b/src/kudu/integration-tests/test_workload.h
@@ -17,16 +17,19 @@
 #ifndef KUDU_INTEGRATION_TESTS_TEST_WORKLOAD_H
 #define KUDU_INTEGRATION_TESTS_TEST_WORKLOAD_H
 
+#include <cstdint>
+#include <ostream>
 #include <string>
 #include <thread>
 #include <vector>
 
 #include <boost/optional/optional.hpp>
+#include <glog/logging.h>
 
 #include "kudu/client/client.h"
 #include "kudu/client/schema.h"
+#include "kudu/client/shared_ptr.h"
 #include "kudu/gutil/macros.h"
-#include "kudu/gutil/ref_counted.h"
 #include "kudu/util/atomic.h"
 #include "kudu/util/countdown_latch.h"
 #include "kudu/util/monotime.h"
@@ -35,6 +38,7 @@
 namespace kudu {
 
 class MiniCluster;
+class Status;
 
 // Utility class for generating a workload against a test cluster.
 //

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/token_signer-itest.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/token_signer-itest.cc b/src/kudu/integration-tests/token_signer-itest.cc
index ceda3e7..6f46502 100644
--- a/src/kudu/integration-tests/token_signer-itest.cc
+++ b/src/kudu/integration-tests/token_signer-itest.cc
@@ -39,8 +39,10 @@
 #include "kudu/security/token_verifier.h"
 #include "kudu/tserver/mini_tablet_server.h"
 #include "kudu/tserver/tablet_server.h"
+#include "kudu/util/make_shared.h"
 #include "kudu/util/pb_util.h"
 #include "kudu/util/slice.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 DECLARE_int64(authn_token_validity_seconds);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/ts_itest-base.h
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/ts_itest-base.h b/src/kudu/integration-tests/ts_itest-base.h
index 28fa0a3..0458da8 100644
--- a/src/kudu/integration-tests/ts_itest-base.h
+++ b/src/kudu/integration-tests/ts_itest-base.h
@@ -31,6 +31,7 @@
 #include "kudu/integration-tests/cluster_verifier.h"
 #include "kudu/integration-tests/external_mini_cluster.h"
 #include "kudu/integration-tests/external_mini_cluster_fs_inspector.h"
+#include "kudu/master/master.pb.h"
 #include "kudu/master/master.proxy.h"
 #include "kudu/tserver/tablet_server-test-base.h"
 #include "kudu/util/pb_util.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/ts_recovery-itest.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/ts_recovery-itest.cc b/src/kudu/integration-tests/ts_recovery-itest.cc
index 3a44820..bc00958 100644
--- a/src/kudu/integration-tests/ts_recovery-itest.cc
+++ b/src/kudu/integration-tests/ts_recovery-itest.cc
@@ -15,30 +15,58 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <cstdint>
 #include <memory>
+#include <ostream>
 #include <string>
+#include <unordered_map>
+#include <unordered_set>
 #include <utility>
+#include <vector>
 
+#include <glog/logging.h>
 #include <glog/stl_logging.h>
+#include <gtest/gtest.h>
 
 #include "kudu/client/client.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/client/write_op.h"
 #include "kudu/clock/clock.h"
 #include "kudu/clock/hybrid_clock.h"
+#include "kudu/common/partial_row.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/wire_protocol-test-util.h"
 #include "kudu/consensus/consensus-test-util.h"
 #include "kudu/consensus/consensus.pb.h"
 #include "kudu/consensus/consensus_meta.h"
 #include "kudu/consensus/consensus_meta_manager.h"
 #include "kudu/consensus/log-test-base.h"
+#include "kudu/consensus/log.h"
+#include "kudu/consensus/log_util.h"
 #include "kudu/consensus/opid.pb.h"
 #include "kudu/fs/fs_manager.h"
+#include "kudu/gutil/basictypes.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/ref_counted.h"
+#include "kudu/gutil/strings/util.h"
 #include "kudu/integration-tests/cluster_itest_util.h"
 #include "kudu/integration-tests/cluster_verifier.h"
 #include "kudu/integration-tests/external_mini_cluster-itest-base.h"
 #include "kudu/integration-tests/external_mini_cluster.h"
 #include "kudu/integration-tests/test_workload.h"
+#include "kudu/tablet/metadata.pb.h"
+#include "kudu/tablet/tablet.pb.h"
+#include "kudu/tserver/tserver.pb.h"
+#include "kudu/util/atomic.h"
+#include "kudu/util/env.h"
+#include "kudu/util/metrics.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/random.h"
 #include "kudu/util/random_util.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
+#include "kudu/util/thread.h"
 
 using std::string;
 using std::unique_ptr;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/ts_tablet_manager-itest.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/ts_tablet_manager-itest.cc b/src/kudu/integration-tests/ts_tablet_manager-itest.cc
index 9eedbc0..5832c15 100644
--- a/src/kudu/integration-tests/ts_tablet_manager-itest.cc
+++ b/src/kudu/integration-tests/ts_tablet_manager-itest.cc
@@ -15,15 +15,27 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <gtest/gtest.h>
+#include <cstdlib>
 #include <memory>
+#include <ostream>
 #include <string>
+#include <unordered_map>
+#include <vector>
+
+#include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
+#include <gtest/gtest.h>
 
 #include "kudu/client/client.h"
-#include "kudu/consensus/consensus.proxy.h"
+#include "kudu/client/schema.h"
+#include "kudu/client/shared_ptr.h"
 #include "kudu/consensus/metadata.pb.h"
 #include "kudu/consensus/quorum_util.h"
-#include "kudu/fs/fs_manager.h"
+#include "kudu/consensus/raft_consensus.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/integration-tests/cluster_itest_util.h"
@@ -32,15 +44,15 @@
 #include "kudu/master/master.proxy.h"
 #include "kudu/master/mini_master.h"
 #include "kudu/rpc/messenger.h"
-#include "kudu/server/server_base.proxy.h"
 #include "kudu/tablet/tablet_replica.h"
 #include "kudu/tserver/heartbeater.h"
 #include "kudu/tserver/mini_tablet_server.h"
 #include "kudu/tserver/tablet_server.h"
-#include "kudu/tserver/tserver_admin.proxy.h"
-#include "kudu/tserver/tserver_service.proxy.h"
 #include "kudu/tserver/ts_tablet_manager.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/pb_util.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 DECLARE_bool(enable_leader_failure_detection);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/update_scan_delta_compact-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/update_scan_delta_compact-test.cc b/src/kudu/integration-tests/update_scan_delta_compact-test.cc
index ff25e84..2b498cd 100644
--- a/src/kudu/integration-tests/update_scan_delta_compact-test.cc
+++ b/src/kudu/integration-tests/update_scan_delta_compact-test.cc
@@ -15,20 +15,39 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <cstdint>
+#include <cstdlib>
+#include <ostream>
 #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/client/callbacks.h"
 #include "kudu/client/client.h"
 #include "kudu/client/row_result.h"
+#include "kudu/client/schema.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/client/write_op.h"
+#include "kudu/common/partial_row.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/strings/strcat.h"
 #include "kudu/integration-tests/internal_mini_cluster.h"
 #include "kudu/master/mini_master.h"
 #include "kudu/tserver/mini_tablet_server.h"
+#include "kudu/util/async_util.h"
 #include "kudu/util/countdown_latch.h"
 #include "kudu/util/curl_util.h"
+#include "kudu/util/faststring.h"
 #include "kudu/util/monotime.h"
+#include "kudu/util/net/sockaddr.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/integration-tests/version_migration-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/version_migration-test.cc b/src/kudu/integration-tests/version_migration-test.cc
index 2a70e8a..54dca92 100644
--- a/src/kudu/integration-tests/version_migration-test.cc
+++ b/src/kudu/integration-tests/version_migration-test.cc
@@ -15,17 +15,23 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <algorithm>
+#include <cstdint>
+#include <ostream>
 #include <memory>
 #include <string>
 #include <vector>
 
 #include <gflags/gflags.h>
+#include <glog/logging.h>
 #include <gtest/gtest.h>
 
-#include "kudu/client/client.h"
+#include "kudu/client/shared_ptr.h"
 #include "kudu/integration-tests/external_mini_cluster.h"
 #include "kudu/integration-tests/linked_list-test-util.h"
 #include "kudu/integration-tests/log_verifier.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 DEFINE_string(test_version_a_bin, "", "Directory to find the binaries for \"Version A\"");
@@ -47,6 +53,11 @@ const char* kTableName = "test_table";
 const int kNumTabletServers = 3;
 
 namespace kudu {
+
+namespace client {
+class KuduClient;
+}
+
 namespace itest {
 
 // A test suite designed to test the ability to migrate between two (or more)

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/integration-tests/write_throttling-itest.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/write_throttling-itest.cc b/src/kudu/integration-tests/write_throttling-itest.cc
index cfcf3cd..3ce5344 100644
--- a/src/kudu/integration-tests/write_throttling-itest.cc
+++ b/src/kudu/integration-tests/write_throttling-itest.cc
@@ -15,14 +15,24 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <ostream>
+#include <string>
+#include <vector>
+
 #include <gflags/gflags.h>
 #include <glog/logging.h>
-#include <string>
+#include <gtest/gtest.h>
 
 #include "kudu/client/client.h"
+#include "kudu/client/schema.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/client/write_op.h"
+#include "kudu/common/partial_row.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/integration-tests/external_mini_cluster-itest-base.h"
 #include "kudu/util/monotime.h"
-#include "kudu/util/test_util.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 
 using std::string;
 using std::vector;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/kserver/kserver.cc
----------------------------------------------------------------------
diff --git a/src/kudu/kserver/kserver.cc b/src/kudu/kserver/kserver.cc
index fc5fbf4..6bbbbb3 100644
--- a/src/kudu/kserver/kserver.cc
+++ b/src/kudu/kserver/kserver.cc
@@ -18,10 +18,11 @@
 #include "kudu/kserver/kserver.h"
 
 #include <limits>
+#include <memory>
 #include <string>
 #include <utility>
 
-#include "kudu/server/server_base_options.h"
+#include "kudu/rpc/messenger.h"
 #include "kudu/util/metrics.h"
 #include "kudu/util/status.h"
 #include "kudu/util/threadpool.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/kserver/kserver.h
----------------------------------------------------------------------
diff --git a/src/kudu/kserver/kserver.h b/src/kudu/kserver/kserver.h
index 100df3c..c9fdec1 100644
--- a/src/kudu/kserver/kserver.h
+++ b/src/kudu/kserver/kserver.h
@@ -22,10 +22,10 @@
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/server/server_base.h"
+#include "kudu/util/threadpool.h"
 
 namespace kudu {
 class Status;
-class ThreadPool;
 
 namespace server {
 struct ServerBaseOptions;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/master/catalog_manager-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/master/catalog_manager-test.cc b/src/kudu/master/catalog_manager-test.cc
index 062301e..3b52869 100644
--- a/src/kudu/master/catalog_manager-test.cc
+++ b/src/kudu/master/catalog_manager-test.cc
@@ -14,11 +14,23 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
+
+#include <ostream>
+#include <string>
+#include <vector>
+
+#include <glog/logging.h>
 #include <gtest/gtest.h>
 
+#include "kudu/common/common.pb.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/master/catalog_manager.h"
+#include "kudu/master/master.pb.h"
 #include "kudu/master/ts_descriptor.h"
+#include "kudu/util/cow_object.h"
+#include "kudu/util/monotime.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/master/catalog_manager.cc
----------------------------------------------------------------------
diff --git a/src/kudu/master/catalog_manager.cc b/src/kudu/master/catalog_manager.cc
index d6f4a51..f7c3b44 100644
--- a/src/kudu/master/catalog_manager.cc
+++ b/src/kudu/master/catalog_manager.cc
@@ -42,34 +42,50 @@
 #include "kudu/master/catalog_manager.h"
 
 #include <algorithm>
-#include <condition_variable>
+#include <cstdint>
+#include <cstdlib>
 #include <functional>
+#include <iterator>
+#include <map>
 #include <memory>
 #include <mutex>
+#include <ostream>
 #include <set>
 #include <string>
+#include <type_traits>
 #include <utility>
 #include <vector>
 
-#include <boost/optional.hpp>
+#include <boost/bind.hpp>
+#include <boost/function.hpp>
+#include <boost/optional/optional.hpp>
+#include <gflags/gflags.h>
 #include <glog/logging.h>
 
 #include "kudu/cfile/type_encodings.h"
-#include "kudu/common/key_util.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/key_encoder.h"
 #include "kudu/common/partial_row.h"
 #include "kudu/common/partition.h"
 #include "kudu/common/row_operations.h"
+#include "kudu/common/schema.h"
 #include "kudu/common/wire_protocol.h"
+#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/consensus/consensus.pb.h"
 #include "kudu/consensus/consensus.proxy.h"
+#include "kudu/consensus/opid_util.h"
 #include "kudu/consensus/quorum_util.h"
+#include "kudu/consensus/raft_consensus.h"
+#include "kudu/fs/fs_manager.h"
 #include "kudu/gutil/atomicops.h"
+#include "kudu/gutil/bind.h"
+#include "kudu/gutil/bind_helpers.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/map-util.h"
-#include "kudu/gutil/mathlimits.h"
+#include "kudu/gutil/move.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/ref_counted.h"
-#include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/escaping.h"
-#include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/gutil/sysinfo.h"
 #include "kudu/gutil/utf/utf.h"
@@ -82,24 +98,31 @@
 #include "kudu/master/ts_manager.h"
 #include "kudu/rpc/messenger.h"
 #include "kudu/rpc/rpc_context.h"
+#include "kudu/rpc/rpc_controller.h"
 #include "kudu/security/cert.h"
 #include "kudu/security/crypto.h"
+#include "kudu/security/openssl_util.h"
 #include "kudu/security/tls_context.h"
 #include "kudu/security/token.pb.h"
 #include "kudu/security/token_signer.h"
 #include "kudu/security/token_signing_key.h"
+#include "kudu/server/monitored_task.h"
+#include "kudu/tablet/tablet_replica.h"
+#include "kudu/tablet/transactions/transaction_tracker.h"
+#include "kudu/tserver/tserver_admin.pb.h"
 #include "kudu/tserver/tserver_admin.proxy.h"
+#include "kudu/util/condition_variable.h"
 #include "kudu/util/debug/trace_event.h"
 #include "kudu/util/fault_injection.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/logging.h"
 #include "kudu/util/monotime.h"
+#include "kudu/util/mutex.h"
 #include "kudu/util/pb_util.h"
 #include "kudu/util/random_util.h"
 #include "kudu/util/scoped_cleanup.h"
 #include "kudu/util/stopwatch.h"
 #include "kudu/util/thread.h"
-#include "kudu/util/thread_restrictions.h"
 #include "kudu/util/threadpool.h"
 #include "kudu/util/trace.h"
 
@@ -215,6 +238,7 @@ using std::set;
 using std::shared_ptr;
 using std::string;
 using std::unique_ptr;
+using std::unordered_set;
 using std::vector;
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/master/catalog_manager.h
----------------------------------------------------------------------
diff --git a/src/kudu/master/catalog_manager.h b/src/kudu/master/catalog_manager.h
index e5986ba..14f65e9 100644
--- a/src/kudu/master/catalog_manager.h
+++ b/src/kudu/master/catalog_manager.h
@@ -17,7 +17,9 @@
 #ifndef KUDU_MASTER_CATALOG_MANAGER_H
 #define KUDU_MASTER_CATALOG_MANAGER_H
 
+#include <cstdint>
 #include <functional>
+#include <iosfwd>
 #include <map>
 #include <memory>
 #include <set>
@@ -26,36 +28,47 @@
 #include <unordered_set>
 #include <vector>
 
-#include <boost/optional/optional_fwd.hpp>
+#include <glog/logging.h>
+#include <gtest/gtest_prod.h>
 
-#include "kudu/common/partition.h"
+#include "kudu/consensus/metadata.pb.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/master/master.pb.h"
 #include "kudu/master/ts_manager.h"
-#include "kudu/server/monitored_task.h"
+#include "kudu/tablet/metadata.pb.h"
 #include "kudu/tserver/tablet_replica_lookup.h"
+#include "kudu/tserver/tserver.pb.h"
 #include "kudu/util/cow_object.h"
 #include "kudu/util/locks.h"
 #include "kudu/util/monotime.h"
 #include "kudu/util/oid_generator.h"
-#include "kudu/util/promise.h"
 #include "kudu/util/random.h"
 #include "kudu/util/rw_mutex.h"
 #include "kudu/util/status.h"
 
+namespace boost {
+template <class T>
+class optional;
+}
+
 namespace kudu {
 
+class CreateTableStressTest_TestConcurrentCreateTableAndReloadMetadata_Test;
+class MonitoredTask;
+class NodeInstancePB;
+class PartitionPB;
+class PartitionSchema;
 class Schema;
 class ThreadPool;
+struct ColumnId;
 
 // Working around FRIEND_TEST() ugliness.
 namespace client {
 class ServiceUnavailableRetryClientTest_CreateTable_Test;
 } // namespace client
 
-class CreateTableStressTest_TestConcurrentCreateTableAndReloadMetadata_Test;
-
 namespace rpc {
 class RpcContext;
 } // namespace rpc
@@ -63,10 +76,16 @@ class RpcContext;
 namespace security {
 class Cert;
 class PrivateKey;
-class TokenSigner;
-class TokenSigningPrivateKey;
 } // namespace security
 
+namespace consensus {
+class StartTabletCopyRequestPB;
+}
+
+namespace tablet {
+class TabletReplica;
+}
+
 namespace master {
 
 class CatalogManagerBgTasks;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/master/master-path-handlers.cc
----------------------------------------------------------------------
diff --git a/src/kudu/master/master-path-handlers.cc b/src/kudu/master/master-path-handlers.cc
index b8e665d..35d67fd 100644
--- a/src/kudu/master/master-path-handlers.cc
+++ b/src/kudu/master/master-path-handlers.cc
@@ -17,37 +17,50 @@
 
 #include "kudu/master/master-path-handlers.h"
 
-#include <array>
 #include <algorithm>
+#include <array>
+#include <cstdint>
 #include <map>
 #include <memory>
-#include <set>
 #include <sstream>
 #include <string>
 #include <utility>
 #include <vector>
 
-#include <boost/bind.hpp>
+#include <boost/bind.hpp> // IWYU pragma: keep
+#include <glog/logging.h>
 
+#include "kudu/common/common.pb.h"
 #include "kudu/common/partition.h"
 #include "kudu/common/schema.h"
 #include "kudu/common/wire_protocol.h"
+#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/consensus/metadata.pb.h"
 #include "kudu/consensus/quorum_util.h"
-#include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/stringprintf.h"
+#include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/server/webui_util.h"
 #include "kudu/master/catalog_manager.h"
 #include "kudu/master/master.h"
 #include "kudu/master/master.pb.h"
+#include "kudu/master/master_options.h"
 #include "kudu/master/sys_catalog.h"
 #include "kudu/master/ts_descriptor.h"
 #include "kudu/master/ts_manager.h"
+#include "kudu/server/monitored_task.h"
+#include "kudu/server/webui_util.h"
 #include "kudu/util/easy_json.h"
+#include "kudu/util/jsonwriter.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/net/net_util.h"
+#include "kudu/util/net/sockaddr.h"
 #include "kudu/util/pb_util.h"
 #include "kudu/util/string_case.h"
 #include "kudu/util/url-coding.h"
+#include "kudu/util/web_callback_registry.h"
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/master/master-path-handlers.h
----------------------------------------------------------------------
diff --git a/src/kudu/master/master-path-handlers.h b/src/kudu/master/master-path-handlers.h
index 73a7a8e..57ac1b0 100644
--- a/src/kudu/master/master-path-handlers.h
+++ b/src/kudu/master/master-path-handlers.h
@@ -19,20 +19,18 @@
 
 #include <iosfwd>
 #include <string>
-#include <vector>
 
 #include "kudu/gutil/macros.h"
 #include "kudu/server/webserver.h"
-#include "kudu/util/easy_json.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
-class Schema;
+class EasyJson;
 class ServerRegistrationPB;
 
 namespace master {
 
 class Master;
-struct TabletReplica;
 class TSDescriptor;
 
 // Web page support for the master.

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/master/master-test-util.h
----------------------------------------------------------------------
diff --git a/src/kudu/master/master-test-util.h b/src/kudu/master/master-test-util.h
index efb9dbf..52d8953 100644
--- a/src/kudu/master/master-test-util.h
+++ b/src/kudu/master/master-test-util.h
@@ -21,6 +21,8 @@
 #include <algorithm>
 #include <string>
 
+#include <glog/logging.h>
+
 #include "kudu/common/schema.h"
 #include "kudu/common/wire_protocol.h"
 #include "kudu/gutil/strings/substitute.h"
@@ -29,6 +31,7 @@
 #include "kudu/master/master.h"
 #include "kudu/master/master.pb.h"
 #include "kudu/util/stopwatch.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/master/master-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/master/master-test.cc b/src/kudu/master/master-test.cc
index edb22e7..bff0544 100644
--- a/src/kudu/master/master-test.cc
+++ b/src/kudu/master/master-test.cc
@@ -15,34 +15,61 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <gtest/gtest.h>
-#include <rapidjson/document.h>
-
-#include <algorithm>
+#include <cstdint>
+#include <map>
 #include <memory>
-#include <utility>
+#include <ostream>
+#include <set>
+#include <string>
 #include <thread>
+#include <unordered_map>
+#include <unordered_set>
+#include <utility>
 #include <vector>
 
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+#include <rapidjson/document.h>
+#include <rapidjson/rapidjson.h>
+
+#include "kudu/common/common.pb.h"
 #include "kudu/common/partial_row.h"
 #include "kudu/common/row_operations.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/wire_protocol.h"
+#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/consensus/consensus.pb.h"
 #include "kudu/generated/version_defines.h"
-#include "kudu/gutil/strings/join.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/map-util.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/strings/substitute.h"
+#include "kudu/master/catalog_manager.h"
 #include "kudu/master/master.h"
+#include "kudu/master/master.pb.h"
 #include "kudu/master/master.proxy.h"
-#include "kudu/master/master-test-util.h"
 #include "kudu/master/mini_master.h"
 #include "kudu/master/sys_catalog.h"
 #include "kudu/master/ts_descriptor.h"
 #include "kudu/master/ts_manager.h"
 #include "kudu/rpc/messenger.h"
+#include "kudu/rpc/rpc_controller.h"
 #include "kudu/security/tls_context.h"
+#include "kudu/security/token.pb.h"
 #include "kudu/security/token_verifier.h"
-#include "kudu/server/rpc_server.h"
+#include "kudu/util/atomic.h"
+#include "kudu/util/countdown_latch.h"
 #include "kudu/util/curl_util.h"
-#include "kudu/util/path_util.h"
+#include "kudu/util/faststring.h"
+#include "kudu/util/make_shared.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/net/net_util.h"
+#include "kudu/util/net/sockaddr.h"
 #include "kudu/util/pb_util.h"
+#include "kudu/util/random.h"
 #include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 #include "kudu/util/version_info.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/master/master.cc
----------------------------------------------------------------------
diff --git a/src/kudu/master/master.cc b/src/kudu/master/master.cc
index 175f7be..d249959 100644
--- a/src/kudu/master/master.cc
+++ b/src/kudu/master/master.cc
@@ -19,30 +19,39 @@
 
 #include <algorithm>
 #include <memory>
+#include <ostream>
+#include <type_traits>
 #include <vector>
 
-#include <boost/bind.hpp>
+#include <gflags/gflags.h>
 #include <glog/logging.h>
 
 #include "kudu/cfile/block_cache.h"
 #include "kudu/common/wire_protocol.h"
+#include "kudu/consensus/metadata.pb.h"
+#include "kudu/fs/fs_manager.h"
+#include "kudu/gutil/bind.h"
+#include "kudu/gutil/bind_helpers.h"
+#include "kudu/gutil/move.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/master/catalog_manager.h"
+#include "kudu/master/master-path-handlers.h"
+#include "kudu/master/master.pb.h"
+#include "kudu/master/master.proxy.h"
 #include "kudu/master/master_cert_authority.h"
 #include "kudu/master/master_service.h"
-#include "kudu/master/master.proxy.h"
-#include "kudu/master/master-path-handlers.h"
 #include "kudu/master/ts_manager.h"
 #include "kudu/rpc/messenger.h"
+#include "kudu/rpc/rpc_controller.h"
 #include "kudu/rpc/service_if.h"
-#include "kudu/rpc/service_pool.h"
 #include "kudu/security/token_signer.h"
-#include "kudu/security/token_signing_key.h"
 #include "kudu/server/rpc_server.h"
+#include "kudu/server/webserver.h"
 #include "kudu/tserver/tablet_copy_service.h"
 #include "kudu/tserver/tablet_service.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/maintenance_manager.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/net/net_util.h"
 #include "kudu/util/net/sockaddr.h"
 #include "kudu/util/status.h"
@@ -74,7 +83,6 @@ using std::vector;
 using kudu::consensus::RaftPeerPB;
 using kudu::rpc::ServiceIf;
 using kudu::security::TokenSigner;
-using kudu::security::TokenSigningPrivateKey;
 using kudu::tserver::ConsensusServiceImpl;
 using kudu::tserver::TabletCopyServiceImpl;
 using strings::Substitute;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/master/master.h
----------------------------------------------------------------------
diff --git a/src/kudu/master/master.h b/src/kudu/master/master.h
index 66132a1..63a29a4 100644
--- a/src/kudu/master/master.h
+++ b/src/kudu/master/master.h
@@ -18,39 +18,32 @@
 #define KUDU_MASTER_MASTER_H
 
 #include <atomic>
+#include <cstdint>
 #include <memory>
 #include <string>
 #include <vector>
 
-#include "kudu/common/wire_protocol.h"
+#include "kudu/common/wire_protocol.pb.h"
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
 #include "kudu/kserver/kserver.h"
-#include "kudu/master/master.pb.h"
 #include "kudu/master/master_options.h"
-#include "kudu/util/metrics.h"
 #include "kudu/util/promise.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
 
 class MaintenanceManager;
-class RpcServer;
-struct RpcServerOptions;
+class MonoDelta;
 class ThreadPool;
 
-namespace rpc {
-class Messenger;
-class ServicePool;
-} // namespace rpc
-
 namespace security {
 class TokenSigner;
 } // namespace security
 
 namespace master {
 
-class AuthnTokenManager;
 class CatalogManager;
 class MasterCertAuthority;
 class MasterPathHandlers;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/master/master_cert_authority.cc
----------------------------------------------------------------------
diff --git a/src/kudu/master/master_cert_authority.cc b/src/kudu/master/master_cert_authority.cc
index 2b3a31d..ab91283 100644
--- a/src/kudu/master/master_cert_authority.cc
+++ b/src/kudu/master/master_cert_authority.cc
@@ -21,15 +21,17 @@
 #include <string>
 #include <utility>
 
-#include <boost/optional.hpp>
+#include <boost/optional/optional.hpp>
 #include <gflags/gflags.h>
 
+#include "kudu/gutil/strings/substitute.h"
 #include "kudu/rpc/remote_user.h"
 #include "kudu/security/ca/cert_management.h"
 #include "kudu/security/cert.h"
 #include "kudu/security/crypto.h"
 #include "kudu/security/openssl_util.h"
 #include "kudu/util/flag_tags.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/status.h"
 
 using boost::optional;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/master/master_cert_authority.h
----------------------------------------------------------------------
diff --git a/src/kudu/master/master_cert_authority.h b/src/kudu/master/master_cert_authority.h
index 8ca0297..a25438e 100644
--- a/src/kudu/master/master_cert_authority.h
+++ b/src/kudu/master/master_cert_authority.h
@@ -17,12 +17,12 @@
 #pragma once
 
 #include <memory>
+#include <ostream>
 #include <string>
 
 #include <glog/logging.h>
 
 #include "kudu/gutil/macros.h"
-#include "kudu/util/status.h"
 
 namespace kudu {
 
@@ -34,9 +34,6 @@ class Cert;
 class CertSignRequest;
 class PrivateKey;
 
-namespace ca {
-class CertSigner;
-} // namespace ca
 } // namespace security
 
 namespace rpc {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/master/master_main.cc
----------------------------------------------------------------------
diff --git a/src/kudu/master/master_main.cc b/src/kudu/master/master_main.cc
index 6d37784..2dbcac2 100644
--- a/src/kudu/master/master_main.cc
+++ b/src/kudu/master/master_main.cc
@@ -15,14 +15,20 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <glog/logging.h>
 #include <iostream>
+#include <string>
+
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
 
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/master/master.h"
+#include "kudu/master/master_options.h"
 #include "kudu/util/flags.h"
 #include "kudu/util/init.h"
 #include "kudu/util/logging.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/status.h"
 #include "kudu/util/version_info.h"
 
 using kudu::master::Master;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/master/master_options.cc
----------------------------------------------------------------------
diff --git a/src/kudu/master/master_options.cc b/src/kudu/master/master_options.cc
index dc9d4b6..e5e4333 100644
--- a/src/kudu/master/master_options.cc
+++ b/src/kudu/master/master_options.cc
@@ -17,11 +17,17 @@
 
 #include "kudu/master/master_options.h"
 
-#include <glog/logging.h>
+#include <ostream>
+#include <string>
+
 #include <gflags/gflags.h>
+#include <glog/logging.h>
 
+#include "kudu/gutil/macros.h"
 #include "kudu/master/master.h"
+#include "kudu/server/rpc_server.h"
 #include "kudu/util/flag_tags.h"
+#include "kudu/util/status.h"
 
 DEFINE_string(master_addresses, "",
               "Comma-separated list of the RPC addresses belonging to all "

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/master/master_service.cc
----------------------------------------------------------------------
diff --git a/src/kudu/master/master_service.cc b/src/kudu/master/master_service.cc
index 97677dc..190e994 100644
--- a/src/kudu/master/master_service.cc
+++ b/src/kudu/master/master_service.cc
@@ -17,26 +17,34 @@
 
 #include "kudu/master/master_service.h"
 
-#include <gflags/gflags.h>
-#include <google/protobuf/message.h>
 #include <memory>
+#include <ostream>
 #include <string>
 #include <vector>
 
+#include <gflags/gflags.h>
+#include <glog/logging.h>
+
 #include "kudu/common/wire_protocol.h"
+#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/gutil/strings/substitute.h"
 #include "kudu/master/catalog_manager.h"
 #include "kudu/master/master.h"
+#include "kudu/master/master.pb.h"
 #include "kudu/master/master_cert_authority.h"
 #include "kudu/master/ts_descriptor.h"
 #include "kudu/master/ts_manager.h"
 #include "kudu/rpc/remote_user.h"
 #include "kudu/rpc/rpc_context.h"
-#include "kudu/server/webserver.h"
+#include "kudu/security/token.pb.h"
 #include "kudu/security/token_signer.h"
 #include "kudu/security/token_verifier.h"
+#include "kudu/server/server_base.h"
 #include "kudu/util/flag_tags.h"
+#include "kudu/util/logging.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/pb_util.h"
-
+#include "kudu/util/status.h"
 
 DEFINE_int32(master_inject_latency_on_tablet_lookups_ms, 0,
              "Number of milliseconds that the master will sleep before responding to "
@@ -56,21 +64,19 @@ DEFINE_bool(master_non_leader_masters_propagate_tsk, false,
             "tests scenarios only and should not be used elsewhere.");
 TAG_FLAG(master_non_leader_masters_propagate_tsk, hidden);
 
+using google::protobuf::Message;
 using kudu::pb_util::SecureDebugString;
 using kudu::pb_util::SecureShortDebugString;
 using kudu::security::SignedTokenPB;
-using google::protobuf::Message;
+using kudu::server::ServerBase;
+using std::shared_ptr;
 using std::string;
 using std::vector;
-using std::shared_ptr;
+using strings::Substitute;
 
 namespace kudu {
 namespace master {
 
-using server::ServerBase;
-using security::SignedTokenPB;
-using strings::Substitute;
-
 namespace {
 
 // If 's' is not OK and 'resp' has no application specific error set,

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/master/master_service.h
----------------------------------------------------------------------
diff --git a/src/kudu/master/master_service.h b/src/kudu/master/master_service.h
index 70eafaf..83f8b60 100644
--- a/src/kudu/master/master_service.h
+++ b/src/kudu/master/master_service.h
@@ -17,18 +17,57 @@
 #ifndef KUDU_MASTER_MASTER_SERVICE_H
 #define KUDU_MASTER_MASTER_SERVICE_H
 
+#include <cstdint>
+
 #include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
 #include "kudu/master/master.service.h"
-#include "kudu/util/metrics.h"
+
+namespace google {
+namespace protobuf {
+class Message;
+}
+}
 
 namespace kudu {
 
-class NodeInstancePB;
+namespace rpc {
+class RpcContext;
+}
 
 namespace master {
 
+class AlterTableRequestPB;
+class AlterTableResponsePB;
+class ConnectToMasterRequestPB;
+class ConnectToMasterResponsePB;
+class CreateTableRequestPB;
+class CreateTableResponsePB;
+class DeleteTableRequestPB;
+class DeleteTableResponsePB;
+class GetMasterRegistrationRequestPB;
+class GetMasterRegistrationResponsePB;
+class GetTableLocationsRequestPB;
+class GetTableLocationsResponsePB;
+class GetTableSchemaRequestPB;
+class GetTableSchemaResponsePB;
+class GetTabletLocationsRequestPB;
+class GetTabletLocationsResponsePB;
+class IsAlterTableDoneRequestPB;
+class IsAlterTableDoneResponsePB;
+class IsCreateTableDoneRequestPB;
+class IsCreateTableDoneResponsePB;
+class ListMastersRequestPB;
+class ListMastersResponsePB;
+class ListTablesRequestPB;
+class ListTablesResponsePB;
+class ListTabletServersRequestPB;
+class ListTabletServersResponsePB;
 class Master;
-class TSDescriptor;
+class PingRequestPB;
+class PingResponsePB;
+class TSHeartbeatRequestPB;
+class TSHeartbeatResponsePB;
 
 // Implementation of the master service. See master.proto for docs
 // on each RPC.

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/master/mini_master-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/master/mini_master-test.cc b/src/kudu/master/mini_master-test.cc
index 4cc708c..f207202 100644
--- a/src/kudu/master/mini_master-test.cc
+++ b/src/kudu/master/mini_master-test.cc
@@ -15,12 +15,17 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <memory>
+#include <vector>
+
 #include <gtest/gtest.h>
 
 #include "kudu/fs/fs_manager.h"
 #include "kudu/master/master.h"
 #include "kudu/master/mini_master.h"
+#include "kudu/util/net/net_util.h"
 #include "kudu/util/path_util.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/master/mini_master.cc
----------------------------------------------------------------------
diff --git a/src/kudu/master/mini_master.cc b/src/kudu/master/mini_master.cc
index 7a64f1d..f3229ff 100644
--- a/src/kudu/master/mini_master.cc
+++ b/src/kudu/master/mini_master.cc
@@ -17,17 +17,23 @@
 
 #include "kudu/master/mini_master.h"
 
+#include <algorithm>
 #include <memory>
 #include <string>
 #include <vector>
 
+#include <gflags/gflags_declare.h>
 #include <glog/logging.h>
 
 #include "kudu/fs/fs_manager.h"
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/master/master.h"
+#include "kudu/master/master_options.h"
 #include "kudu/server/rpc_server.h"
-#include "kudu/server/webserver.h"
+#include "kudu/server/webserver_options.h"
+#include "kudu/util/env.h"
 #include "kudu/util/env_util.h"
+#include "kudu/util/net/net_util.h"
 #include "kudu/util/net/sockaddr.h"
 #include "kudu/util/path_util.h"
 #include "kudu/util/status.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/master/mini_master.h
----------------------------------------------------------------------
diff --git a/src/kudu/master/mini_master.h b/src/kudu/master/mini_master.h
index e7dca14..a730258 100644
--- a/src/kudu/master/mini_master.h
+++ b/src/kudu/master/mini_master.h
@@ -21,18 +21,16 @@
 #include <string>
 #include <vector>
 
-#include "kudu/gutil/macros.h"
-#include "kudu/gutil/port.h"
-#include "kudu/master/master.h"
-#include "kudu/util/env.h"
+#include "kudu/master/master_options.h"
 #include "kudu/util/net/net_util.h"
 #include "kudu/util/net/sockaddr.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
-
 namespace master {
 
+class Master;
+
 // An in-process Master meant for use in test cases.
 class MiniMaster {
  public:

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/master/sys_catalog-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/master/sys_catalog-test.cc b/src/kudu/master/sys_catalog-test.cc
index a895a76..340fcb1 100644
--- a/src/kudu/master/sys_catalog-test.cc
+++ b/src/kudu/master/sys_catalog-test.cc
@@ -15,18 +15,21 @@
 // specific language governing permissions and limitations
 // under the License.
 
-
-#include <algorithm>
 #include <memory>
 #include <string>
 #include <vector>
 
 #include <gtest/gtest.h>
 
+#include "kudu/common/common.pb.h"
+#include "kudu/common/schema.h"
 #include "kudu/common/wire_protocol.h"
-#include "kudu/gutil/stl_util.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/master/catalog_manager.h"
 #include "kudu/master/master.h"
+#include "kudu/master/master.pb.h"
 #include "kudu/master/master.proxy.h"
 #include "kudu/master/mini_master.h"
 #include "kudu/master/sys_catalog.h"
@@ -34,20 +37,27 @@
 #include "kudu/security/cert.h"
 #include "kudu/security/crypto.h"
 #include "kudu/security/openssl_util.h"
-#include "kudu/server/rpc_server.h"
-#include "kudu/util/net/sockaddr.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/net/net_util.h"
 #include "kudu/util/pb_util.h"
 #include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
-using std::string;
-using std::shared_ptr;
-using std::vector;
 using kudu::rpc::Messenger;
 using kudu::rpc::MessengerBuilder;
 using kudu::security::Cert;
 using kudu::security::DataFormat;
 using kudu::security::PrivateKey;
+using std::shared_ptr;
+using std::string;
+using std::vector;
+
+namespace google {
+namespace protobuf {
+class Message;
+}
+}
 
 namespace kudu {
 namespace master {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/master/sys_catalog.cc
----------------------------------------------------------------------
diff --git a/src/kudu/master/sys_catalog.cc b/src/kudu/master/sys_catalog.cc
index b5ee951..f6d7a19 100644
--- a/src/kudu/master/sys_catalog.cc
+++ b/src/kudu/master/sys_catalog.cc
@@ -18,48 +18,72 @@
 #include "kudu/master/sys_catalog.h"
 
 #include <algorithm>
+#include <cstddef>
 #include <functional>
-#include <iomanip>
 #include <iterator>
 #include <memory>
+#include <ostream>
 #include <set>
+#include <type_traits>
+#include <utility>
 #include <vector>
 
 #include <gflags/gflags.h>
 #include <glog/logging.h>
 #include <google/protobuf/util/message_differencer.h>
 
+#include "kudu/clock/clock.h"
+#include "kudu/common/column_predicate.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/iterator.h"
 #include "kudu/common/key_encoder.h"
 #include "kudu/common/partial_row.h"
 #include "kudu/common/partition.h"
 #include "kudu/common/row_operations.h"
+#include "kudu/common/rowblock.h"
 #include "kudu/common/scan_spec.h"
 #include "kudu/common/schema.h"
 #include "kudu/common/wire_protocol.h"
 #include "kudu/consensus/consensus_meta.h"
 #include "kudu/consensus/consensus_meta_manager.h"
 #include "kudu/consensus/consensus_peers.h"
+#include "kudu/consensus/log.h"
 #include "kudu/consensus/opid_util.h"
 #include "kudu/consensus/quorum_util.h"
+#include "kudu/consensus/raft_consensus.h"
 #include "kudu/fs/fs_manager.h"
-#include "kudu/gutil/casts.h"
+#include "kudu/gutil/bind.h"
+#include "kudu/gutil/bind_helpers.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/move.h"
 #include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/master/catalog_manager.h"
 #include "kudu/master/master.h"
 #include "kudu/master/master.pb.h"
-#include "kudu/rpc/rpc_context.h"
-#include "kudu/tablet/mvcc.h"
+#include "kudu/master/master_options.h"
+#include "kudu/rpc/result_tracker.h"
+#include "kudu/security/token.pb.h"
+#include "kudu/tablet/metadata.pb.h"
 #include "kudu/tablet/tablet.h"
 #include "kudu/tablet/tablet_bootstrap.h"
+#include "kudu/tablet/tablet_metadata.h"
+#include "kudu/tablet/transactions/transaction.h"
 #include "kudu/tablet/transactions/write_transaction.h"
 #include "kudu/tserver/tserver.pb.h"
+#include "kudu/util/countdown_latch.h"
+#include "kudu/util/cow_object.h"
 #include "kudu/util/debug/trace_event.h"
+#include "kudu/util/faststring.h"
 #include "kudu/util/fault_injection.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/logging.h"
+#include "kudu/util/memory/arena.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/net/net_util.h"
+#include "kudu/util/net/sockaddr.h"
 #include "kudu/util/pb_util.h"
-#include "kudu/util/threadpool.h"
+#include "kudu/util/slice.h"
 
 DEFINE_double(sys_catalog_fail_during_write, 0.0,
               "Fraction of the time when system table writes will fail");
@@ -86,6 +110,13 @@ using std::unique_ptr;
 using std::vector;
 using strings::Substitute;
 
+
+namespace google {
+namespace protobuf {
+class Message;
+}
+}
+
 namespace kudu {
 namespace master {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/master/sys_catalog.h
----------------------------------------------------------------------
diff --git a/src/kudu/master/sys_catalog.h b/src/kudu/master/sys_catalog.h
index 2359737..8496f00 100644
--- a/src/kudu/master/sys_catalog.h
+++ b/src/kudu/master/sys_catalog.h
@@ -17,29 +17,49 @@
 #ifndef KUDU_MASTER_SYS_CATALOG_H_
 #define KUDU_MASTER_SYS_CATALOG_H_
 
+#include <cstdint>
 #include <functional>
 #include <set>
 #include <string>
 #include <vector>
 
+#include <gtest/gtest_prod.h>
+
+#include "kudu/common/schema.h"
+#include "kudu/common/wire_protocol.pb.h"
 #include "kudu/consensus/metadata.pb.h"
-#include "kudu/master/master.pb.h"
+#include "kudu/gutil/callback.h"
+#include "kudu/gutil/macros.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/tablet/tablet_replica.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
 
-class Schema;
 class FsManager;
+class MetricRegistry;
+class RowBlockRow;
+
+namespace consensus {
+class ConsensusMetadataManager;
+}
+
+namespace tablet {
+class TabletMetadata;
+}
 
 namespace tserver {
 class WriteRequestPB;
 class WriteResponsePB;
-}
+} // namespace tserver
 
 namespace master {
 
 class Master;
+class SysCertAuthorityEntryPB;
+class SysTablesEntryPB;
+class SysTabletsEntryPB;
+class SysTskEntryPB;
 class TableInfo;
 class TabletInfo;
 struct MasterOptions;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/master/ts_descriptor.cc
----------------------------------------------------------------------
diff --git a/src/kudu/master/ts_descriptor.cc b/src/kudu/master/ts_descriptor.cc
index 99a2379..e119c7b 100644
--- a/src/kudu/master/ts_descriptor.cc
+++ b/src/kudu/master/ts_descriptor.cc
@@ -17,18 +17,24 @@
 
 #include "kudu/master/ts_descriptor.h"
 
-#include <math.h>
+#include <algorithm>
+#include <cmath>
 #include <mutex>
+#include <ostream>
 #include <unordered_set>
 #include <vector>
 
+#include <gflags/gflags.h>
+
+#include "kudu/common/common.pb.h"
 #include "kudu/common/wire_protocol.h"
+#include "kudu/common/wire_protocol.pb.h"
 #include "kudu/consensus/consensus.proxy.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/master/master.pb.h"
 #include "kudu/tserver/tserver_admin.proxy.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/net/net_util.h"
+#include "kudu/util/net/sockaddr.h"
 #include "kudu/util/pb_util.h"
 
 DEFINE_int32(tserver_unresponsive_timeout_ms, 60 * 1000,

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/master/ts_descriptor.h
----------------------------------------------------------------------
diff --git a/src/kudu/master/ts_descriptor.h b/src/kudu/master/ts_descriptor.h
index 701acd1..0d7c073 100644
--- a/src/kudu/master/ts_descriptor.h
+++ b/src/kudu/master/ts_descriptor.h
@@ -17,11 +17,16 @@
 #ifndef KUDU_MASTER_TS_DESCRIPTOR_H
 #define KUDU_MASTER_TS_DESCRIPTOR_H
 
+#include <cstdint>
 #include <memory>
 #include <mutex>
 #include <string>
 
+#include <glog/logging.h>
+#include <gtest/gtest_prod.h>
+
 #include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/util/locks.h"
 #include "kudu/util/make_shared.h"
 #include "kudu/util/monotime.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/master/ts_manager.cc
----------------------------------------------------------------------
diff --git a/src/kudu/master/ts_manager.cc b/src/kudu/master/ts_manager.cc
index 6c9713c..65faad8 100644
--- a/src/kudu/master/ts_manager.cc
+++ b/src/kudu/master/ts_manager.cc
@@ -20,9 +20,11 @@
 #include <mutex>
 #include <vector>
 
+#include <glog/logging.h>
+
+#include "kudu/common/wire_protocol.pb.h"
 #include "kudu/gutil/map-util.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/master/master.pb.h"
 #include "kudu/master/ts_descriptor.h"
 #include "kudu/util/pb_util.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/master/ts_manager.h
----------------------------------------------------------------------
diff --git a/src/kudu/master/ts_manager.h b/src/kudu/master/ts_manager.h
index 9e06039..ecdd5cd 100644
--- a/src/kudu/master/ts_manager.h
+++ b/src/kudu/master/ts_manager.h
@@ -24,7 +24,6 @@
 
 #include "kudu/gutil/macros.h"
 #include "kudu/util/locks.h"
-#include "kudu/util/monotime.h"
 #include "kudu/util/status.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/acceptor_pool.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/acceptor_pool.cc b/src/kudu/rpc/acceptor_pool.cc
index 640b884..49bad85 100644
--- a/src/kudu/rpc/acceptor_pool.cc
+++ b/src/kudu/rpc/acceptor_pool.cc
@@ -17,17 +17,14 @@
 
 #include "kudu/rpc/acceptor_pool.h"
 
-#include <pthread.h>
-
-#include <cinttypes>
-#include <cstdint>
-#include <iostream>
 #include <string>
+#include <ostream>
 #include <vector>
 
 #include <gflags/gflags.h>
 #include <glog/logging.h>
 
+#include "kudu/gutil/basictypes.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/rpc/messenger.h"
@@ -39,6 +36,14 @@
 #include "kudu/util/status.h"
 #include "kudu/util/thread.h"
 
+namespace google {
+namespace protobuf {
+
+class Message;
+
+}
+}
+
 using google::protobuf::Message;
 using std::string;
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/acceptor_pool.h
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/acceptor_pool.h b/src/kudu/rpc/acceptor_pool.h
index 92b7fc5..ffbcdbe 100644
--- a/src/kudu/rpc/acceptor_pool.h
+++ b/src/kudu/rpc/acceptor_pool.h
@@ -21,7 +21,8 @@
 #include <vector>
 
 #include "kudu/gutil/atomicops.h"
-#include "kudu/util/thread.h"
+#include "kudu/gutil/macros.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/util/net/sockaddr.h"
 #include "kudu/util/net/socket.h"
 #include "kudu/util/status.h"
@@ -29,7 +30,7 @@
 namespace kudu {
 
 class Counter;
-class Socket;
+class Thread;
 
 namespace rpc {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/blocking_ops.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/blocking_ops.cc b/src/kudu/rpc/blocking_ops.cc
index 21132a1..bd66ce3 100644
--- a/src/kudu/rpc/blocking_ops.cc
+++ b/src/kudu/rpc/blocking_ops.cc
@@ -17,21 +17,22 @@
 
 #include "kudu/rpc/blocking_ops.h"
 
-#include <stdint.h>
-#include <string.h>
+#include <cstdint>
+#include <cstring>
+#include <ostream>
 
 #include <glog/logging.h>
 #include <google/protobuf/message_lite.h>
 
 #include "kudu/gutil/endian.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/rpc/constants.h"
 #include "kudu/rpc/serialization.h"
 #include "kudu/rpc/transfer.h"
 #include "kudu/util/faststring.h"
-#include "kudu/util/monotime.h"
-#include "kudu/util/net/sockaddr.h"
 #include "kudu/util/net/socket.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/blocking_ops.h
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/blocking_ops.h b/src/kudu/rpc/blocking_ops.h
index 01bb7a6..900f9df 100644
--- a/src/kudu/rpc/blocking_ops.h
+++ b/src/kudu/rpc/blocking_ops.h
@@ -18,9 +18,6 @@
 #ifndef KUDU_RPC_BLOCKING_OPS_H
 #define KUDU_RPC_BLOCKING_OPS_H
 
-#include <set>
-#include <string>
-
 namespace google {
 namespace protobuf {
 class MessageLite;
@@ -32,7 +29,6 @@ namespace kudu {
 class faststring;
 class MonoTime;
 class Slice;
-class Sockaddr;
 class Socket;
 class Status;
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/client_negotiation.cc
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/client_negotiation.cc b/src/kudu/rpc/client_negotiation.cc
index 831364e..de55f29 100644
--- a/src/kudu/rpc/client_negotiation.cc
+++ b/src/kudu/rpc/client_negotiation.cc
@@ -17,25 +17,23 @@
 
 #include "kudu/rpc/client_negotiation.h"
 
-#include <string.h>
-
+#include <cstring>
+#include <cstdint>
 #include <map>
 #include <memory>
+#include <ostream>
 #include <set>
 #include <string>
-#include <utility>
 
-#include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
 #include <glog/logging.h>
 #include <sasl/sasl.h>
 
-#include "kudu/gutil/casts.h"
-#include "kudu/gutil/endian.h"
+#include "kudu/gutil/basictypes.h"
 #include "kudu/gutil/map-util.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/gutil/strings/util.h"
 #include "kudu/rpc/blocking_ops.h"
 #include "kudu/rpc/constants.h"
 #include "kudu/rpc/messenger.h"
@@ -46,11 +44,10 @@
 #include "kudu/security/cert.h"
 #include "kudu/security/tls_context.h"
 #include "kudu/security/tls_handshake.h"
-#include "kudu/security/tls_socket.h"
 #include "kudu/util/faststring.h"
 #include "kudu/util/net/sockaddr.h"
 #include "kudu/util/net/socket.h"
-#include "kudu/util/scoped_cleanup.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/trace.h"
 
 using std::map;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/rpc/client_negotiation.h
----------------------------------------------------------------------
diff --git a/src/kudu/rpc/client_negotiation.h b/src/kudu/rpc/client_negotiation.h
index 7279632..079108b 100644
--- a/src/kudu/rpc/client_negotiation.h
+++ b/src/kudu/rpc/client_negotiation.h
@@ -17,15 +17,18 @@
 
 #pragma once
 
+#include <algorithm>
 #include <cstdlib>
 #include <memory>
 #include <set>
 #include <string>
 #include <vector>
 
-#include <boost/optional.hpp>
+#include <boost/optional/optional.hpp>
+#include <glog/logging.h>
 #include <sasl/sasl.h>
 
+#include "kudu/rpc/messenger.h"
 #include "kudu/rpc/negotiation.h"
 #include "kudu/rpc/rpc_header.pb.h"
 #include "kudu/rpc/sasl_common.h"
@@ -34,20 +37,20 @@
 #include "kudu/security/token.pb.h"
 #include "kudu/util/monotime.h"
 #include "kudu/util/net/socket.h"
+#include "kudu/gutil/port.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
 
+class Slice;
+class faststring;
+
 namespace security {
 class TlsContext;
 }
 
 namespace rpc {
 
-class NegotiatePB;
-class NegotiatePB_SaslAuth;
-class ResponseHeader;
-
 // Class for doing KRPC negotiation with a remote server over a bidirectional socket.
 // Operations on this class are NOT thread-safe.
 class ClientNegotiation {


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

Posted by al...@apache.org.
http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tserver/ts_tablet_manager-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tserver/ts_tablet_manager-test.cc b/src/kudu/tserver/ts_tablet_manager-test.cc
index 5b4934e4..84dc5f5 100644
--- a/src/kudu/tserver/ts_tablet_manager-test.cc
+++ b/src/kudu/tserver/ts_tablet_manager-test.cc
@@ -17,20 +17,36 @@
 
 #include "kudu/tserver/ts_tablet_manager.h"
 
-#include <gtest/gtest.h>
+#include <cstdint>
+#include <ostream>
 #include <string>
+#include <utility>
+#include <vector>
+
+#include <glog/logging.h>
+#include <gtest/gtest.h>
 
+#include "kudu/common/common.pb.h"
 #include "kudu/common/partition.h"
 #include "kudu/common/schema.h"
 #include "kudu/consensus/metadata.pb.h"
-#include "kudu/fs/fs_manager.h"
+#include "kudu/consensus/opid_util.h"
+#include "kudu/consensus/raft_consensus.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/master/master.pb.h"
+#include "kudu/tablet/tablet.h"
+#include "kudu/tablet/tablet-harness.h"
 #include "kudu/tablet/tablet_replica.h"
-#include "kudu/tablet/tablet-test-util.h"
 #include "kudu/tserver/heartbeater.h"
 #include "kudu/tserver/mini_tablet_server.h"
 #include "kudu/tserver/tablet_server.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/net/net_util.h"
 #include "kudu/util/pb_util.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 #define ASSERT_REPORT_HAS_UPDATED_TABLET(report, tablet_id) \
@@ -43,6 +59,9 @@ using std::string;
 using std::vector;
 
 namespace kudu {
+
+class FsManager;
+
 namespace tserver {
 
 using consensus::kInvalidOpIdIndex;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tserver/ts_tablet_manager.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tserver/ts_tablet_manager.cc b/src/kudu/tserver/ts_tablet_manager.cc
index 0d5e8dc..7972380 100644
--- a/src/kudu/tserver/ts_tablet_manager.cc
+++ b/src/kudu/tserver/ts_tablet_manager.cc
@@ -18,45 +18,56 @@
 #include "kudu/tserver/ts_tablet_manager.h"
 
 #include <algorithm>
-#include <boost/bind.hpp>
-#include <boost/optional.hpp>
-#include <glog/logging.h>
+#include <cstdint>
 #include <memory>
 #include <mutex>
+#include <ostream>
 #include <string>
+#include <utility>
 #include <vector>
 
+#include <boost/bind.hpp> // IWYU pragma: keep
+#include <boost/optional/optional.hpp>
+#include <gflags/gflags.h>
+#include <glog/logging.h>
+
+#include "kudu/clock/clock.h"
 #include "kudu/common/wire_protocol.h"
+#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/consensus/consensus.pb.h"
 #include "kudu/consensus/consensus_meta.h"
 #include "kudu/consensus/consensus_meta_manager.h"
 #include "kudu/consensus/log.h"
 #include "kudu/consensus/metadata.pb.h"
+#include "kudu/consensus/opid.pb.h"
 #include "kudu/consensus/opid_util.h"
 #include "kudu/consensus/quorum_util.h"
+#include "kudu/consensus/raft_consensus.h"
+#include "kudu/fs/data_dirs.h"
 #include "kudu/fs/fs_manager.h"
-#include "kudu/gutil/casts.h"
+#include "kudu/gutil/bind.h"
+#include "kudu/gutil/bind_helpers.h"
+#include "kudu/gutil/map-util.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/gutil/strings/util.h"
 #include "kudu/master/master.pb.h"
-#include "kudu/rpc/messenger.h"
 #include "kudu/rpc/result_tracker.h"
 #include "kudu/tablet/metadata.pb.h"
-#include "kudu/tablet/tablet.h"
-#include "kudu/tablet/tablet.pb.h"
 #include "kudu/tablet/tablet_bootstrap.h"
 #include "kudu/tablet/tablet_metadata.h"
 #include "kudu/tablet/tablet_replica.h"
 #include "kudu/tserver/heartbeater.h"
 #include "kudu/tserver/tablet_copy_client.h"
 #include "kudu/tserver/tablet_server.h"
-#include "kudu/tserver/tablet_service.h"
 #include "kudu/util/debug/trace_event.h"
-#include "kudu/util/env.h"
-#include "kudu/util/env_util.h"
 #include "kudu/util/fault_injection.h"
 #include "kudu/util/flag_tags.h"
-#include "kudu/util/pb_util.h"
+#include "kudu/util/logging.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/net/net_util.h"
+#include "kudu/util/net/sockaddr.h"
 #include "kudu/util/stopwatch.h"
+#include "kudu/util/threadpool.h"
 #include "kudu/util/trace.h"
 
 DEFINE_int32(num_tablets_to_copy_simultaneously, 10,
@@ -101,8 +112,16 @@ DEFINE_double(fault_crash_after_tc_files_fetched, 0.0,
               "(For testing only!)");
 TAG_FLAG(fault_crash_after_tc_files_fetched, unsafe);
 
+using std::shared_ptr;
+using std::string;
+using std::vector;
+using strings::Substitute;
+
 namespace kudu {
-namespace tserver {
+
+namespace tablet {
+class Tablet;
+}
 
 using consensus::ConsensusMetadata;
 using consensus::ConsensusMetadataManager;
@@ -114,10 +133,6 @@ using fs::DataDirManager;
 using log::Log;
 using master::ReportedTabletPB;
 using master::TabletReportPB;
-using std::shared_ptr;
-using std::string;
-using std::vector;
-using strings::Substitute;
 using tablet::Tablet;
 using tablet::TABLET_DATA_COPYING;
 using tablet::TABLET_DATA_DELETED;
@@ -128,6 +143,8 @@ using tablet::TabletMetadata;
 using tablet::TabletReplica;
 using tserver::TabletCopyClient;
 
+namespace tserver {
+
 TSTabletManager::TSTabletManager(TabletServer* server)
   : fs_manager_(server->fs_manager()),
     cmeta_manager_(new ConsensusMetadataManager(fs_manager_)),

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tserver/ts_tablet_manager.h
----------------------------------------------------------------------
diff --git a/src/kudu/tserver/ts_tablet_manager.h b/src/kudu/tserver/ts_tablet_manager.h
index d4c7c63..b0420da 100644
--- a/src/kudu/tserver/ts_tablet_manager.h
+++ b/src/kudu/tserver/ts_tablet_manager.h
@@ -17,35 +17,45 @@
 
 #pragma once
 
-#include <boost/optional/optional_fwd.hpp>
-#include <gtest/gtest_prod.h>
-#include <memory>
+#include <functional>
+#include <cstdint>
 #include <string>
 #include <unordered_map>
 #include <unordered_set>
 #include <vector>
 
+#include <gtest/gtest_prod.h>
+
+#include "kudu/consensus/metadata.pb.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/ref_counted.h"
+#include "kudu/tablet/metadata.pb.h"
 #include "kudu/tserver/tablet_replica_lookup.h"
-#include "kudu/tserver/tserver_admin.pb.h"
 #include "kudu/tserver/tserver.pb.h"
+#include "kudu/tserver/tserver_admin.pb.h"
 #include "kudu/util/locks.h"
-#include "kudu/util/metrics.h"
 #include "kudu/util/status.h"
-#include "kudu/util/threadpool.h"
+
+namespace boost {
+template <class T>
+class optional;
+}
 
 namespace kudu {
 
-class PartitionSchema;
 class FsManager;
-class HostPort;
+class MetricRegistry;
+class NodeInstancePB;
 class Partition;
+class PartitionSchema;
 class Schema;
+class ThreadPool;
 
 namespace consensus {
 class ConsensusMetadataManager;
-class RaftConfigPB;
+class OpId;
+class StartTabletCopyRequestPB;
 } // namespace consensus
 
 namespace master {
@@ -53,14 +63,9 @@ class ReportedTabletPB;
 class TabletReportPB;
 } // namespace master
 
-namespace rpc {
-class ResultTracker;
-} // namespace rpc
-
 namespace tablet {
 class TabletMetadata;
 class TabletReplica;
-class TabletStatusPB;
 }
 
 namespace tserver {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tserver/tserver-path-handlers.cc
----------------------------------------------------------------------
diff --git a/src/kudu/tserver/tserver-path-handlers.cc b/src/kudu/tserver/tserver-path-handlers.cc
index c53ab4c..8578939 100644
--- a/src/kudu/tserver/tserver-path-handlers.cc
+++ b/src/kudu/tserver/tserver-path-handlers.cc
@@ -18,32 +18,59 @@
 #include "kudu/tserver/tserver-path-handlers.h"
 
 #include <algorithm>
+#include <cstddef>
+#include <cstdint>
 #include <map>
 #include <memory>
 #include <sstream>
 #include <string>
+#include <type_traits>
+#include <utility>
 #include <vector>
 
+#include <boost/bind.hpp> // IWYU pragma: keep
+#include <glog/logging.h>
+
+#include "kudu/common/column_predicate.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/encoded_key.h"
+#include "kudu/common/iterator.h"
+#include "kudu/common/iterator_stats.h"
+#include "kudu/common/partition.h"
 #include "kudu/common/scan_spec.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/consensus/consensus.pb.h"
 #include "kudu/consensus/log_anchor_registry.h"
+#include "kudu/consensus/metadata.pb.h"
+#include "kudu/consensus/opid.pb.h"
 #include "kudu/consensus/quorum_util.h"
+#include "kudu/consensus/raft_consensus.h"
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/ref_counted.h"
+#include "kudu/gutil/stringprintf.h"
 #include "kudu/gutil/strings/human_readable.h"
 #include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/numbers.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/server/webui_util.h"
 #include "kudu/tablet/metadata.pb.h"
+#include "kudu/tablet/tablet.h"
 #include "kudu/tablet/tablet.pb.h"
-#include "kudu/tablet/tablet_bootstrap.h"
+#include "kudu/tablet/tablet_metadata.h"
 #include "kudu/tablet/tablet_replica.h"
+#include "kudu/tablet/transactions/transaction.h"
 #include "kudu/tserver/scanners.h"
 #include "kudu/tserver/tablet_server.h"
 #include "kudu/tserver/ts_tablet_manager.h"
 #include "kudu/util/easy_json.h"
 #include "kudu/util/maintenance_manager.h"
+#include "kudu/util/maintenance_manager.pb.h"
+#include "kudu/util/mem_tracker.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/pb_util.h"
 #include "kudu/util/url-coding.h"
+#include "kudu/util/web_callback_registry.h"
 
 using kudu::consensus::GetConsensusRole;
 using kudu::consensus::ConsensusStatePB;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/tserver/tserver-path-handlers.h
----------------------------------------------------------------------
diff --git a/src/kudu/tserver/tserver-path-handlers.h b/src/kudu/tserver/tserver-path-handlers.h
index b37ca1c..385b24d 100644
--- a/src/kudu/tserver/tserver-path-handlers.h
+++ b/src/kudu/tserver/tserver-path-handlers.h
@@ -23,6 +23,7 @@
 
 #include "kudu/gutil/macros.h"
 #include "kudu/server/webserver.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/twitter-demo/ingest_firehose.cc
----------------------------------------------------------------------
diff --git a/src/kudu/twitter-demo/ingest_firehose.cc b/src/kudu/twitter-demo/ingest_firehose.cc
index 686f9d3..6ecab3f 100644
--- a/src/kudu/twitter-demo/ingest_firehose.cc
+++ b/src/kudu/twitter-demo/ingest_firehose.cc
@@ -15,25 +15,24 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <curl/curl.h>
-#include <fstream>
+#include <algorithm>
+#include <fstream>  // IWYU pragma: keep
+#include <iostream>
+#include <string>
+#include <type_traits>
+
 #include <gflags/gflags.h>
 #include <glog/logging.h>
-#include <iostream>
-#include <stdint.h>
 
 #include "kudu/client/client.h"
-#include "kudu/gutil/macros.h"
-#include "kudu/gutil/once.h"
-#include "kudu/rpc/messenger.h"
-#include "kudu/master/master.h"
-#include "kudu/tserver/tserver_service.proxy.h"
-#include "kudu/twitter-demo/oauth.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/move.h"
+#include "kudu/gutil/port.h"
 #include "kudu/twitter-demo/insert_consumer.h"
 #include "kudu/twitter-demo/twitter_streamer.h"
 #include "kudu/util/flags.h"
 #include "kudu/util/logging.h"
-#include "kudu/util/net/net_util.h"
 #include "kudu/util/slice.h"
 #include "kudu/util/status.h"
 
@@ -56,7 +55,6 @@ namespace kudu {
 namespace twitter_demo {
 
 using client::sp::shared_ptr;
-using tserver::TabletServerServiceProxy;
 
 // Consumer which simply logs messages to the console.
 class LoggingConsumer : public TwitterConsumer {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/twitter-demo/insert_consumer.cc
----------------------------------------------------------------------
diff --git a/src/kudu/twitter-demo/insert_consumer.cc b/src/kudu/twitter-demo/insert_consumer.cc
index 1d5a0c6..d09800e 100644
--- a/src/kudu/twitter-demo/insert_consumer.cc
+++ b/src/kudu/twitter-demo/insert_consumer.cc
@@ -17,21 +17,18 @@
 
 #include "kudu/twitter-demo/insert_consumer.h"
 
-#include <ctime>
-#include <mutex>
+#include <algorithm>
+#include <ostream>
 #include <string>
 #include <vector>
 
 #include <glog/logging.h>
 
 #include "kudu/client/client.h"
-#include "kudu/common/wire_protocol.h"
-#include "kudu/common/row.h"
-#include "kudu/common/schema.h"
-#include "kudu/gutil/bind.h"
+#include "kudu/client/write_op.h"
+#include "kudu/common/partial_row.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/stl_util.h"
-#include "kudu/tserver/tserver.pb.h"
-#include "kudu/tserver/tserver_service.proxy.h"
 #include "kudu/twitter-demo/parser.h"
 #include "kudu/twitter-demo/twitter-schema.h"
 #include "kudu/util/status.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/twitter-demo/insert_consumer.h
----------------------------------------------------------------------
diff --git a/src/kudu/twitter-demo/insert_consumer.h b/src/kudu/twitter-demo/insert_consumer.h
index 00cdce4..368215f 100644
--- a/src/kudu/twitter-demo/insert_consumer.h
+++ b/src/kudu/twitter-demo/insert_consumer.h
@@ -19,23 +19,18 @@
 
 #include "kudu/twitter-demo/twitter_streamer.h"
 
-#include <string>
-
-#include "kudu/client/callbacks.h"
 #include "kudu/client/schema.h"
 #include "kudu/client/shared_ptr.h"
-#include "kudu/rpc/rpc_controller.h"
-#include "kudu/tserver/tserver_service.proxy.h"
+#include "kudu/gutil/port.h"
 #include "kudu/twitter-demo/parser.h"
-#include "kudu/util/locks.h"
 #include "kudu/util/slice.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 namespace client {
 class KuduClient;
 class KuduTable;
 class KuduSession;
-class KuduStatusCallback;
 } // namespace client
 
 namespace twitter_demo {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/twitter-demo/oauth.cc
----------------------------------------------------------------------
diff --git a/src/kudu/twitter-demo/oauth.cc b/src/kudu/twitter-demo/oauth.cc
index c7292ce..088463c 100644
--- a/src/kudu/twitter-demo/oauth.cc
+++ b/src/kudu/twitter-demo/oauth.cc
@@ -18,7 +18,9 @@
 #include "kudu/twitter-demo/oauth.h"
 
 #include <algorithm>
+#include <ctime>
 #include <vector>
+
 #include <glog/logging.h>
 extern "C" {
 #include <oauth.h>

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/twitter-demo/parser-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/twitter-demo/parser-test.cc b/src/kudu/twitter-demo/parser-test.cc
index 4c84054..8d34663 100644
--- a/src/kudu/twitter-demo/parser-test.cc
+++ b/src/kudu/twitter-demo/parser-test.cc
@@ -17,14 +17,18 @@
 
 #include "kudu/twitter-demo/parser.h"
 
+#include <string>
+#include <vector>
+
 #include <glog/logging.h>
 #include <gtest/gtest.h>
 
 #include "kudu/gutil/strings/split.h"
 #include "kudu/util/env.h"
+#include "kudu/util/faststring.h"
 #include "kudu/util/path_util.h"
-#include "kudu/util/test_util.h"
 #include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 
 using std::string;
 using std::vector;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/twitter-demo/parser.cc
----------------------------------------------------------------------
diff --git a/src/kudu/twitter-demo/parser.cc b/src/kudu/twitter-demo/parser.cc
index 73b8a13..7df1793 100644
--- a/src/kudu/twitter-demo/parser.cc
+++ b/src/kudu/twitter-demo/parser.cc
@@ -17,11 +17,11 @@
 
 #include "kudu/twitter-demo/parser.h"
 
-#include <time.h>
+#include <cstring>
+#include <ctime>
 
 #include <glog/logging.h>
 #include <rapidjson/document.h>
-#include <rapidjson/rapidjson.h>
 
 #include "kudu/gutil/stringprintf.h"
 #include "kudu/util/jsonreader.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/twitter-demo/parser.h
----------------------------------------------------------------------
diff --git a/src/kudu/twitter-demo/parser.h b/src/kudu/twitter-demo/parser.h
index c100450..9973428 100644
--- a/src/kudu/twitter-demo/parser.h
+++ b/src/kudu/twitter-demo/parser.h
@@ -17,10 +17,10 @@
 #ifndef KUDU_TWITTER_DEMO_PARSER_H
 #define KUDU_TWITTER_DEMO_PARSER_H
 
+#include <cstdint>
 #include <string>
 
 #include "kudu/gutil/macros.h"
-#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/twitter-demo/twitter_streamer.cc
----------------------------------------------------------------------
diff --git a/src/kudu/twitter-demo/twitter_streamer.cc b/src/kudu/twitter-demo/twitter_streamer.cc
index 2d94515..b55ad22 100644
--- a/src/kudu/twitter-demo/twitter_streamer.cc
+++ b/src/kudu/twitter-demo/twitter_streamer.cc
@@ -17,14 +17,17 @@
 
 #include "kudu/twitter-demo/twitter_streamer.h"
 
-#include <curl/curl.h>
-#include <gflags/gflags.h>
-#include <glog/logging.h>
+#include <cstdint>
+#include <cstring>
 #include <mutex>
-#include <string.h>
+#include <ostream>
 #include <string>
 #include <thread>
 
+#include <curl/curl.h>
+#include <gflags/gflags.h>
+#include <glog/logging.h>
+
 #include "kudu/twitter-demo/oauth.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/once.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/twitter-demo/twitter_streamer.h
----------------------------------------------------------------------
diff --git a/src/kudu/twitter-demo/twitter_streamer.h b/src/kudu/twitter-demo/twitter_streamer.h
index e134e39..37c1514 100644
--- a/src/kudu/twitter-demo/twitter_streamer.h
+++ b/src/kudu/twitter-demo/twitter_streamer.h
@@ -17,9 +17,11 @@
 #ifndef KUDU_TWITTER_DEMO_TWITTER_STREAMER_H
 #define KUDU_TWITTER_DEMO_TWITTER_STREAMER_H
 
+#include <cstddef>
 #include <mutex>
 #include <thread>
 
+#include "kudu/gutil/macros.h"
 #include "kudu/util/faststring.h"
 #include "kudu/util/slice.h"
 #include "kudu/util/status.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/src/kudu/util/CMakeLists.txt b/src/kudu/util/CMakeLists.txt
index f3e9ec8..836facf 100644
--- a/src/kudu/util/CMakeLists.txt
+++ b/src/kudu/util/CMakeLists.txt
@@ -462,5 +462,6 @@ endif()
 ADD_KUDU_TEST(compression/compression-test)
 if(NOT NO_TESTS)
   target_link_libraries(compression-test
+    cfile
     kudu_util_compression)
 endif()

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/async_logger.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/async_logger.cc b/src/kudu/util/async_logger.cc
index 8e6a4a9..1b1d9e4 100644
--- a/src/kudu/util/async_logger.cc
+++ b/src/kudu/util/async_logger.cc
@@ -17,11 +17,9 @@
 
 #include "kudu/util/async_logger.h"
 
-#include <algorithm>
 #include <string>
 #include <thread>
 
-#include "kudu/util/locks.h"
 #include "kudu/util/monotime.h"
 
 using std::string;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/async_logger.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/async_logger.h b/src/kudu/util/async_logger.h
index 2804a9b..7a7d37b 100644
--- a/src/kudu/util/async_logger.h
+++ b/src/kudu/util/async_logger.h
@@ -18,6 +18,9 @@
 
 #include "kudu/gutil/macros.h"
 
+#include <algorithm>
+#include <cstdint>
+#include <ctime>
 #include <memory>
 #include <string>
 #include <thread>
@@ -25,7 +28,9 @@
 
 #include <glog/logging.h>
 
-#include "kudu/util/locks.h"
+#include "kudu/gutil/integral_types.h"
+#include "kudu/util/condition_variable.h"
+#include "kudu/util/mutex.h"
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/atomic-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/atomic-test.cc b/src/kudu/util/atomic-test.cc
index 9834d09..a65d55d 100644
--- a/src/kudu/util/atomic-test.cc
+++ b/src/kudu/util/atomic-test.cc
@@ -17,6 +17,7 @@
 
 #include "kudu/util/atomic.h"
 
+#include <cstdint>
 #include <limits>
 #include <vector>
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/atomic.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/atomic.cc b/src/kudu/util/atomic.cc
index 1fdae39..430631f 100644
--- a/src/kudu/util/atomic.cc
+++ b/src/kudu/util/atomic.cc
@@ -17,7 +17,8 @@
 
 #include "kudu/util/atomic.h"
 
-#include <stdint.h>
+#include <cstdint>
+#include <ostream>
 
 #include <glog/logging.h>
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/atomic.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/atomic.h b/src/kudu/util/atomic.h
index da9b677..3051a41 100644
--- a/src/kudu/util/atomic.h
+++ b/src/kudu/util/atomic.h
@@ -18,7 +18,9 @@
 #ifndef KUDU_UTIL_ATOMIC_H
 #define KUDU_UTIL_ATOMIC_H
 
-#include <algorithm>
+#include <algorithm>  // IWYU pragma: keep
+#include <cstdint>
+#include <cstdlib>
 #include <type_traits>
 
 #include "kudu/gutil/atomicops.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/bitmap-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/bitmap-test.cc b/src/kudu/util/bitmap-test.cc
index a91e414..73306d9 100644
--- a/src/kudu/util/bitmap-test.cc
+++ b/src/kudu/util/bitmap-test.cc
@@ -15,9 +15,12 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <gtest/gtest.h>
+#include <cstdint>
+#include <cstring>
 #include <vector>
 
+#include <gtest/gtest.h>
+
 #include "kudu/gutil/strings/join.h"
 #include "kudu/util/bitmap.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/bitmap.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/bitmap.cc b/src/kudu/util/bitmap.cc
index e38f2e2..eed7880 100644
--- a/src/kudu/util/bitmap.cc
+++ b/src/kudu/util/bitmap.cc
@@ -14,11 +14,15 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-#include <glog/logging.h>
+
+#include "kudu/util/bitmap.h"
+
+#include <cstring>
 #include <string>
 
+#include <glog/logging.h>
+
 #include "kudu/gutil/stringprintf.h"
-#include "kudu/util/bitmap.h"
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/bitmap.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/bitmap.h b/src/kudu/util/bitmap.h
index 1689b50..d9f5260 100644
--- a/src/kudu/util/bitmap.h
+++ b/src/kudu/util/bitmap.h
@@ -19,8 +19,15 @@
 #ifndef KUDU_UTIL_BITMAP_H
 #define KUDU_UTIL_BITMAP_H
 
+#include <cstddef>
+#include <cstdint>
+#include <ostream>
 #include <string>
+
+#include <glog/logging.h>
+
 #include "kudu/gutil/bits.h"
+#include "kudu/gutil/port.h"
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/blocking_queue-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/blocking_queue-test.cc b/src/kudu/util/blocking_queue-test.cc
index 00f558a..a2271ff 100644
--- a/src/kudu/util/blocking_queue-test.cc
+++ b/src/kudu/util/blocking_queue-test.cc
@@ -15,16 +15,20 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <glog/logging.h>
-#include <gtest/gtest.h>
+#include <cstddef>
+#include <cstdint>
 #include <map>
-#include <memory>
 #include <string>
 #include <thread>
 #include <vector>
 
+#include <gtest/gtest.h>
+
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/util/countdown_latch.h"
 #include "kudu/util/blocking_queue.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/mutex.h"
 #include "kudu/util/status.h"
 #include "kudu/util/test_macros.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/bloom_filter-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/bloom_filter-test.cc b/src/kudu/util/bloom_filter-test.cc
index 3cee985..788ec36 100644
--- a/src/kudu/util/bloom_filter-test.cc
+++ b/src/kudu/util/bloom_filter-test.cc
@@ -15,10 +15,15 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <cstdint>
+#include <cstdlib>
+#include <ostream>
+
 #include <glog/logging.h>
 #include <gtest/gtest.h>
-#include <stdlib.h>
+
 #include "kudu/util/bloom_filter.h"
+#include "kudu/util/slice.h"
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/bloom_filter.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/bloom_filter.cc b/src/kudu/util/bloom_filter.cc
index 2b48b0d..b1a2055 100644
--- a/src/kudu/util/bloom_filter.cc
+++ b/src/kudu/util/bloom_filter.cc
@@ -15,10 +15,13 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <math.h>
-
 #include "kudu/util/bloom_filter.h"
-#include "kudu/util/bitmap.h"
+
+#include <cmath>
+#include <cstring>
+#include <ostream>
+
+#include <glog/logging.h>
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/bloom_filter.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/bloom_filter.h b/src/kudu/util/bloom_filter.h
index 419de3b..1ebd323 100644
--- a/src/kudu/util/bloom_filter.h
+++ b/src/kudu/util/bloom_filter.h
@@ -17,8 +17,12 @@
 #ifndef KUDU_UTIL_BLOOM_FILTER_H
 #define KUDU_UTIL_BLOOM_FILTER_H
 
+#include <cstddef>
+#include <cstdint>
+
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/hash/city.h"
+#include "kudu/gutil/integral_types.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/util/bitmap.h"
 #include "kudu/util/slice.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/cache-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/cache-test.cc b/src/kudu/util/cache-test.cc
index eed72ad..4a16be0 100644
--- a/src/kudu/util/cache-test.cc
+++ b/src/kudu/util/cache-test.cc
@@ -2,16 +2,29 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include <cassert>
+#include <cstdint>
+#include <cstring>
+#include <memory>
+#include <string>
+#include <vector>
+
 #include <glog/logging.h>
 #include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
 #include <gtest/gtest.h>
-#include <memory>
 
-#include <vector>
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/util/cache.h"
 #include "kudu/util/coding.h"
+#include "kudu/util/env.h"
+#include "kudu/util/faststring.h"
 #include "kudu/util/mem_tracker.h"
 #include "kudu/util/metrics.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 #if defined(__linux__)

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/cache.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/cache.cc b/src/kudu/util/cache.cc
index d65d277..ff52a82 100644
--- a/src/kudu/util/cache.cc
+++ b/src/kudu/util/cache.cc
@@ -2,23 +2,27 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include <cstdlib>
+#include <cstring>
 #include <memory>
 #include <mutex>
+#include <ostream>
 #include <string>
 #include <vector>
 
 #include <gflags/gflags.h>
 #include <glog/logging.h>
 
+#include "kudu/gutil/atomicops.h"
 #include "kudu/gutil/atomic_refcount.h"
+#include "kudu/gutil/dynamic_annotations.h"
 #include "kudu/gutil/bits.h"
 #include "kudu/gutil/hash/city.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/gutil/sysinfo.h"
 #include "kudu/util/alignment.h"
-#include "kudu/util/atomic.h"
 #include "kudu/util/cache.h"
 #include "kudu/util/cache_metrics.h"
 #include "kudu/util/flag_tags.h"
@@ -41,8 +45,6 @@ using std::vector;
 
 namespace kudu {
 
-class MetricEntity;
-
 Cache::~Cache() {
 }
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/cache.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/cache.h b/src/kudu/util/cache.h
index af0a9ae..036b7d1 100644
--- a/src/kudu/util/cache.h
+++ b/src/kudu/util/cache.h
@@ -18,6 +18,7 @@
 #ifndef KUDU_UTIL_CACHE_H_
 #define KUDU_UTIL_CACHE_H_
 
+#include <cstddef>
 #include <cstdint>
 #include <memory>
 #include <string>
@@ -29,7 +30,6 @@
 namespace kudu {
 
 class Cache;
-struct CacheMetrics;
 class MetricEntity;
 
 enum CacheType {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/cache_metrics.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/cache_metrics.h b/src/kudu/util/cache_metrics.h
index 47f759f..04a546b 100644
--- a/src/kudu/util/cache_metrics.h
+++ b/src/kudu/util/cache_metrics.h
@@ -17,18 +17,13 @@
 #ifndef KUDU_UTIL_CACHE_METRICS_H
 #define KUDU_UTIL_CACHE_METRICS_H
 
-#include <stdint.h>
+#include <cstdint>
 
-#include "kudu/gutil/macros.h"
 #include "kudu/gutil/ref_counted.h"
+#include "kudu/util/metrics.h"
 
 namespace kudu {
 
-template<class T>
-class AtomicGauge;
-class Counter;
-class MetricEntity;
-
 struct CacheMetrics {
   explicit CacheMetrics(const scoped_refptr<MetricEntity>& metric_entity);
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/callback_bind-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/callback_bind-test.cc b/src/kudu/util/callback_bind-test.cc
index 6f75867..9bb5e5f 100644
--- a/src/kudu/util/callback_bind-test.cc
+++ b/src/kudu/util/callback_bind-test.cc
@@ -15,11 +15,21 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <algorithm>
+#include <ostream>
+#include <string>
+#include <type_traits>
+
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
 #include "kudu/gutil/bind.h"
+#include "kudu/gutil/bind_helpers.h"
 #include "kudu/gutil/callback.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
-
-#include <gtest/gtest.h>
+#include "kudu/gutil/move.h"
+#include "kudu/gutil/ref_counted.h"
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/coding-inl.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/coding-inl.h b/src/kudu/util/coding-inl.h
index 5fe0f9d..a47e9ce 100644
--- a/src/kudu/util/coding-inl.h
+++ b/src/kudu/util/coding-inl.h
@@ -24,8 +24,11 @@
 #ifndef KUDU_UTIL_CODING_INL_H
 #define KUDU_UTIL_CODING_INL_H
 
-#include <stdint.h>
-#include <string.h>
+#include <cstdint>
+#include <cstring>
+
+#include "kudu/gutil/port.h"  // IWYU pragma: keep
+// IWYU pragma: no_include <endian.h>
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/coding.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/coding.cc b/src/kudu/util/coding.cc
index bd3cfcd..952af28 100644
--- a/src/kudu/util/coding.cc
+++ b/src/kudu/util/coding.cc
@@ -4,6 +4,7 @@
 
 #include "kudu/util/coding.h"
 #include "kudu/util/coding-inl.h"
+#include "kudu/util/faststring.h"
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/coding.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/coding.h b/src/kudu/util/coding.h
index 698d92a..0612533 100644
--- a/src/kudu/util/coding.h
+++ b/src/kudu/util/coding.h
@@ -10,14 +10,17 @@
 #ifndef STORAGE_LEVELDB_UTIL_CODING_H_
 #define STORAGE_LEVELDB_UTIL_CODING_H_
 
-#include <stdint.h>
-#include <string.h>
-#include <string>
+#include <cstdint>
+#include <cstring>
 
 #include "kudu/util/slice.h"
-#include "kudu/util/faststring.h"
+#include "kudu/gutil/port.h"  // IWYU pragma: keep
+// IWYU pragma: no_include <endian.h>
 
 namespace kudu {
+
+class faststring;
+
 extern void PutFixed32(faststring* dst, uint32_t value);
 extern void PutFixed64(faststring* dst, uint64_t value);
 extern void PutVarint32(faststring* dst, uint32_t value);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/compression/compression-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/compression/compression-test.cc b/src/kudu/util/compression/compression-test.cc
index 36d003c..8d5374b 100644
--- a/src/kudu/util/compression/compression-test.cc
+++ b/src/kudu/util/compression/compression-test.cc
@@ -15,17 +15,23 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <stdlib.h>
-
+#include <cstdint>
+#include <cstdlib>
+#include <cstring>
 #include <vector>
 
 #include <glog/logging.h>
 #include <gtest/gtest.h>
 
+#include "kudu/cfile/cfile-test-base.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/fs/block_id.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/move.h"
 #include "kudu/util/compression/compression_codec.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
-#include "kudu/util/status.h"
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/compression/compression_codec.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/compression/compression_codec.cc b/src/kudu/util/compression/compression_codec.cc
index 41dcae2..a2231b6 100644
--- a/src/kudu/util/compression/compression_codec.cc
+++ b/src/kudu/util/compression/compression_codec.cc
@@ -17,6 +17,8 @@
 
 #include "kudu/util/compression/compression_codec.h"
 
+#include <memory>
+#include <ostream>
 #include <string>
 #include <vector>
 
@@ -26,9 +28,10 @@
 #include <snappy.h>
 #include <zlib.h>
 
-
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/singleton.h"
 #include "kudu/gutil/stringprintf.h"
+#include "kudu/util/faststring.h"
 #include "kudu/util/logging.h"
 #include "kudu/util/string_case.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/compression/compression_codec.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/compression/compression_codec.h b/src/kudu/util/compression/compression_codec.h
index 538af15..4f81fd3 100644
--- a/src/kudu/util/compression/compression_codec.h
+++ b/src/kudu/util/compression/compression_codec.h
@@ -17,11 +17,14 @@
 #ifndef KUDU_CFILE_COMPRESSION_CODEC_H
 #define KUDU_CFILE_COMPRESSION_CODEC_H
 
+#include <cstddef>
+#include <cstdint>
 #include <string>
 #include <vector>
 
+#include <snappy-stubs-public.h>
+
 #include "kudu/util/compression/compression.pb.h"
-#include "kudu/gutil/macros.h"
 #include "kudu/util/slice.h"
 #include "kudu/util/status.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/condition_variable.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/condition_variable.cc b/src/kudu/util/condition_variable.cc
index 13d1d36..be4afa4 100644
--- a/src/kudu/util/condition_variable.cc
+++ b/src/kudu/util/condition_variable.cc
@@ -4,12 +4,17 @@
 
 #include "kudu/util/condition_variable.h"
 
-#include <glog/logging.h>
-
-#include <errno.h>
 #include <sys/time.h>
 
+#include <cerrno>
+#include <ctime>
+#include <ostream>
+
+#include <glog/logging.h>
+
+#include "kudu/gutil/integral_types.h"
 #include "kudu/util/monotime.h"
+#include "kudu/util/mutex.h"
 #include "kudu/util/thread_restrictions.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/condition_variable.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/condition_variable.h b/src/kudu/util/condition_variable.h
index ca6e265..1f251ca 100644
--- a/src/kudu/util/condition_variable.h
+++ b/src/kudu/util/condition_variable.h
@@ -67,13 +67,12 @@
 
 #include <pthread.h>
 
-#include "kudu/util/monotime.h"
-#include "kudu/util/mutex.h"
+#include "kudu/gutil/macros.h"
 
 namespace kudu {
 
-class ConditionVarImpl;
-class TimeDelta;
+class MonoDelta;
+class Mutex;
 
 class ConditionVariable {
  public:

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/countdown_latch-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/countdown_latch-test.cc b/src/kudu/util/countdown_latch-test.cc
index cf2517c..adb2623 100644
--- a/src/kudu/util/countdown_latch-test.cc
+++ b/src/kudu/util/countdown_latch-test.cc
@@ -15,11 +15,14 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <boost/bind.hpp>
+#include <boost/bind.hpp> // IWYU pragma: keep
 #include <gtest/gtest.h>
 
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/util/countdown_latch.h"
-#include "kudu/util/test_util.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/thread.h"
 #include "kudu/util/threadpool.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/crc-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/crc-test.cc b/src/kudu/util/crc-test.cc
index 3c46230..cf13268 100644
--- a/src/kudu/util/crc-test.cc
+++ b/src/kudu/util/crc-test.cc
@@ -15,7 +15,16 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <cstdint>
+#include <cstring>
+#include <ostream>
+#include <string>
+
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
 #include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/strings/numbers.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/crc.h"
 #include "kudu/util/stopwatch.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/curl_util.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/curl_util.cc b/src/kudu/util/curl_util.cc
index 3e8e591..44ef089 100644
--- a/src/kudu/util/curl_util.cc
+++ b/src/kudu/util/curl_util.cc
@@ -17,12 +17,16 @@
 
 #include "kudu/util/curl_util.h"
 
+#include <cstddef>
+#include <cstdint>
+#include <ostream>
 
 #include <curl/curl.h>
 #include <glog/logging.h>
 
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/security/openssl_util.h"
+#include "kudu/util/faststring.h"
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/debug-util-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/debug-util-test.cc b/src/kudu/util/debug-util-test.cc
index 74b5b79..455f8cb 100644
--- a/src/kudu/util/debug-util-test.cc
+++ b/src/kudu/util/debug-util-test.cc
@@ -15,15 +15,22 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <glog/stl_logging.h>
-#include <signal.h>
+#include <unistd.h>
+
+#include <csignal>
 #include <string>
 #include <vector>
 
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/util/countdown_latch.h"
 #include "kudu/util/debug-util.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/scoped_cleanup.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 #include "kudu/util/thread.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/debug-util.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/debug-util.cc b/src/kudu/util/debug-util.cc
index 1f2b035..be39fe3 100644
--- a/src/kudu/util/debug-util.cc
+++ b/src/kudu/util/debug-util.cc
@@ -17,20 +17,29 @@
 
 #include "kudu/util/debug-util.h"
 
-#include <execinfo.h>
 #include <dirent.h>
-#include <glog/logging.h>
-#include <signal.h>
-#include <string>
+#include <sched.h>
+#ifdef __linux__
+#include <syscall.h>
+#else
 #include <sys/syscall.h>
+#endif
+#include <unistd.h>
+
+#include <cerrno>
+#include <csignal>
+#include <ostream>
+#include <string>
+
+#include <glog/logging.h>
 
+#include "kudu/gutil/atomicops.h"
 #include "kudu/gutil/hash/city.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/spinlock.h"
 #include "kudu/gutil/stringprintf.h"
 #include "kudu/gutil/strings/numbers.h"
 #include "kudu/util/debug/sanitizer_scopes.h"
-#include "kudu/util/env.h"
 #include "kudu/util/errno.h"
 #include "kudu/util/monotime.h"
 #include "kudu/util/thread.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/debug-util.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/debug-util.h b/src/kudu/util/debug-util.h
index fc12445..a84c04c 100644
--- a/src/kudu/util/debug-util.h
+++ b/src/kudu/util/debug-util.h
@@ -19,6 +19,8 @@
 
 #include <sys/types.h>
 
+#include <cstdint>
+#include <cstring>
 #include <string>
 #include <vector>
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/debug/trace_event.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/debug/trace_event.h b/src/kudu/util/debug/trace_event.h
index 75a83e6..2c51309 100644
--- a/src/kudu/util/debug/trace_event.h
+++ b/src/kudu/util/debug/trace_event.h
@@ -194,6 +194,7 @@
 #include "kudu/gutil/atomicops.h"
 #include "kudu/util/debug/trace_event_impl.h"
 #include "kudu/util/debug/trace_event_memory.h"
+#include "kudu/util/thread.h"
 #include "kudu/gutil/walltime.h"
 
 // By default, const char* argument values are assumed to have long-lived scope

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/debug/trace_event_impl.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/debug/trace_event_impl.cc b/src/kudu/util/debug/trace_event_impl.cc
index 1d72a24..e8f00ab 100644
--- a/src/kudu/util/debug/trace_event_impl.cc
+++ b/src/kudu/util/debug/trace_event_impl.cc
@@ -5,29 +5,45 @@
 
 #include "kudu/util/debug/trace_event_impl.h"
 
+#include <sched.h>
+#include <unistd.h>
+
 #include <algorithm>
-#include <gflags/gflags.h>
+#include <cinttypes>
+#include <cstdlib>
+#include <cstring>
 #include <list>
+#include <sstream>
+#include <type_traits>
+#include <utility>
 #include <vector>
 
+#include <gflags/gflags.h>
+
 #include "kudu/gutil/bind.h"
-#include "kudu/util/atomic.h"
-#include "kudu/util/debug/trace_event.h"
-#include "kudu/gutil/mathlimits.h"
+#include "kudu/gutil/dynamic_annotations.h"
 #include "kudu/gutil/map-util.h"
-#include "kudu/gutil/strings/join.h"
-#include "kudu/gutil/strings/split.h"
-#include "kudu/gutil/strings/util.h"
+#include "kudu/gutil/mathlimits.h"
+#include "kudu/gutil/move.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted_memory.h"
 #include "kudu/gutil/singleton.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/stringprintf.h"
-#include "kudu/gutil/strings/escaping.h"
+#include "kudu/gutil/strings/join.h"
+#include "kudu/gutil/strings/split.h"
+#include "kudu/gutil/strings/stringpiece.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/gutil/dynamic_annotations.h"
-
+#include "kudu/gutil/strings/util.h"
+#include "kudu/gutil/sysinfo.h"
 #include "kudu/gutil/walltime.h"
+
+#include "kudu/util/atomic.h"
+#include "kudu/util/debug/trace_event.h"
 #include "kudu/util/debug/trace_event_synthetic_delay.h"
 #include "kudu/util/flag_tags.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/status.h"
 #include "kudu/util/thread.h"
 
 DEFINE_string(trace_to_console, "",

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/debug/trace_event_impl.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/debug/trace_event_impl.h b/src/kudu/util/debug/trace_event_impl.h
index e5e85df..53b1690 100644
--- a/src/kudu/util/debug/trace_event_impl.h
+++ b/src/kudu/util/debug/trace_event_impl.h
@@ -5,25 +5,27 @@
 #ifndef KUDU_UTIL_DEBUG_TRACE_EVENT_IMPL_H_
 #define KUDU_UTIL_DEBUG_TRACE_EVENT_IMPL_H_
 
-#include <gtest/gtest_prod.h>
+#include <cstddef>
+#include <cstdint>
+#include <iosfwd>
 #include <stack>
-#include <sstream>
 #include <string>
 #include <unordered_map>
-#include <unordered_set>
 #include <vector>
 
+#include <glog/logging.h>
+#include <gtest/gtest_prod.h>
 
 #include "kudu/gutil/atomicops.h"
+#include "kudu/gutil/bind_helpers.h"
 #include "kudu/gutil/callback.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/integral_types.h"
+#include "kudu/gutil/macros.h"
+#include "kudu/gutil/spinlock.h"
 #include "kudu/gutil/walltime.h"
 #include "kudu/gutil/ref_counted.h"
-#include "kudu/gutil/ref_counted_memory.h"
-#include "kudu/util/atomic.h"
-#include "kudu/util/condition_variable.h"
-#include "kudu/util/locks.h"
-#include "kudu/util/thread.h"
-#include "kudu/util/threadlocal.h"
+#include "kudu/util/mutex.h"
 
 // Older style trace macros with explicit id and extra data
 // Only these macros result in publishing data to ETW as currently implemented.
@@ -57,6 +59,10 @@ struct hash<kudu::Thread*> {
 #endif
 
 namespace kudu {
+
+class RefCountedString;
+class Thread;
+
 namespace debug {
 
 // For any argument of type TRACE_VALUE_TYPE_CONVERTABLE the provided

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/debug/trace_event_synthetic_delay.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/debug/trace_event_synthetic_delay.cc b/src/kudu/util/debug/trace_event_synthetic_delay.cc
index 0fff9fb..947ab88 100644
--- a/src/kudu/util/debug/trace_event_synthetic_delay.cc
+++ b/src/kudu/util/debug/trace_event_synthetic_delay.cc
@@ -2,9 +2,17 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "kudu/gutil/singleton.h"
 #include "kudu/util/debug/trace_event_synthetic_delay.h"
 
+#include <cstring>
+#include <ostream>
+
+#include <glog/logging.h>
+
+#include "kudu/gutil/dynamic_annotations.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/singleton.h"
+
 namespace {
 const int kMaxSyntheticDelays = 32;
 }  // namespace

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/debug/trace_event_synthetic_delay.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/debug/trace_event_synthetic_delay.h b/src/kudu/util/debug/trace_event_synthetic_delay.h
index f53d5f4..5866814 100644
--- a/src/kudu/util/debug/trace_event_synthetic_delay.h
+++ b/src/kudu/util/debug/trace_event_synthetic_delay.h
@@ -32,9 +32,13 @@
 #ifndef KUDU_UTIL_DEBUG_TRACE_EVENT_SYNTHETIC_DELAY_H_
 #define KUDU_UTIL_DEBUG_TRACE_EVENT_SYNTHETIC_DELAY_H_
 
+#include <string>
+
 #include "kudu/gutil/atomicops.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/util/debug/trace_event.h"
 #include "kudu/util/monotime.h"
+#include "kudu/util/mutex.h"
 
 // Apply a named delay in the current scope.
 #define TRACE_EVENT_SYNTHETIC_DELAY(name)                                     \

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/easy_json-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/easy_json-test.cc b/src/kudu/util/easy_json-test.cc
index 6d07581..7074512 100644
--- a/src/kudu/util/easy_json-test.cc
+++ b/src/kudu/util/easy_json-test.cc
@@ -19,9 +19,9 @@
 
 #include <gtest/gtest.h>
 #include <rapidjson/document.h>
+#include <rapidjson/rapidjson.h>
 
 #include "kudu/gutil/integral_types.h"
-#include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/easy_json.h"
 #include "kudu/util/test_util.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/easy_json.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/easy_json.cc b/src/kudu/util/easy_json.cc
index 4b26dad..c6cb597 100644
--- a/src/kudu/util/easy_json.cc
+++ b/src/kudu/util/easy_json.cc
@@ -18,15 +18,14 @@
 #include "kudu/util/easy_json.h"
 
 #include <string>
-#include <utility>
+#include <ostream>
 
 #include <glog/logging.h>
 #include <rapidjson/document.h>
+#include <rapidjson/rapidjson.h>
 #include <rapidjson/stringbuffer.h>
 #include <rapidjson/writer.h>
 
-#include "kudu/gutil/strings/substitute.h"
-
 using rapidjson::SizeType;
 using rapidjson::Value;
 using std::string;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/env-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/env-test.cc b/src/kudu/util/env-test.cc
index 4e3ed9f..b38c004 100644
--- a/src/kudu/util/env-test.cc
+++ b/src/kudu/util/env-test.cc
@@ -15,42 +15,57 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <fcntl.h>
-#include <sys/types.h>
+#if !defined(__APPLE__)
+#include <linux/falloc.h>
+#endif  // !defined(__APPLE__)
+// Copied from falloc.h. Useful for older kernels that lack support for
+// hole punching; fallocate(2) will return EOPNOTSUPP.
+#ifndef FALLOC_FL_KEEP_SIZE
+#define FALLOC_FL_KEEP_SIZE 0x01 /* default is extend size */
+#endif
+#ifndef FALLOC_FL_PUNCH_HOLE
+#define FALLOC_FL_PUNCH_HOLE  0x02 /* de-allocates range */
+#endif
 
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+#include <algorithm>
+#include <cerrno>
+#include <cstdio>
+#include <cstdint>
+#include <cstdlib>
 #include <memory>
+#include <ostream>
 #include <string>
+#include <utility>
+#include <vector>
 
+#include <gflags/gflags_declare.h>
 #include <glog/logging.h>
-#include <glog/stl_logging.h>
+#include <glog/stl_logging.h> // IWYU pragma: keep
 #include <gtest/gtest.h>
 
 #include "kudu/gutil/bind.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/human_readable.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/gutil/strings/util.h"
 #include "kudu/util/env.h"
 #include "kudu/util/env_util.h"
-#include "kudu/util/malloc.h"
+#include "kudu/util/make_shared.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/faststring.h"
 #include "kudu/util/path_util.h"
 #include "kudu/util/random.h"
 #include "kudu/util/random_util.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"
 
-#if !defined(__APPLE__)
-#include <linux/falloc.h>
-#endif  // !defined(__APPLE__)
-// Copied from falloc.h. Useful for older kernels that lack support for
-// hole punching; fallocate(2) will return EOPNOTSUPP.
-#ifndef FALLOC_FL_KEEP_SIZE
-#define FALLOC_FL_KEEP_SIZE 0x01 /* default is extend size */
-#endif
-#ifndef FALLOC_FL_PUNCH_HOLE
-#define FALLOC_FL_PUNCH_HOLE  0x02 /* de-allocates range */
-#endif
-
 DECLARE_bool(never_fsync);
 DECLARE_bool(suicide_on_eio);
 DECLARE_double(env_inject_eio);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/env.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/env.cc b/src/kudu/util/env.cc
index 1f6478c..90755e0 100644
--- a/src/kudu/util/env.cc
+++ b/src/kudu/util/env.cc
@@ -6,7 +6,10 @@
 
 #include <memory>
 
+#include <glog/logging.h>
+
 #include "kudu/util/faststring.h"
+#include "kudu/util/slice.h"
 
 using std::unique_ptr;
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/env.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/env.h b/src/kudu/util/env.h
index c2a1bdc..7624577 100644
--- a/src/kudu/util/env.h
+++ b/src/kudu/util/env.h
@@ -13,7 +13,7 @@
 #ifndef STORAGE_LEVELDB_INCLUDE_ENV_H_
 #define STORAGE_LEVELDB_INCLUDE_ENV_H_
 
-#include <cstdarg>
+#include <cstddef>
 #include <cstdint>
 #include <map>
 #include <memory>
@@ -21,6 +21,7 @@
 #include <vector>
 
 #include "kudu/gutil/callback_forward.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/util/status.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/env_posix.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/env_posix.cc b/src/kudu/util/env_posix.cc
index f4a3388..58c3984 100644
--- a/src/kudu/util/env_posix.cc
+++ b/src/kudu/util/env_posix.cc
@@ -3,40 +3,49 @@
 // found in the LICENSE file. See the AUTHORS file for names of contributors.
 
 #include <dirent.h>
-#include <errno.h>
 #include <fcntl.h>
 #include <fnmatch.h>
 #include <fts.h>
 #include <glob.h>
-#include <limits.h>
 #include <pthread.h>
-#include <sys/mman.h>
 #include <sys/resource.h>
 #include <sys/stat.h>
 #include <sys/statvfs.h>
 #include <sys/time.h>
-#include <sys/types.h>
 #include <sys/uio.h>
 #include <sys/utsname.h>
 #include <unistd.h>
+// IWYU pragma: no_include <asm/int-ll64.h>
+// IWYU pragma: no_include <asm/ioctl.h>
+// IWYU pragma: no_include <sys/statfs.h>
 
+#include <algorithm>
+#include <cstdint>
 #include <cstdio>
 #include <cstdlib>
 #include <cstring>
 #include <ctime>
+#include <map>
 #include <memory>
 #include <numeric>
+#include <cerrno>
+#include <ostream>
 #include <string>
 #include <type_traits>
 #include <vector>
 
+#include <gflags/gflags.h>
 #include <glog/logging.h>
 
 #include "kudu/gutil/atomicops.h"
+#include "kudu/gutil/basictypes.h"
+#include "kudu/gutil/bind_helpers.h"
 #include "kudu/gutil/bind.h"
-#include "kudu/gutil/callback.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/map-util.h"
 #include "kudu/gutil/once.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/split.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/atomic.h"
@@ -52,9 +61,11 @@
 #include "kudu/util/path_util.h"
 #include "kudu/util/scoped_cleanup.h"
 #include "kudu/util/slice.h"
+#include "kudu/util/status.h"
 #include "kudu/util/stopwatch.h"
 #include "kudu/util/thread_restrictions.h"
 #include "kudu/util/trace.h"
+#include "kudu/gutil/stringprintf.h"
 
 #if defined(__APPLE__)
 #include <mach-o/dyld.h>
@@ -63,10 +74,11 @@
 #include <linux/falloc.h>
 #include <linux/fiemap.h>
 #include <linux/fs.h>
+#include <linux/kernel.h>
 #include <linux/magic.h>
 #include <sys/ioctl.h>
 #include <sys/sysinfo.h>
-#include <sys/vfs.h>
+#include <sys/vfs.h>  // IWYU pragma: keep
 #endif  // defined(__APPLE__)
 
 using base::subtle::Atomic64;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/env_util-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/env_util-test.cc b/src/kudu/util/env_util-test.cc
index 61a4e3e..1298646 100644
--- a/src/kudu/util/env_util-test.cc
+++ b/src/kudu/util/env_util-test.cc
@@ -20,17 +20,24 @@
 #include <unistd.h>
 
 #include <algorithm>
+#include <cstdint>
+#include <cerrno>
 #include <memory>
+#include <string>
 #include <unordered_set>
+#include <vector>
 
-#include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
 #include <glog/stl_logging.h>
+#include <gtest/gtest.h>
 
-#include "kudu/gutil/map-util.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/gutil/walltime.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/test_macros.h"
 #include "kudu/util/test_util.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/env_util.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/env_util.cc b/src/kudu/util/env_util.cc
index c6e0f50..04a9844 100644
--- a/src/kudu/util/env_util.cc
+++ b/src/kudu/util/env_util.cc
@@ -18,23 +18,24 @@
 #include "kudu/util/env_util.h"
 
 #include <algorithm>
+#include <cstdint>
+#include <cerrno>
+#include <ctime>
 #include <memory>
 #include <string>
-#include <utility>
 #include <vector>
+#include <utility>
 
 #include <gflags/gflags.h>
 #include <glog/logging.h>
 
 #include "kudu/gutil/bind.h"
-#include "kudu/gutil/map-util.h"
-#include "kudu/gutil/strings/numbers.h"
-#include "kudu/gutil/strings/split.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/gutil/strings/util.h"
-#include "kudu/util/debug-util.h"
 #include "kudu/util/env.h"
 #include "kudu/util/flag_tags.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/path_util.h"
 #include "kudu/util/status.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/env_util.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/env_util.h b/src/kudu/util/env_util.h
index f93d81b..21bf0ff 100644
--- a/src/kudu/util/env_util.h
+++ b/src/kudu/util/env_util.h
@@ -17,13 +17,22 @@
 #ifndef KUDU_UTIL_ENV_UTIL_H
 #define KUDU_UTIL_ENV_UTIL_H
 
+#include <cstddef>
+#include <cstdint>
 #include <memory>
 #include <string>
 
 #include "kudu/gutil/macros.h"
-#include "kudu/util/env.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
+
+class Env;
+class RandomAccessFile;
+class SequentialFile;
+class WritableFile;
+struct WritableFileOptions;
+
 namespace env_util {
 
 Status OpenFileForWrite(Env *env, const std::string &path,

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/errno-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/errno-test.cc b/src/kudu/util/errno-test.cc
index 911ca14..f628b55 100644
--- a/src/kudu/util/errno-test.cc
+++ b/src/kudu/util/errno-test.cc
@@ -15,6 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <cerrno>
 #include <string>
 
 #include <gtest/gtest.h>

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/errno.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/errno.cc b/src/kudu/util/errno.cc
index 65b2173..cc00d0f 100644
--- a/src/kudu/util/errno.cc
+++ b/src/kudu/util/errno.cc
@@ -17,11 +17,11 @@
 
 #include "kudu/util/errno.h"
 
-#include <errno.h>
-#include <string.h>
+#include <cstring>
+#include <glog/logging.h>
 
 #include "kudu/gutil/dynamic_annotations.h"
-#include "kudu/util/logging.h"
+// IWYU pragma: no_include <features.h>
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/errno.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/errno.h b/src/kudu/util/errno.h
index 7d5416e..89802de 100644
--- a/src/kudu/util/errno.h
+++ b/src/kudu/util/errno.h
@@ -17,6 +17,7 @@
 #ifndef KUDU_ERRNO_H
 #define KUDU_ERRNO_H
 
+#include <cstddef>
 #include <string>
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/failure_detector-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/failure_detector-test.cc b/src/kudu/util/failure_detector-test.cc
index 306d81a..f8f4478 100644
--- a/src/kudu/util/failure_detector-test.cc
+++ b/src/kudu/util/failure_detector-test.cc
@@ -15,17 +15,23 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <algorithm>
+#include <ostream>
+#include <string>
 
+#include <glog/logging.h>
 #include <gtest/gtest.h>
-#include <string>
 
 #include "kudu/gutil/bind.h"
+#include "kudu/gutil/bind_helpers.h"
 #include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/map-util.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/util/countdown_latch.h"
 #include "kudu/util/failure_detector.h"
-#include "kudu/util/locks.h"
 #include "kudu/util/monotime.h"
 #include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/failure_detector.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/failure_detector.cc b/src/kudu/util/failure_detector.cc
index 8e2a6ae..7adb403 100644
--- a/src/kudu/util/failure_detector.cc
+++ b/src/kudu/util/failure_detector.cc
@@ -17,15 +17,18 @@
 
 #include "kudu/util/failure_detector.h"
 
-#include <glog/logging.h>
+#include <cstddef>
 #include <mutex>
+#include <ostream>
 #include <unordered_map>
 
+#include <glog/logging.h>
+
+#include "kudu/gutil/basictypes.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/map-util.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/util/locks.h"
-#include "kudu/util/random_util.h"
 #include "kudu/util/status.h"
 #include "kudu/util/thread.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/failure_detector.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/failure_detector.h b/src/kudu/util/failure_detector.h
index 0290011..1e986b4 100644
--- a/src/kudu/util/failure_detector.h
+++ b/src/kudu/util/failure_detector.h
@@ -18,22 +18,20 @@
 #ifndef KUDU_UTIL_FAILURE_DETECTOR_H_
 #define KUDU_UTIL_FAILURE_DETECTOR_H_
 
+#include <cstdint>
 #include <string>
 #include <unordered_map>
 
 #include "kudu/gutil/callback.h"
-#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/util/countdown_latch.h"
-#include "kudu/util/monotime.h"
 #include "kudu/util/locks.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/random.h"
-#include "kudu/util/status_callback.h"
 
 namespace kudu {
-class MonoDelta;
-class MonoTime;
 class Status;
 class Thread;
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/faststring-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/faststring-test.cc b/src/kudu/util/faststring-test.cc
index c57cb41..07c5697 100644
--- a/src/kudu/util/faststring-test.cc
+++ b/src/kudu/util/faststring-test.cc
@@ -16,6 +16,11 @@
 // under the License.
 
 #include <algorithm>
+#include <cstring>
+#include <memory>
+
+#include <gtest/gtest.h>
+
 #include "kudu/util/faststring.h"
 #include "kudu/util/random.h"
 #include "kudu/util/random_util.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/faststring.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/faststring.h b/src/kudu/util/faststring.h
index 3d25c84..992060b 100644
--- a/src/kudu/util/faststring.h
+++ b/src/kudu/util/faststring.h
@@ -17,10 +17,13 @@
 #ifndef KUDU_UTIL_FASTSTRING_H
 #define KUDU_UTIL_FASTSTRING_H
 
+#include <cstdint>
+#include <cstring>
 #include <string>
 
 #include "kudu/gutil/dynamic_annotations.h"
 #include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/fastmem.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/fault_injection.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/fault_injection.cc b/src/kudu/util/fault_injection.cc
index 20d24e7..32cb954 100644
--- a/src/kudu/util/fault_injection.cc
+++ b/src/kudu/util/fault_injection.cc
@@ -17,13 +17,16 @@
 
 #include "kudu/util/fault_injection.h"
 
-#include <stdlib.h>
-#include <sys/time.h>
+#include <unistd.h>
 
+#include <ostream>
+
+#include <glog/logging.h>
+
+#include "kudu/gutil/dynamic_annotations.h"
 #include "kudu/gutil/once.h"
 #include "kudu/util/debug/leakcheck_disabler.h"
 #include "kudu/util/monotime.h"
-#include "kudu/util/os-util.h"
 #include "kudu/util/random.h"
 #include "kudu/util/random_util.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/fault_injection.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/fault_injection.h b/src/kudu/util/fault_injection.h
index 43548e6..c46b118 100644
--- a/src/kudu/util/fault_injection.h
+++ b/src/kudu/util/fault_injection.h
@@ -18,6 +18,7 @@
 #define KUDU_UTIL_FAULT_INJECTION_H
 
 #include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
 #include "kudu/util/status.h"
 
 // Macros for injecting various kinds of faults with varying probability. If

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/file_cache-stress-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/file_cache-stress-test.cc b/src/kudu/util/file_cache-stress-test.cc
index 0402bdc..2960feb 100644
--- a/src/kudu/util/file_cache-stress-test.cc
+++ b/src/kudu/util/file_cache-stress-test.cc
@@ -44,6 +44,7 @@
 #include "kudu/util/path_util.h"
 #include "kudu/util/random.h"
 #include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 // Like CHECK_OK(), but dumps the contents of the cache before failing.

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/file_cache-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/file_cache-test.cc b/src/kudu/util/file_cache-test.cc
index 1752bd2..7d8bd3a 100644
--- a/src/kudu/util/file_cache-test.cc
+++ b/src/kudu/util/file_cache-test.cc
@@ -17,20 +17,27 @@
 
 #include "kudu/util/file_cache.h"
 
+#include <unistd.h>
+
+#include <cstdint>
 #include <memory>
 #include <string>
 #include <thread>
 #include <vector>
 
-#include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
 #include <gtest/gtest.h>
 
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/util/cache.h"
 #include "kudu/util/env.h"
-#include "kudu/util/metrics.h"
+#include "kudu/util/metrics.h"  // IWYU pragma: keep
 #include "kudu/util/random.h"
 #include "kudu/util/scoped_cleanup.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 DECLARE_bool(cache_force_single_shard);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/file_cache.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/file_cache.cc b/src/kudu/util/file_cache.cc
index de0cae7..34e9eef 100644
--- a/src/kudu/util/file_cache.cc
+++ b/src/kudu/util/file_cache.cc
@@ -18,13 +18,17 @@
 #include "kudu/util/file_cache.h"
 
 #include <atomic>
+#include <cstdint>
+#include <cstring>
 #include <memory>
 #include <mutex>
+#include <ostream>
 #include <string>
 #include <utility>
 #include <vector>
 
 #include <gflags/gflags.h>
+#include <glog/logging.h>
 
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/map-util.h"
@@ -35,9 +39,10 @@
 #include "kudu/util/env.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/locks.h"
-#include "kudu/util/malloc.h"
-#include "kudu/util/metrics.h"
+#include "kudu/util/metrics.h"  // IWYU pragma: keep
+#include "kudu/util/monotime.h"
 #include "kudu/util/once.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
 #include "kudu/util/thread.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/file_cache.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/file_cache.h b/src/kudu/util/file_cache.h
index 44330d3..021c758 100644
--- a/src/kudu/util/file_cache.h
+++ b/src/kudu/util/file_cache.h
@@ -27,13 +27,13 @@
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/util/cache.h"
 #include "kudu/util/countdown_latch.h"
-#include "kudu/util/env.h"
 #include "kudu/util/locks.h"
-#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
 
+class Env;
+
 namespace internal {
 
 template <class FileType>

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/flag_tags-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/flag_tags-test.cc b/src/kudu/util/flag_tags-test.cc
index 13ee535..a06a05e 100644
--- a/src/kudu/util/flag_tags-test.cc
+++ b/src/kudu/util/flag_tags-test.cc
@@ -15,16 +15,22 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <string>
+#include <unordered_set>
+#include <vector>
+
 #include <gtest/gtest.h>
 #include <gflags/gflags.h>
-#include <unordered_set>
+#include <gflags/gflags_declare.h>
 
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/flags.h"
 #include "kudu/util/logging.h"
 #include "kudu/util/logging_test_util.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 DECLARE_bool(never_fsync);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/flag_tags.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/flag_tags.cc b/src/kudu/util/flag_tags.cc
index 8b9ebe3..7e11ea2 100644
--- a/src/kudu/util/flag_tags.cc
+++ b/src/kudu/util/flag_tags.cc
@@ -17,15 +17,18 @@
 
 #include "kudu/util/flag_tags.h"
 
-#include "kudu/gutil/map-util.h"
-#include "kudu/gutil/singleton.h"
-
 #include <map>
+#include <ostream>
 #include <string>
 #include <unordered_set>
 #include <utility>
 #include <vector>
 
+#include <glog/logging.h>
+
+#include "kudu/gutil/map-util.h"
+#include "kudu/gutil/singleton.h"
+
 using std::multimap;
 using std::pair;
 using std::string;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/flag_tags.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/flag_tags.h b/src/kudu/util/flag_tags.h
index ddfdab1..ba5c870 100644
--- a/src/kudu/util/flag_tags.h
+++ b/src/kudu/util/flag_tags.h
@@ -112,7 +112,6 @@
 
 #include <string>
 #include <unordered_set>
-#include <vector>
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/flag_validators-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/flag_validators-test.cc b/src/kudu/util/flag_validators-test.cc
index 3e7fb5b..77efab3 100644
--- a/src/kudu/util/flag_validators-test.cc
+++ b/src/kudu/util/flag_validators-test.cc
@@ -15,15 +15,22 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <cstdlib>
+#include <functional>
+#include <map>
+#include <ostream>
 #include <string>
+#include <utility>
 
 #include <gflags/gflags.h>
+#include <glog/logging.h>
 #include <gtest/gtest.h>
 
+#include "kudu/gutil/macros.h"
 #include "kudu/util/debug/leakcheck_disabler.h"
 #include "kudu/util/flags.h"
 #include "kudu/util/flag_validators.h"
-#include "kudu/util/logging.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 DEFINE_string(grouped_0, "", "First flag to set.");

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/flags-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/flags-test.cc b/src/kudu/util/flags-test.cc
index dd5acd0..60ebebb 100644
--- a/src/kudu/util/flags-test.cc
+++ b/src/kudu/util/flags-test.cc
@@ -15,15 +15,23 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <string>
+#include <vector>
+
 #include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
 #include <gtest/gtest.h>
-#include <string>
 
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/env.h"
 #include "kudu/util/flags.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/logging.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 // Test gflags

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/flags.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/flags.cc b/src/kudu/util/flags.cc
index 19d5b4f..957ea7a 100644
--- a/src/kudu/util/flags.cc
+++ b/src/kudu/util/flags.cc
@@ -17,21 +17,32 @@
 
 #include "kudu/util/flags.h"
 
+#include <unistd.h>
+
+#include <cstdlib>
+#include <functional>
 #include <iostream>
-#include <map>
-#include <sstream>
 #include <string>
 #include <unordered_set>
+#include <utility>
 #include <vector>
 
 #include <sys/stat.h>
-#include <sys/types.h>
 
 #include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
+#ifdef TCMALLOC_ENABLED
 #include <gperftools/heap-profiler.h>
+#endif
 
+#include "kudu/gutil/macros.h"
+#include "kudu/gutil/map-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/substitute.h"
 #include "kudu/util/flag_tags.h"
 #include "kudu/util/flag_validators.h"
@@ -48,7 +59,7 @@ using google::CommandLineFlagInfo;
 using std::cout;
 using std::endl;
 using std::string;
-using std::stringstream;
+using std::ostringstream;
 using std::unordered_set;
 using std::vector;
 
@@ -352,7 +363,7 @@ void DumpFlagsXML() {
       EscapeForHtmlToString(google::ProgramUsage())) << endl;
 
   for (const CommandLineFlagInfo& flag : flags) {
-    cout << DescribeOneFlagInXML(flag) << std::endl;
+    cout << DescribeOneFlagInXML(flag) << endl;
   }
 
   cout << "</AllFlags>" << endl;
@@ -516,7 +527,7 @@ string CommandlineFlagsIntoString(EscapeMode mode) {
 }
 
 string GetNonDefaultFlags(const GFlagsMap& default_flags) {
-  stringstream args;
+  ostringstream args;
   vector<CommandLineFlagInfo> flags;
   GetAllFlags(&flags);
   for (const auto& flag : flags) {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/flags.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/flags.h b/src/kudu/util/flags.h
index ae20564..0c3028a 100644
--- a/src/kudu/util/flags.h
+++ b/src/kudu/util/flags.h
@@ -17,11 +17,13 @@
 #ifndef KUDU_UTIL_FLAGS_H
 #define KUDU_UTIL_FLAGS_H
 
-#include <gflags/gflags.h>
+#include <cstdint>
 #include <string>
 #include <unordered_map>
 
-#include "kudu/gutil/macros.h"
+namespace google {
+  struct CommandLineFlagInfo;
+}
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/group_varint-inl.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/group_varint-inl.h b/src/kudu/util/group_varint-inl.h
index 8f418b6..27e289f 100644
--- a/src/kudu/util/group_varint-inl.h
+++ b/src/kudu/util/group_varint-inl.h
@@ -17,11 +17,37 @@
 #ifndef KUDU_UTIL_GROUP_VARINT_INL_H
 #define KUDU_UTIL_GROUP_VARINT_INL_H
 
+#include <emmintrin.h>
+#ifdef __linux__
+#include <endian.h>
+#endif
+#include <smmintrin.h>
+#include <tmmintrin.h>
+#include <xmmintrin.h>
+
+#include <cstdint>
+#include <cstring>
+
 #include <boost/utility/binary.hpp>
+#include <boost/parameter/name.hpp>
+#include <boost/preprocessor/arithmetic/dec.hpp>
+#include <boost/preprocessor/arithmetic/inc.hpp>
+#include <boost/preprocessor/control/iif.hpp>
+#include <boost/preprocessor/control/while.hpp>
+#include <boost/preprocessor/list/fold_left.hpp>
+#include <boost/preprocessor/logical/bitand.hpp>
+#include <boost/preprocessor/logical/bool.hpp>
+#include <boost/preprocessor/logical/compl.hpp>
+#include <boost/preprocessor/seq/elem.hpp>
+#include <boost/preprocessor/seq/fold_left.hpp>
+#include <boost/preprocessor/seq/size.hpp>
+#include <boost/preprocessor/tuple/elem.hpp>
+#include <boost/preprocessor/variadic/elem.hpp>
 #include <glog/logging.h>
-#include <stdint.h>
-#include <smmintrin.h>
 
+#ifndef __linux__
+#include "kudu/gutil/port.h"
+#endif
 #include "kudu/util/faststring.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/group_varint-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/group_varint-test.cc b/src/kudu/util/group_varint-test.cc
index e8f4bfa..983fb0f 100644
--- a/src/kudu/util/group_varint-test.cc
+++ b/src/kudu/util/group_varint-test.cc
@@ -15,12 +15,21 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <glog/logging.h>
-#include <gtest/gtest.h>
+#include <cstdint>
+#include <cstdlib>
+#include <cstring>
+#include <string>
+#ifdef NDEBUG
 #include <vector>
+#endif
 
+#include <gtest/gtest.h>
+
+#include "kudu/util/faststring.h"
 #include "kudu/util/group_varint-inl.h"
+#ifdef NDEBUG
 #include "kudu/util/stopwatch.h"
+#endif
 
 namespace kudu {
 namespace coding {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/group_varint.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/group_varint.cc b/src/kudu/util/group_varint.cc
index 53c362b..47fbeb4 100644
--- a/src/kudu/util/group_varint.cc
+++ b/src/kudu/util/group_varint.cc
@@ -15,8 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <stdint.h>
-#include <string.h>
+#include <cstdint>
+#include <cstring>
+#include <ostream>
+#include <string>
+
 #include <boost/utility/binary.hpp>
 #include <glog/logging.h>
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/hash_util-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/hash_util-test.cc b/src/kudu/util/hash_util-test.cc
index a88f275..4e40dd5 100644
--- a/src/kudu/util/hash_util-test.cc
+++ b/src/kudu/util/hash_util-test.cc
@@ -15,7 +15,9 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include "kudu/util/test_util.h"
+#include <cstdint>
+
+#include <gtest/gtest.h>
 
 #include "kudu/util/hash_util.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/hdr_histogram-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/hdr_histogram-test.cc b/src/kudu/util/hdr_histogram-test.cc
index bf1c101..5d51e98 100644
--- a/src/kudu/util/hdr_histogram-test.cc
+++ b/src/kudu/util/hdr_histogram-test.cc
@@ -14,11 +14,14 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
+
+#include <cstdint>
+
 #include <gtest/gtest.h>
 
 #include "kudu/util/hdr_histogram.h"
-#include "kudu/util/status.h"
 #include "kudu/util/test_util.h"
+#include "kudu/util/test_macros.h"
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/hdr_histogram.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/hdr_histogram.cc b/src/kudu/util/hdr_histogram.cc
index e510df3..68894c7 100644
--- a/src/kudu/util/hdr_histogram.cc
+++ b/src/kudu/util/hdr_histogram.cc
@@ -26,6 +26,10 @@
 #include <algorithm>
 #include <cmath>
 #include <limits>
+#include <ostream>
+#include <string>
+
+#include <glog/logging.h>
 
 #include "kudu/gutil/atomicops.h"
 #include "kudu/gutil/bits.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/hdr_histogram.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/hdr_histogram.h b/src/kudu/util/hdr_histogram.h
index 19e31cc..14b5e95 100644
--- a/src/kudu/util/hdr_histogram.h
+++ b/src/kudu/util/hdr_histogram.h
@@ -52,12 +52,12 @@
 
 #include "kudu/gutil/atomicops.h"
 #include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
 
 namespace kudu {
 
-class AbstractHistogramIterator;
 class Status;
-class RecordedValuesIterator;
 
 // This implementation allows you to specify a range and accuracy (significant
 // digits) to support in an instance of a histogram. The class takes care of

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/hexdump.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/hexdump.cc b/src/kudu/util/hexdump.cc
index 8f7c6cd..59634c2 100644
--- a/src/kudu/util/hexdump.cc
+++ b/src/kudu/util/hexdump.cc
@@ -18,6 +18,8 @@
 #include "kudu/util/hexdump.h"
 
 #include <algorithm>
+#include <cctype>
+#include <cstdint>
 #include <string>
 
 #include "kudu/gutil/stringprintf.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/init.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/init.cc b/src/kudu/util/init.cc
index 3fa634a..bd97d79 100644
--- a/src/kudu/util/init.cc
+++ b/src/kudu/util/init.cc
@@ -20,8 +20,11 @@
 #include <fcntl.h>
 #include <unistd.h>
 
+#include <cstdlib>
 #include <string>
 
+#include <glog/logging.h>
+
 #include "kudu/gutil/cpu.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/status.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/init.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/init.h b/src/kudu/util/init.h
index 3f7916c..84e36e1 100644
--- a/src/kudu/util/init.h
+++ b/src/kudu/util/init.h
@@ -17,7 +17,6 @@
 #ifndef KUDU_UTIL_INIT_H
 #define KUDU_UTIL_INIT_H
 
-#include "kudu/gutil/macros.h"
 #include "kudu/util/status.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/inline_slice-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/inline_slice-test.cc b/src/kudu/util/inline_slice-test.cc
index df69028..8435bb0 100644
--- a/src/kudu/util/inline_slice-test.cc
+++ b/src/kudu/util/inline_slice-test.cc
@@ -15,12 +15,16 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <cstddef>
+#include <cstdint>
+#include <string>
+
 #include <gtest/gtest.h>
-#include <vector>
 
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/util/inline_slice.h"
 #include "kudu/util/memory/arena.h"
+#include "kudu/util/slice.h"
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/interval_tree-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/interval_tree-test.cc b/src/kudu/util/interval_tree-test.cc
index b547595..df143d3 100644
--- a/src/kudu/util/interval_tree-test.cc
+++ b/src/kudu/util/interval_tree-test.cc
@@ -17,13 +17,18 @@
 
 // All rights reserved.
 
-#include <stdlib.h>
-
 #include <algorithm>
-#include <tuple>
-
-#include <boost/optional.hpp>
-#include <glog/stl_logging.h>
+#include <cstdlib>
+#include <map>
+#include <memory>
+#include <ostream>
+#include <string>
+#include <tuple>  // IWYU pragma: keep
+#include <utility>
+#include <vector>
+
+#include <boost/optional/optional.hpp>
+#include <glog/logging.h>
 #include <gtest/gtest.h>
 
 #include "kudu/gutil/stringprintf.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/jsonreader-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/jsonreader-test.cc b/src/kudu/util/jsonreader-test.cc
index 3c54cc7..d9bf65b 100644
--- a/src/kudu/util/jsonreader-test.cc
+++ b/src/kudu/util/jsonreader-test.cc
@@ -15,14 +15,18 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <cstddef>
+#include <cstdint>
 #include <string>
 #include <vector>
 
 #include <gtest/gtest.h>
+#include <rapidjson/document.h>
 
 #include "kudu/gutil/integral_types.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/jsonreader.h"
+#include "kudu/util/status.h"
 #include "kudu/util/test_macros.h"
 
 using rapidjson::Value;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/jsonreader.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/jsonreader.cc b/src/kudu/util/jsonreader.cc
index e39761d..826449d 100644
--- a/src/kudu/util/jsonreader.cc
+++ b/src/kudu/util/jsonreader.cc
@@ -17,6 +17,9 @@
 
 #include "kudu/util/jsonreader.h"
 
+#include <algorithm>
+
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/substitute.h"
 
 using rapidjson::Value;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/jsonreader.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/jsonreader.h b/src/kudu/util/jsonreader.h
index 2d9e982..4799f73 100644
--- a/src/kudu/util/jsonreader.h
+++ b/src/kudu/util/jsonreader.h
@@ -17,13 +17,12 @@
 #ifndef KUDU_UTIL_JSONREADER_H_
 #define KUDU_UTIL_JSONREADER_H_
 
-#include <stdint.h>
+#include <cstdint>
 #include <string>
 #include <vector>
 
 #include <rapidjson/document.h>
 
-#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/util/status.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/jsonwriter-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/jsonwriter-test.cc b/src/kudu/util/jsonwriter-test.cc
index 08d54de..9dc7e69 100644
--- a/src/kudu/util/jsonwriter-test.cc
+++ b/src/kudu/util/jsonwriter-test.cc
@@ -15,12 +15,12 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <gflags/gflags.h>
 #include <gtest/gtest.h>
 
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/jsonwriter.h"
 #include "kudu/util/jsonwriter_test.pb.h"
-#include "kudu/util/logging.h"
 #include "kudu/util/test_util.h"
 
 using jsonwriter_test::TestAllTypes;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/jsonwriter.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/jsonwriter.cc b/src/kudu/util/jsonwriter.cc
index ef9d5ba..d2f1f65 100644
--- a/src/kudu/util/jsonwriter.cc
+++ b/src/kudu/util/jsonwriter.cc
@@ -14,8 +14,10 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
+
 #include "kudu/util/jsonwriter.h"
 
+#include <new>
 #include <sstream>
 #include <string>
 #include <vector>
@@ -24,9 +26,11 @@
 #include <google/protobuf/descriptor.h>
 #include <google/protobuf/descriptor.pb.h>
 #include <google/protobuf/message.h>
+#include <rapidjson/writer.h>
 #include <rapidjson/prettywriter.h>
 #include <rapidjson/rapidjson.h>
 
+#include "kudu/gutil/port.h"
 #include "kudu/util/logging.h"
 #include "kudu/util/pb_util.pb.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/jsonwriter.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/jsonwriter.h b/src/kudu/util/jsonwriter.h
index d3fb604..860bfaa 100644
--- a/src/kudu/util/jsonwriter.h
+++ b/src/kudu/util/jsonwriter.h
@@ -17,8 +17,9 @@
 #ifndef KUDU_UTIL_JSONWRITER_H
 #define KUDU_UTIL_JSONWRITER_H
 
-#include <inttypes.h>
-
+#include <cstddef>
+#include <cstdint>
+#include <iosfwd>
 #include <memory>
 #include <string>
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/kernel_stack_watchdog.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/kernel_stack_watchdog.cc b/src/kudu/util/kernel_stack_watchdog.cc
index a7097d8..b11c305 100644
--- a/src/kudu/util/kernel_stack_watchdog.cc
+++ b/src/kudu/util/kernel_stack_watchdog.cc
@@ -17,16 +17,24 @@
 
 #include "kudu/util/kernel_stack_watchdog.h"
 
+#include <cstdint>
+#include <cstring>
+#include <mutex>
+#include <ostream>
+#include <string>
+#include <utility>
+
 #include <boost/bind.hpp>
 #include <glog/logging.h>
 #include <gflags/gflags.h>
-#include <string>
 
+#include "kudu/gutil/dynamic_annotations.h"
 #include "kudu/util/debug-util.h"
 #include "kudu/util/debug/leakcheck_disabler.h"
 #include "kudu/util/env.h"
 #include "kudu/util/faststring.h"
 #include "kudu/util/flag_tags.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/thread.h"
 #include "kudu/util/status.h"
 #include "kudu/gutil/map-util.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/util/kernel_stack_watchdog.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/kernel_stack_watchdog.h b/src/kudu/util/kernel_stack_watchdog.h
index 79b6087..26b8253 100644
--- a/src/kudu/util/kernel_stack_watchdog.h
+++ b/src/kudu/util/kernel_stack_watchdog.h
@@ -53,18 +53,22 @@
 #ifndef KUDU_UTIL_KERNEL_STACK_WATCHDOG_H
 #define KUDU_UTIL_KERNEL_STACK_WATCHDOG_H
 
+#include <ctime>
 #include <string>
 #include <unordered_map>
 #include <vector>
 
+#include <glog/logging.h>
+
+#include "kudu/gutil/atomicops.h"
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/singleton.h"
 #include "kudu/gutil/walltime.h"
 #include "kudu/util/countdown_latch.h"
 #include "kudu/util/locks.h"
-#include "kudu/util/monotime.h"
 #include "kudu/util/mutex.h"
 #include "kudu/util/threadlocal.h"
 


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

Posted by al...@apache.org.
http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/cfile_reader.h
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/cfile_reader.h b/src/kudu/cfile/cfile_reader.h
index 1517771..e20b8dc 100644
--- a/src/kudu/cfile/cfile_reader.h
+++ b/src/kudu/cfile/cfile_reader.h
@@ -18,42 +18,49 @@
 #ifndef KUDU_CFILE_CFILE_READER_H
 #define KUDU_CFILE_CFILE_READER_H
 
+#include <cstddef>
+#include <cstdint>
 #include <memory>
 #include <string>
 #include <vector>
 
-#include "kudu/common/columnblock.h"
-#include "kudu/common/types.h"
-#include "kudu/cfile/block_cache.h"
+#include <glog/logging.h>
+
 #include "kudu/cfile/block_encodings.h"
 #include "kudu/cfile/block_handle.h"
-#include "kudu/cfile/block_compression.h"
-#include "kudu/cfile/cfile_util.h"
-#include "kudu/cfile/index_btree.h"
-#include "kudu/cfile/type_encodings.h"
+#include "kudu/cfile/block_pointer.h"
+#include "kudu/cfile/cfile.pb.h"
+#include "kudu/common/iterator_stats.h"
+#include "kudu/common/rowid.h"
 #include "kudu/fs/block_id.h"
 #include "kudu/fs/block_manager.h"
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/port.h"
+#include "kudu/util/compression/compression.pb.h"
+#include "kudu/util/faststring.h"
 #include "kudu/util/mem_tracker.h"
 #include "kudu/util/object_pool.h"
 #include "kudu/util/once.h"
 #include "kudu/util/rle-encoding.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
-#include "kudu/common/iterator_stats.h"
-#include "kudu/common/key_encoder.h"
 
 namespace kudu {
+
+class ColumnMaterializationContext;
+class CompressionCodec;
+class EncodedKey;
+class SelectionVector;
+class TypeInfo;
+
 namespace cfile {
 
-class BlockCache;
-class BlockDecoder;
-class BlockPointer;
-class CFileHeaderPB;
-class CFileFooterPB;
-class CFileIterator;
 class BinaryPlainBlockDecoder;
+class CFileIterator;
+class IndexTreeIterator;
+class TypeEncodingInfo;
+struct ReaderOptions;
 
 class CFileReader {
  public:

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/cfile_util.cc
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/cfile_util.cc b/src/kudu/cfile/cfile_util.cc
index 06c7813..2995407 100644
--- a/src/kudu/cfile/cfile_util.cc
+++ b/src/kudu/cfile/cfile_util.cc
@@ -17,14 +17,21 @@
 
 #include "kudu/cfile/cfile_util.h"
 
-#include <glog/logging.h>
 #include <algorithm>
+#include <cstdint>
 #include <string>
 
+#include <glog/logging.h>
+
 #include "kudu/cfile/cfile_reader.h"
 #include "kudu/common/column_materialization_context.h"
-#include "kudu/util/env.h"
+#include "kudu/common/columnblock.h"
+#include "kudu/common/rowblock.h"
+#include "kudu/common/types.h"
+#include "kudu/gutil/port.h"
+#include "kudu/util/bitmap.h"
 #include "kudu/util/mem_tracker.h"
+#include "kudu/util/memory/arena.h"
 
 namespace kudu {
 namespace cfile {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/cfile_util.h
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/cfile_util.h b/src/kudu/cfile/cfile_util.h
index 640ea9c..56f03ee 100644
--- a/src/kudu/cfile/cfile_util.h
+++ b/src/kudu/cfile/cfile_util.h
@@ -17,19 +17,18 @@
 #ifndef CFILE_UTIL_H_
 #define CFILE_UTIL_H_
 
-#include <algorithm>
+#include <cstddef>
 #include <iostream>
-
-#include "kudu/cfile/cfile.pb.h"
+#include <memory>
 
 #include "kudu/common/schema.h"
-#include "kudu/common/row.h"
-#include "kudu/common/encoded_key.h"
-#include "kudu/util/bloom_filter.h"
 #include "kudu/util/slice.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
+
+class MemTracker;
+
 namespace cfile {
 
 class CFileReader;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/cfile_writer.cc
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/cfile_writer.cc b/src/kudu/cfile/cfile_writer.cc
index cfc934a..9ddcbfb 100644
--- a/src/kudu/cfile/cfile_writer.cc
+++ b/src/kudu/cfile/cfile_writer.cc
@@ -17,19 +17,28 @@
 
 #include "kudu/cfile/cfile_writer.h"
 
-#include <glog/logging.h>
 #include <numeric>
 #include <string>
+#include <ostream>
 #include <utility>
 
+#include <gflags/gflags.h>
+#include <glog/logging.h>
+
+#include "kudu/cfile/block_compression.h"
+#include "kudu/cfile/block_encodings.h"
 #include "kudu/cfile/block_pointer.h"
+#include "kudu/cfile/cfile.pb.h"
 #include "kudu/cfile/cfile_util.h"
-#include "kudu/cfile/index_block.h"
 #include "kudu/cfile/index_btree.h"
 #include "kudu/cfile/type_encodings.h"
+#include "kudu/common/common.pb.h"
 #include "kudu/common/key_encoder.h"
-#include "kudu/gutil/endian.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/types.h"
+#include "kudu/gutil/port.h"
 #include "kudu/util/coding.h"
+#include "kudu/util/coding-inl.h"
 #include "kudu/util/compression/compression_codec.h"
 #include "kudu/util/crc.h"
 #include "kudu/util/debug/trace_event.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/cfile_writer.h
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/cfile_writer.h b/src/kudu/cfile/cfile_writer.h
index 8b6ac57..b3461b2 100644
--- a/src/kudu/cfile/cfile_writer.h
+++ b/src/kudu/cfile/cfile_writer.h
@@ -18,37 +18,47 @@
 #ifndef KUDU_CFILE_CFILE_WRITER_H
 #define KUDU_CFILE_CFILE_WRITER_H
 
-#include <stdint.h>
-
+#include <cstddef>
+#include <cstdint>
 #include <memory>
 #include <string>
 #include <utility>
 #include <vector>
 
-#include "kudu/cfile/block_encodings.h"
-#include "kudu/cfile/block_compression.h"
-#include "kudu/cfile/cfile.pb.h"
 #include "kudu/cfile/cfile_util.h"
-#include "kudu/cfile/type_encodings.h"
-#include "kudu/common/key_encoder.h"
-#include "kudu/common/types.h"
+#include "kudu/common/rowid.h"
 #include "kudu/fs/block_id.h"
 #include "kudu/fs/block_manager.h"
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
-#include "kudu/gutil/strings/stringpiece.h"
-#include "kudu/util/env.h"
+#include "kudu/util/bitmap.h"
+#include "kudu/util/compression/compression.pb.h"
+#include "kudu/util/faststring.h"
 #include "kudu/util/rle-encoding.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
 
+namespace google {
+namespace protobuf {
+template <typename Element>
+class RepeatedPtrField; // IWYU pragma: keep
+}
+}
+
 namespace kudu {
-class Arena;
+
+class TypeInfo;
+template <typename Buffer>
+class KeyEncoder;
 
 namespace cfile {
 
+class BlockBuilder;
 class BlockPointer;
-class BTreeInfoPB;
+class CompressedBlockBuilder;
+class FileMetadataPairPB;
 class IndexTreeBuilder;
+class TypeEncodingInfo;
 
 // Magic used in header/footer
 extern const char kMagicStringV1[];

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/encoding-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/encoding-test.cc b/src/kudu/cfile/encoding-test.cc
index 8dfd602..ba10ed4 100644
--- a/src/kudu/cfile/encoding-test.cc
+++ b/src/kudu/cfile/encoding-test.cc
@@ -15,29 +15,46 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <glog/logging.h>
-#include <gtest/gtest.h>
-#include <memory>
+#include <sys/types.h>
+
+#include <algorithm>
+#include <climits>
+#include <cstdint>
+#include <cstdio>
+#include <cstdlib>
 #include <limits>
-#include <stdlib.h>
+#include <memory>
+#include <ostream>
+#include <string>
 #include <vector>
 
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
+#include "kudu/cfile/binary_plain_block.h"
+#include "kudu/cfile/binary_prefix_block.h"
 #include "kudu/cfile/block_encodings.h"
 #include "kudu/cfile/bshuf_block.h"
-#include "kudu/cfile/cfile_writer.h"
+#include "kudu/cfile/cfile_util.h"
 #include "kudu/cfile/plain_bitmap_block.h"
 #include "kudu/cfile/plain_block.h"
 #include "kudu/cfile/rle_block.h"
-#include "kudu/cfile/binary_plain_block.h"
-#include "kudu/cfile/binary_prefix_block.h"
 #include "kudu/common/columnblock.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/types.h"
 #include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/stringprintf.h"
+#include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/group_varint-inl.h"
 #include "kudu/util/hexdump.h"
 #include "kudu/util/memory/arena.h"
 #include "kudu/util/random.h"
 #include "kudu/util/random_util.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"
@@ -47,7 +64,6 @@ using std::unique_ptr;
 using std::vector;
 
 namespace kudu {
-
 namespace cfile {
 
 class TestEncoding : public KuduTest {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/index-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/index-test.cc b/src/kudu/cfile/index-test.cc
index f0d457c..98b3a05 100644
--- a/src/kudu/cfile/index-test.cc
+++ b/src/kudu/cfile/index-test.cc
@@ -15,14 +15,24 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <cstdint>
+#include <cstdio>
+#include <cstring>
 #include <string>
 
+#include <glog/logging.h>
 #include <gtest/gtest.h>
 
-#include "kudu/cfile/cfile_writer.h"
-#include "kudu/cfile/index_btree.h"
+#include "kudu/cfile/block_pointer.h"
+#include "kudu/cfile/cfile_util.h"
+#include "kudu/cfile/index_block.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/key_encoder.h"
 #include "kudu/gutil/endian.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/util/faststring.h"
 #include "kudu/util/hexdump.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
 #include "kudu/util/test_macros.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/index_block.cc
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/index_block.cc b/src/kudu/cfile/index_block.cc
index efe4b82..79cb608 100644
--- a/src/kudu/cfile/index_block.cc
+++ b/src/kudu/cfile/index_block.cc
@@ -17,10 +17,16 @@
 
 #include "kudu/cfile/index_block.h"
 
+#include <cstdint>
+#include <ostream>
 #include <string>
 
-#include "kudu/cfile/cfile_writer.h"
+#include <glog/logging.h>
+
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/util/coding-inl.h"
+#include "kudu/util/coding.h"
 #include "kudu/util/pb_util.h"
 #include "kudu/util/protobuf_util.h"
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/index_block.h
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/index_block.h b/src/kudu/cfile/index_block.h
index 1817b66..cb51bcd 100644
--- a/src/kudu/cfile/index_block.h
+++ b/src/kudu/cfile/index_block.h
@@ -18,15 +18,16 @@
 #ifndef KUDU_CFILE_INDEX_BLOCK_H
 #define KUDU_CFILE_INDEX_BLOCK_H
 
-#include <glog/logging.h>
+#include <cstddef>
+#include <cstdint>
 #include <vector>
 
-#include "kudu/common/types.h"
 #include "kudu/cfile/block_pointer.h"
-#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/cfile/cfile.pb.h"
 #include "kudu/gutil/macros.h"
-#include "kudu/gutil/port.h"
-#include "kudu/util/coding-inl.h"
+#include "kudu/util/faststring.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 namespace cfile {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/index_btree.cc
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/index_btree.cc b/src/kudu/cfile/index_btree.cc
index 54d8739..d83932f 100644
--- a/src/kudu/cfile/index_btree.cc
+++ b/src/kudu/cfile/index_btree.cc
@@ -15,14 +15,19 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <string>
 #include <vector>
+#include <ostream>
 
-#include "kudu/cfile/block_cache.h"
+#include <glog/logging.h>
+
+#include "kudu/cfile/cfile.pb.h"
 #include "kudu/cfile/cfile_reader.h"
 #include "kudu/cfile/cfile_writer.h"
+#include "kudu/cfile/cfile_util.h"
 #include "kudu/cfile/index_btree.h"
-#include "kudu/common/key_encoder.h"
 #include "kudu/util/debug-util.h"
+#include "kudu/util/make_shared.h"
 
 using std::vector;
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/index_btree.h
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/index_btree.h b/src/kudu/cfile/index_btree.h
index c0d0f62..edfbaad 100644
--- a/src/kudu/cfile/index_btree.h
+++ b/src/kudu/cfile/index_btree.h
@@ -18,19 +18,24 @@
 #ifndef KUDU_CFILE_INDEX_BTREE_H
 #define KUDU_CFILE_INDEX_BTREE_H
 
+#include <cstddef>
 #include <memory>
 #include <vector>
 
 #include "kudu/cfile/block_handle.h"
-#include "kudu/cfile/cfile.pb.h"
+#include "kudu/cfile/block_pointer.h"
 #include "kudu/cfile/index_block.h"
 #include "kudu/gutil/macros.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 namespace cfile {
 
+class BTreeInfoPB;
 class CFileReader;
 class CFileWriter;
+struct WriterOptions;
 
 class IndexTreeBuilder {
  public:

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/mt-bloomfile-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/mt-bloomfile-test.cc b/src/kudu/cfile/mt-bloomfile-test.cc
index ac0bd98..f0288b1 100644
--- a/src/kudu/cfile/mt-bloomfile-test.cc
+++ b/src/kudu/cfile/mt-bloomfile-test.cc
@@ -17,9 +17,9 @@
 
 #include "kudu/cfile/bloomfile-test-base.h"
 
-#include <boost/bind.hpp>
-
-#include "kudu/util/thread.h"
+#include <boost/bind.hpp> // IWYU pragma: keep
+#include <gflags/gflags.h>
+#include <glog/logging.h>
 
 DEFINE_int32(benchmark_num_threads, 8, "Number of threads to use for the benchmark");
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/type_encodings.cc
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/type_encodings.cc b/src/kudu/cfile/type_encodings.cc
index 85035c6..3485192 100644
--- a/src/kudu/cfile/type_encodings.cc
+++ b/src/kudu/cfile/type_encodings.cc
@@ -16,12 +16,11 @@
 // under the License.
 #include "kudu/cfile/type_encodings.h"
 
-#include <unordered_map>
+#include <cstddef>
 #include <memory>
+#include <unordered_map>
 #include <utility>
 
-#include <glog/logging.h>
-
 #include "kudu/cfile/bshuf_block.h"
 #include "kudu/cfile/plain_bitmap_block.h"
 #include "kudu/cfile/plain_block.h"
@@ -30,7 +29,11 @@
 #include "kudu/cfile/binary_plain_block.h"
 #include "kudu/cfile/binary_prefix_block.h"
 #include "kudu/common/types.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/singleton.h"
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/util/slice.h"
+
 
 using std::make_pair;
 using std::pair;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/cfile/type_encodings.h
----------------------------------------------------------------------
diff --git a/src/kudu/cfile/type_encodings.h b/src/kudu/cfile/type_encodings.h
index c9b8a4b..bbcaf87 100644
--- a/src/kudu/cfile/type_encodings.h
+++ b/src/kudu/cfile/type_encodings.h
@@ -18,16 +18,17 @@
 #define KUDU_CFILE_TYPE_ENCODINGS_H_
 
 #include "kudu/common/common.pb.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/util/make_shared.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
+class Slice;
 class TypeInfo;
 
 namespace cfile {
 class BlockBuilder;
 class BlockDecoder;
-class CFileReader;
 class CFileIterator;
 struct WriterOptions;
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/batcher.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/batcher.cc b/src/kudu/client/batcher.cc
index 4a0fc8c..0acd43a 100644
--- a/src/kudu/client/batcher.cc
+++ b/src/kudu/client/batcher.cc
@@ -18,15 +18,17 @@
 #include "kudu/client/batcher.h"
 
 #include <algorithm>
+#include <cstddef>
 #include <memory>
 #include <mutex>
+#include <ostream>
 #include <set>
 #include <string>
+#include <type_traits>
 #include <unordered_map>
 #include <utility>
 #include <vector>
 
-#include <boost/bind.hpp>
 #include <glog/logging.h>
 
 #include "kudu/client/callbacks.h"
@@ -34,25 +36,32 @@
 #include "kudu/client/client.h"
 #include "kudu/client/error_collector.h"
 #include "kudu/client/meta_cache.h"
+#include "kudu/client/schema.h"
 #include "kudu/client/session-internal.h"
+#include "kudu/client/shared_ptr.h"
 #include "kudu/client/write_op-internal.h"
 #include "kudu/client/write_op.h"
-#include "kudu/common/encoded_key.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/partition.h"
 #include "kudu/common/row_operations.h"
 #include "kudu/common/wire_protocol.h"
+#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/gutil/atomic_refcount.h"
+#include "kudu/gutil/bind.h"
+#include "kudu/gutil/bind_helpers.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/move.h"
 #include "kudu/gutil/stl_util.h"
-#include "kudu/gutil/strings/human_readable.h"
-#include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/rpc/messenger.h"
-#include "kudu/rpc/request_tracker.h"
+#include "kudu/rpc/connection.h"
+#include "kudu/rpc/response_callback.h"
 #include "kudu/rpc/retriable_rpc.h"
 #include "kudu/rpc/rpc.h"
 #include "kudu/rpc/rpc_controller.h"
 #include "kudu/rpc/rpc_header.pb.h"
+#include "kudu/tserver/tserver.pb.h"
 #include "kudu/tserver/tserver_service.proxy.h"
-#include "kudu/util/debug-util.h"
 #include "kudu/util/logging.h"
 #include "kudu/util/pb_util.h"
 
@@ -67,6 +76,14 @@ using strings::Substitute;
 
 namespace kudu {
 
+class KuduPartialRow;
+class Schema;
+
+namespace rpc {
+class Messenger;
+class RequestTracker;
+}
+
 using pb_util::SecureDebugString;
 using pb_util::SecureShortDebugString;
 using rpc::CredentialsPolicy;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/batcher.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/batcher.h b/src/kudu/client/batcher.h
index f98cf0d..b244b28 100644
--- a/src/kudu/client/batcher.h
+++ b/src/kudu/client/batcher.h
@@ -17,27 +17,28 @@
 #ifndef KUDU_CLIENT_BATCHER_H
 #define KUDU_CLIENT_BATCHER_H
 
+#include <cstdint>
+#include <mutex>
 #include <unordered_map>
 #include <unordered_set>
 #include <vector>
 
 #include "kudu/client/client.h"
-#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/client/write_op.h"
+#include "kudu/gutil/atomicops.h"
 #include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/ref_counted.h"
-#include "kudu/util/async_util.h"
 #include "kudu/util/atomic.h"
-#include "kudu/util/debug-util.h"
 #include "kudu/util/locks.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
 namespace client {
 
-class KuduClient;
-class KuduSession;
 class KuduStatusCallback;
-class KuduWriteOperation;
 
 namespace internal {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/client-internal.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/client-internal.cc b/src/kudu/client/client-internal.cc
index da16fcf..5e84eca 100644
--- a/src/kudu/client/client-internal.cc
+++ b/src/kudu/client/client-internal.cc
@@ -18,37 +18,48 @@
 #include "kudu/client/client-internal.h"
 
 #include <algorithm>
+#include <cstdint>
 #include <functional>
 #include <limits>
 #include <memory>
 #include <mutex>
+#include <ostream>
 #include <string>
 #include <vector>
 
+#include <boost/bind.hpp> // IWYU pragma: keep
+#include <boost/function.hpp>
+#include <glog/logging.h>
+
 #include "kudu/client/master_rpc.h"
 #include "kudu/client/meta_cache.h"
+#include "kudu/client/schema.h"
+#include "kudu/common/partition.h"
 #include "kudu/common/schema.h"
 #include "kudu/common/wire_protocol.h"
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/human_readable.h"
 #include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/gutil/sysinfo.h"
 #include "kudu/master/master.h"
 #include "kudu/master/master.pb.h"
 #include "kudu/master/master.proxy.h"
 #include "kudu/rpc/messenger.h"
 #include "kudu/rpc/request_tracker.h"
-#include "kudu/rpc/rpc.h"
 #include "kudu/rpc/rpc_controller.h"
 #include "kudu/rpc/rpc_header.pb.h"
 #include "kudu/security/cert.h"
+#include "kudu/security/openssl_util.h"
 #include "kudu/security/tls_context.h"
+#include "kudu/util/async_util.h"
 #include "kudu/util/logging.h"
 #include "kudu/util/net/dns_resolver.h"
 #include "kudu/util/net/net_util.h"
+#include "kudu/util/net/sockaddr.h"
 #include "kudu/util/pb_util.h"
 #include "kudu/util/thread_restrictions.h"
+#include "kudu/rpc/connection.h"
 
 using std::set;
 using std::shared_ptr;
@@ -58,7 +69,6 @@ using std::vector;
 
 namespace kudu {
 
-using consensus::RaftPeerPB;
 using master::AlterTableRequestPB;
 using master::AlterTableResponsePB;
 using master::CreateTableRequestPB;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/client-internal.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/client-internal.h b/src/kudu/client/client-internal.h
index a7a1434..d19d579 100644
--- a/src/kudu/client/client-internal.h
+++ b/src/kudu/client/client-internal.h
@@ -19,25 +19,36 @@
 
 #include <algorithm>
 #include <cmath>
+#include <cstdint>
+#include <cstdlib>
+#include <memory>
 #include <set>
 #include <string>
 #include <unordered_set>
 #include <vector>
 
-#include <boost/function.hpp>
-
 #include "kudu/client/client.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/macros.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/rpc/rpc_controller.h"
-#include "kudu/security/token.pb.h"
 #include "kudu/util/atomic.h"
 #include "kudu/util/locks.h"
 #include "kudu/util/monotime.h"
 #include "kudu/util/net/net_util.h"
+#include "kudu/util/status.h"
+#include "kudu/util/status_callback.h"
+
+namespace boost {
+template <typename Signature>
+class function;
+} // namespace boost
 
 namespace kudu {
 
 class DnsResolver;
-class HostPort;
+class PartitionSchema;
+class Sockaddr;
 
 namespace master {
 class AlterTableRequestPB;
@@ -53,8 +64,13 @@ class RequestTracker;
 
 namespace client {
 
+class KuduSchema;
+
 namespace internal {
 class ConnectToClusterRpc;
+class MetaCache;
+class RemoteTablet;
+class RemoteTabletServer;
 } // namespace internal
 
 class KuduClient::Data {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/client-test-util.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/client-test-util.cc b/src/kudu/client/client-test-util.cc
index c44e813..e1b0333 100644
--- a/src/kudu/client/client-test-util.cc
+++ b/src/kudu/client/client-test-util.cc
@@ -18,14 +18,19 @@
 #include "kudu/client/client-test-util.h"
 
 #include <string>
+#include <ostream>
 #include <vector>
 
 #include <glog/logging.h>
+#include <gtest/gtest.h>
 
+#include "kudu/client/row_result.h"
+#include "kudu/client/scan_batch.h"
+#include "kudu/client/schema.h"
+#include "kudu/client/write_op.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/util/status.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/client/client-test-util.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/client-test-util.h b/src/kudu/client/client-test-util.h
index f3ff1f6..244235a 100644
--- a/src/kudu/client/client-test-util.h
+++ b/src/kudu/client/client-test-util.h
@@ -17,11 +17,14 @@
 
 #pragma once
 
+#include <cstddef>
+#include <cstdint>
 #include <string>
 #include <vector>
 
+#include "kudu/gutil/port.h"
 #include "kudu/client/client.h"
-#include "kudu/gutil/macros.h"
+#include "kudu/client/shared_ptr.h"
 #include "kudu/util/status.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/client-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/client-test.cc b/src/kudu/client/client-test.cc
index 337f78d..cb1ab12 100644
--- a/src/kudu/client/client-test.cc
+++ b/src/kudu/client/client-test.cc
@@ -17,16 +17,26 @@
 
 #include <algorithm>
 #include <atomic>
+#include <cstdint>
+#include <cstdlib>
 #include <functional>
+#include <iterator>
 #include <map>
 #include <memory>
+#include <mutex>
+#include <ostream>
 #include <set>
 #include <string>
 #include <thread>
 #include <utility>
 #include <vector>
 
+#include <boost/bind.hpp>
+#include <boost/function.hpp>
+#include <boost/optional/optional.hpp>
 #include <gflags/gflags.h>
+#include <gflags/gflags_declare.h>
+#include <glog/logging.h>
 #include <glog/stl_logging.h>
 #include <gtest/gtest.h>
 
@@ -36,39 +46,67 @@
 #include "kudu/client/client.h"
 #include "kudu/client/error_collector.h"
 #include "kudu/client/meta_cache.h"
+#include "kudu/client/resource_metrics.h"
 #include "kudu/client/row_result.h"
+#include "kudu/client/scan_batch.h"
+#include "kudu/client/scan_configuration.h"
+#include "kudu/client/scan_predicate.h"
 #include "kudu/client/scanner-internal.h"
+#include "kudu/client/schema.h"
 #include "kudu/client/session-internal.h"
+#include "kudu/client/shared_ptr.h"
 #include "kudu/client/value.h"
 #include "kudu/client/write_op.h"
+#include "kudu/clock/clock.h"
 #include "kudu/clock/hybrid_clock.h"
 #include "kudu/common/partial_row.h"
-#include "kudu/common/wire_protocol.h"
+#include "kudu/common/row.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/timestamp.h"
+#include "kudu/common/wire_protocol.pb.h"
 #include "kudu/gutil/atomicops.h"
+#include "kudu/gutil/casts.h"
+#include "kudu/gutil/integral_types.h"
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/mathlimits.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/stl_util.h"
+#include "kudu/gutil/stringprintf.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/integration-tests/internal_mini_cluster.h"
 #include "kudu/master/catalog_manager.h"
-#include "kudu/master/master-test-util.h"
-#include "kudu/master/master.proxy.h"
+#include "kudu/master/master.h"
+#include "kudu/master/master.pb.h"
 #include "kudu/master/mini_master.h"
-#include "kudu/master/ts_descriptor.h"
 #include "kudu/rpc/messenger.h"
+#include "kudu/rpc/service_pool.h"
 #include "kudu/security/tls_context.h"
+#include "kudu/security/token.pb.h"
+#include "kudu/server/rpc_server.h"
+#include "kudu/tablet/tablet.h"
+#include "kudu/tablet/tablet_metadata.h"
 #include "kudu/tablet/tablet_replica.h"
-#include "kudu/tablet/transactions/write_transaction.h"
 #include "kudu/tserver/mini_tablet_server.h"
 #include "kudu/tserver/scanners.h"
 #include "kudu/tserver/tablet_server.h"
+#include "kudu/tserver/tablet_server_options.h"
 #include "kudu/tserver/ts_tablet_manager.h"
+#include "kudu/tserver/tserver.pb.h"
+#include "kudu/util/async_util.h"
+#include "kudu/util/countdown_latch.h"
+#include "kudu/util/locks.h"  // IWYU pragma: keep
 #include "kudu/util/metrics.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/net/sockaddr.h"
-#include "kudu/util/scoped_cleanup.h"
+#include "kudu/util/semaphore.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"
 #include "kudu/util/thread.h"
+#include "kudu/util/thread_restrictions.h"
 
 DECLARE_bool(allow_unsafe_replication_factor);
 DECLARE_bool(fail_dns_resolution);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/client-unittest.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/client-unittest.cc b/src/kudu/client/client-unittest.cc
index ae2c623..92c3cae 100644
--- a/src/kudu/client/client-unittest.cc
+++ b/src/kudu/client/client-unittest.cc
@@ -17,16 +17,22 @@
 //
 // Tests for the client which are true unit tests and don't require a cluster, etc.
 
+#include <cstddef>
 #include <string>
 #include <vector>
 
 #include <boost/bind.hpp>
+#include <boost/function.hpp>
 #include <gtest/gtest.h>
 
 #include "kudu/client/client.h"
 #include "kudu/client/client-internal.h"
 #include "kudu/client/error_collector.h"
+#include "kudu/client/schema.h"
+#include "kudu/client/value.h"
 #include "kudu/gutil/ref_counted.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/status.h"
 #include "kudu/util/test_macros.h"
 
 using std::string;
@@ -217,4 +223,3 @@ TEST(ClientUnitTest, TestErrorCollector) {
 
 } // namespace client
 } // namespace kudu
-

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/client.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/client.cc b/src/kudu/client/client.cc
index 3006f2f..f44cbb4 100644
--- a/src/kudu/client/client.cc
+++ b/src/kudu/client/client.cc
@@ -20,18 +20,19 @@
 #include <algorithm>
 #include <cstdlib>
 #include <memory>
+#include <ostream>
 #include <set>
 #include <string>
-#include <unordered_map>
 #include <utility>
 #include <vector>
 
 #include <boost/bind.hpp>
-#include <boost/optional.hpp>
+#include <boost/optional/optional.hpp>
+#include <glog/logging.h>
 
-#include "kudu/client/batcher.h"
 #include "kudu/client/callbacks.h"
 #include "kudu/client/client-internal.h"
+#include "kudu/client/client.pb.h"
 #include "kudu/client/client_builder-internal.h"
 #include "kudu/client/error-internal.h"
 #include "kudu/client/error_collector.h"
@@ -39,22 +40,36 @@
 #include "kudu/client/partitioner-internal.h"
 #include "kudu/client/replica-internal.h"
 #include "kudu/client/row_result.h"
+#include "kudu/client/scan_batch.h"
+#include "kudu/client/scan_configuration.h"
 #include "kudu/client/scan_predicate-internal.h"
 #include "kudu/client/scan_token-internal.h"
 #include "kudu/client/scanner-internal.h"
-#include "kudu/client/schema-internal.h"
 #include "kudu/client/session-internal.h"
 #include "kudu/client/table-internal.h"
 #include "kudu/client/table_alterer-internal.h"
 #include "kudu/client/table_creator-internal.h"
 #include "kudu/client/tablet-internal.h"
 #include "kudu/client/tablet_server-internal.h"
+#include "kudu/client/value.h"
 #include "kudu/client/write_op.h"
 #include "kudu/common/common.pb.h"
+#include "kudu/common/partial_row.h"
 #include "kudu/common/partition.h"
+#include "kudu/common/partition_pruner.h"
 #include "kudu/common/row_operations.h"
+#include "kudu/common/scan_spec.h"
+#include "kudu/common/schema.h"
 #include "kudu/common/wire_protocol.h"
-#include "kudu/gutil/map-util.h"
+#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/consensus/metadata.pb.h"
+#include "kudu/gutil/basictypes.h"
+#include "kudu/gutil/bind.h"
+#include "kudu/gutil/bind_helpers.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/stl_util.h"
 #include "kudu/gutil/strings/numbers.h"
 #include "kudu/gutil/strings/substitute.h"
@@ -62,13 +77,21 @@
 #include "kudu/master/master.proxy.h"
 #include "kudu/rpc/messenger.h"
 #include "kudu/rpc/request_tracker.h"
+#include "kudu/rpc/rpc_controller.h"
 #include "kudu/rpc/sasl_common.h"
 #include "kudu/security/cert.h"
 #include "kudu/security/openssl_util.h"
 #include "kudu/security/tls_context.h"
+#include "kudu/security/token.pb.h"
+#include "kudu/tserver/tserver.pb.h"
+#include "kudu/tserver/tserver_service.proxy.h"
+#include "kudu/util/debug-util.h"
 #include "kudu/util/init.h"
 #include "kudu/util/logging.h"
+#include "kudu/util/logging_callback.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/net/dns_resolver.h"
+#include "kudu/util/net/net_util.h"
 #include "kudu/util/oid_generator.h"
 #include "kudu/util/scoped_cleanup.h"
 #include "kudu/util/version_info.h"
@@ -119,11 +142,13 @@ MAKE_ENUM_LIMITS(kudu::client::KuduScanner::OrderMode,
                  kudu::client::KuduScanner::UNORDERED,
                  kudu::client::KuduScanner::ORDERED);
 
+struct tm;
+
 namespace kudu {
 namespace client {
 
-using internal::Batcher;
-using internal::ErrorCollector;
+class ResourceMetrics;
+
 using internal::MetaCache;
 using sp::shared_ptr;
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/client.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/client.h b/src/kudu/client/client.h
index 130b97d..29456e0 100644
--- a/src/kudu/client/client.h
+++ b/src/kudu/client/client.h
@@ -26,15 +26,15 @@
 #define KUDU_CLIENT_CLIENT_H
 
 #include <stdint.h>
+
+#include <cstddef>
 #include <string>
 #include <vector>
 
-#include "kudu/client/resource_metrics.h"
 #include "kudu/client/row_result.h"
-#include "kudu/client/scan_batch.h"
 #include "kudu/client/scan_predicate.h"
 #include "kudu/client/schema.h"
-#include "kudu/client/shared_ptr.h"
+#include "kudu/client/shared_ptr.h" // IWYU pragma: keep
 #ifdef KUDU_HEADERS_NO_STUBS
 #include <gtest/gtest_prod.h>
 #include "kudu/gutil/macros.h"
@@ -42,15 +42,15 @@
 #else
 #include "kudu/client/stubs.h"
 #endif
-#include "kudu/client/write_op.h"
 #include "kudu/util/kudu_export.h"
-#include "kudu/util/monotime.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
 
 class ClientStressTest_TestUniqueClientIds_Test;
-class LinkedListTester;
+class KuduPartialRow;
+class MonoDelta;
 class PartitionSchema;
 class SecurityUnknownTskTest;
 
@@ -60,9 +60,12 @@ class LeaderMasterProxy;
 
 namespace client {
 
+class KuduClient;
+class KuduDelete;
+class KuduInsert;
 class KuduLoggingCallback;
 class KuduPartitioner;
-class KuduScanToken;
+class KuduScanBatch;
 class KuduSession;
 class KuduStatusCallback;
 class KuduTable;
@@ -70,8 +73,11 @@ class KuduTableAlterer;
 class KuduTableCreator;
 class KuduTablet;
 class KuduTabletServer;
+class KuduUpdate;
+class KuduUpsert;
 class KuduValue;
 class KuduWriteOperation;
+class ResourceMetrics;
 
 namespace internal {
 class Batcher;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/client_builder-internal.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/client_builder-internal.h b/src/kudu/client/client_builder-internal.h
index 070c244..9b9c02b 100644
--- a/src/kudu/client/client_builder-internal.h
+++ b/src/kudu/client/client_builder-internal.h
@@ -21,6 +21,8 @@
 #include <vector>
 
 #include "kudu/client/client.h"
+#include "kudu/gutil/macros.h"
+#include "kudu/util/monotime.h"
 
 namespace kudu {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/error-internal.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/error-internal.cc b/src/kudu/client/error-internal.cc
index 75f30dd..74abc6b 100644
--- a/src/kudu/client/error-internal.cc
+++ b/src/kudu/client/error-internal.cc
@@ -17,10 +17,15 @@
 
 #include "kudu/client/error-internal.h"
 
+#include <type_traits>
 #include <utility>
 
-namespace kudu {
+#include "kudu/client/write_op.h"   // IWYU pragma: keep
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/move.h"
+#include "kudu/util/status.h"
 
+namespace kudu {
 namespace client {
 
 KuduError::Data::Data(gscoped_ptr<KuduWriteOperation> failed_op,

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/error-internal.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/error-internal.h b/src/kudu/client/error-internal.h
index 71715f6..11f3720 100644
--- a/src/kudu/client/error-internal.h
+++ b/src/kudu/client/error-internal.h
@@ -19,11 +19,15 @@
 
 #include "kudu/client/client.h"
 #include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/macros.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 
 namespace client {
 
+class KuduWriteOperation;
+
 class KuduError::Data {
  public:
   Data(gscoped_ptr<KuduWriteOperation> failed_op, Status error);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/error_collector.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/error_collector.cc b/src/kudu/client/error_collector.cc
index 932a0d4..3455cbb 100644
--- a/src/kudu/client/error_collector.cc
+++ b/src/kudu/client/error_collector.cc
@@ -23,6 +23,8 @@
 
 #include "kudu/client/client.h"
 #include "kudu/client/error-internal.h"
+#include "kudu/client/write_op.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/status.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/error_collector.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/error_collector.h b/src/kudu/client/error_collector.h
index f6f474f..bb3bf27 100644
--- a/src/kudu/client/error_collector.h
+++ b/src/kudu/client/error_collector.h
@@ -16,20 +16,22 @@
 // under the License.
 #pragma once
 
+#include <cstddef>
 #include <memory>
 #include <vector>
 
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/util/locks.h"
-#include "kudu/util/status.h"
 
 namespace kudu {
+
+class Status;
+
 namespace client {
 
 class ClientUnitTest_TestErrorCollector_Test;
 class KuduError;
-class KuduInsert;
 
 namespace internal {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/master_rpc.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/master_rpc.cc b/src/kudu/client/master_rpc.cc
index 93fde48..be597ae 100644
--- a/src/kudu/client/master_rpc.cc
+++ b/src/kudu/client/master_rpc.cc
@@ -21,19 +21,24 @@
 
 #include <algorithm>
 #include <mutex>
+#include <ostream>
 
 #include <boost/bind.hpp>
+#include <glog/logging.h>
 
 #include "kudu/common/wire_protocol.h"
-#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/consensus/metadata.pb.h"
+#include "kudu/gutil/basictypes.h"
 #include "kudu/gutil/bind.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/strings/join.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/master/master.proxy.h"
 #include "kudu/rpc/rpc_controller.h"
-#include "kudu/util/net/net_util.h"
+#include "kudu/rpc/rpc_header.pb.h"
 #include "kudu/util/scoped_cleanup.h"
-
+#include "kudu/util/status.h"
+#include "kudu/util/status_callback.h"
 
 using std::shared_ptr;
 using std::string;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/master_rpc.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/master_rpc.h b/src/kudu/client/master_rpc.h
index b57d137..39cec99 100644
--- a/src/kudu/client/master_rpc.h
+++ b/src/kudu/client/master_rpc.h
@@ -19,23 +19,26 @@
 #pragma once
 
 #include <functional>
+#include <memory>
 #include <vector>
 #include <string>
 
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/master/master.pb.h"
 #include "kudu/rpc/rpc.h"
 #include "kudu/rpc/rpc_controller.h"
 #include "kudu/util/locks.h"
-#include "kudu/util/net/net_util.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/net/sockaddr.h"
 
 namespace kudu {
 
-namespace master {
-class ConnectToMasterResponsePB;
-} // namespace master
-class HostPort;
+class Status;
+
+namespace rpc {
+class Messenger;
+}
 
 namespace client {
 namespace internal {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/meta_cache.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/meta_cache.cc b/src/kudu/client/meta_cache.cc
index f54e2c1..c77b335 100644
--- a/src/kudu/client/meta_cache.cc
+++ b/src/kudu/client/meta_cache.cc
@@ -18,25 +18,34 @@
 #include "kudu/client/meta_cache.h"
 
 #include <algorithm>
-#include <map>
+#include <cstddef>
 #include <mutex>
+#include <ostream>
 #include <set>
 #include <string>
 #include <vector>
+#include <utility>
 
-#include <boost/bind.hpp>
+#include <boost/bind.hpp> // IWYU pragma: keep
 #include <glog/logging.h>
+#include <google/protobuf/repeated_field.h> // IWYU pragma: keep
 
-#include "kudu/client/client.h"
 #include "kudu/client/client-internal.h"
-#include "kudu/common/schema.h"
+#include "kudu/client/client.h"
+#include "kudu/client/schema.h"
+#include "kudu/common/common.pb.h"
 #include "kudu/common/wire_protocol.h"
+#include "kudu/gutil/basictypes.h"
+#include "kudu/gutil/bind.h"
+#include "kudu/gutil/bind_helpers.h"
+#include "kudu/gutil/callback.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/map-util.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/master/master.pb.h"
 #include "kudu/master/master.proxy.h"
-#include "kudu/rpc/messenger.h"
 #include "kudu/rpc/rpc.h"
 #include "kudu/rpc/rpc_controller.h"
 #include "kudu/rpc/rpc_header.pb.h"
@@ -44,6 +53,7 @@
 #include "kudu/util/logging.h"
 #include "kudu/util/net/dns_resolver.h"
 #include "kudu/util/net/net_util.h"
+#include "kudu/util/net/sockaddr.h"
 #include "kudu/util/pb_util.h"
 
 using std::map;
@@ -55,6 +65,10 @@ using strings::Substitute;
 
 namespace kudu {
 
+namespace rpc {
+class Messenger;
+}
+
 using consensus::RaftPeerPB;
 using master::GetTableLocationsRequestPB;
 using master::GetTableLocationsResponsePB;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/meta_cache.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/meta_cache.h b/src/kudu/client/meta_cache.h
index 2e68f6c..ddb956e 100644
--- a/src/kudu/client/meta_cache.h
+++ b/src/kudu/client/meta_cache.h
@@ -19,37 +19,38 @@
 #ifndef KUDU_CLIENT_META_CACHE_H
 #define KUDU_CLIENT_META_CACHE_H
 
-#include <boost/function.hpp>
+#include <algorithm>
 #include <map>
+#include <memory>
 #include <set>
 #include <string>
-#include <memory>
 #include <unordered_map>
 #include <vector>
 
+#include <glog/logging.h>
+#include <gtest/gtest_prod.h>
+
 #include "kudu/common/partition.h"
 #include "kudu/consensus/metadata.pb.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/rpc/rpc.h"
-#include "kudu/util/async_util.h"
 #include "kudu/util/locks.h"
-#include "kudu/util/memory/arena.h"
 #include "kudu/util/monotime.h"
 #include "kudu/util/net/net_util.h"
 #include "kudu/util/semaphore.h"
 #include "kudu/util/status.h"
+#include "kudu/util/status_callback.h"
 
 namespace kudu {
 
-class KuduPartialRow;
+class Sockaddr;
 
 namespace tserver {
 class TabletServerServiceProxy;
 } // namespace tserver
 
 namespace master {
-class MasterServiceProxy;
 class TabletLocationsPB_ReplicaPB;
 class TSInfoPB;
 } // namespace master

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/partitioner-internal.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/partitioner-internal.cc b/src/kudu/client/partitioner-internal.cc
index c3b80c8..0f4458f 100644
--- a/src/kudu/client/partitioner-internal.cc
+++ b/src/kudu/client/partitioner-internal.cc
@@ -17,7 +17,6 @@
 
 #include "kudu/client/partitioner-internal.h"
 
-#include <glog/logging.h>
 #include <map>
 #include <memory>
 #include <string>
@@ -26,8 +25,10 @@
 #include "kudu/client/client.h"
 #include "kudu/client/meta_cache.h"
 #include "kudu/client/table-internal.h"
+#include "kudu/common/partition.h"
 #include "kudu/gutil/map-util.h"
-#include "kudu/gutil/strings/util.h"
+#include "kudu/gutil/ref_counted.h"
+#include "kudu/util/async_util.h"
 #include "kudu/util/status.h"
 
 using std::string;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/partitioner-internal.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/partitioner-internal.h b/src/kudu/client/partitioner-internal.h
index 13f7291..861a7b9 100644
--- a/src/kudu/client/partitioner-internal.h
+++ b/src/kudu/client/partitioner-internal.h
@@ -16,14 +16,19 @@
 // under the License.
 #pragma once
 
-#include "kudu/client/client.h"
-#include "kudu/common/partition.h"
-#include "kudu/util/status.h"
-
+#include <algorithm>
 #include <map>
 #include <string>
 
+#include "kudu/client/client.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/status.h"
+
 namespace kudu {
+
+class KuduPartialRow;
+
 namespace client {
 
 class KuduPartitionerBuilder::Data {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/predicate-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/predicate-test.cc b/src/kudu/client/predicate-test.cc
index da99faa..29e717c 100644
--- a/src/kudu/client/predicate-test.cc
+++ b/src/kudu/client/predicate-test.cc
@@ -16,20 +16,29 @@
 // under the License.
 
 #include <algorithm>
-#include <cmath>
+#include <cstdint>
 #include <limits>
 #include <memory>
 #include <string>
 #include <vector>
 
+#include <glog/logging.h>
 #include <gtest/gtest.h>
 
 #include "kudu/client/client.h"
-#include "kudu/gutil/stringprintf.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/client/scan_batch.h"
+#include "kudu/client/scan_predicate.h"
+#include "kudu/client/schema.h"
+#include "kudu/client/value.h"
+#include "kudu/client/write_op.h"
+#include "kudu/common/partial_row.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/strings/escaping.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/integration-tests/cluster_verifier.h"
 #include "kudu/integration-tests/internal_mini_cluster.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 using std::count_if;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/replica-internal.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/replica-internal.cc b/src/kudu/client/replica-internal.cc
index 0fac695..23079fd 100644
--- a/src/kudu/client/replica-internal.cc
+++ b/src/kudu/client/replica-internal.cc
@@ -17,6 +17,7 @@
 
 #include "kudu/client/replica-internal.h"
 
+#include <algorithm>
 #include <memory>
 
 #include "kudu/client/client.h"
@@ -31,8 +32,5 @@ KuduReplica::Data::Data(bool is_leader, unique_ptr<KuduTabletServer> ts)
       ts_(std::move(ts)) {
 }
 
-KuduReplica::Data::~Data() {
-}
-
 } // namespace client
 } // namespace kudu

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/replica-internal.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/replica-internal.h b/src/kudu/client/replica-internal.h
index 9f0674d..5603dea 100644
--- a/src/kudu/client/replica-internal.h
+++ b/src/kudu/client/replica-internal.h
@@ -21,20 +21,18 @@
 #include "kudu/client/client.h"
 #include "kudu/gutil/macros.h"
 
-
 namespace kudu {
 namespace client {
 
-class KuduTabletServer;
-
 class KuduReplica::Data {
  public:
   Data(bool is_leader, std::unique_ptr<KuduTabletServer> ts);
-  ~Data();
+  ~Data() = default;
 
   const bool is_leader_;
   const std::unique_ptr<KuduTabletServer> ts_;
 
+ private:
   DISALLOW_COPY_AND_ASSIGN(Data);
 };
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/resource_metrics.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/resource_metrics.cc b/src/kudu/client/resource_metrics.cc
index f8ccc2a..c340fe6 100644
--- a/src/kudu/client/resource_metrics.cc
+++ b/src/kudu/client/resource_metrics.cc
@@ -20,13 +20,14 @@
 
 #include <map>
 #include <mutex>
-#include <stdint.h>
 #include <string>
 
 #include "kudu/gutil/map-util.h"
 
 namespace kudu {
 
+class simple_spinlock;
+
 namespace client {
 
 ResourceMetrics::ResourceMetrics() :

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/resource_metrics.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/resource_metrics.h b/src/kudu/client/resource_metrics.h
index feab053..4f31ac4 100644
--- a/src/kudu/client/resource_metrics.h
+++ b/src/kudu/client/resource_metrics.h
@@ -17,8 +17,11 @@
 #ifndef KUDU_CLIENT_RESOURCE_METRICS_H
 #define KUDU_CLIENT_RESOURCE_METRICS_H
 
-#include <map>
+// NOTE: using stdint.h instead of cstdint because this file is supposed
+//       to be processed by a compiler lacking C++11 support.
 #include <stdint.h>
+
+#include <map>
 #include <string>
 
 #include "kudu/util/kudu_export.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/samples/sample.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/samples/sample.cc b/src/kudu/client/samples/sample.cc
index b021fce..9b5d65e 100644
--- a/src/kudu/client/samples/sample.cc
+++ b/src/kudu/client/samples/sample.cc
@@ -24,7 +24,9 @@
 #include "kudu/client/row_result.h"
 #include "kudu/client/stubs.h"
 #include "kudu/client/value.h"
+#include "kudu/client/write_op.h"
 #include "kudu/common/partial_row.h"
+#include "kudu/util/monotime.h"
 
 using kudu::client::KuduClient;
 using kudu::client::KuduClientBuilder;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/scan_batch.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/scan_batch.cc b/src/kudu/client/scan_batch.cc
index 4f048b3..cacf76b 100644
--- a/src/kudu/client/scan_batch.cc
+++ b/src/kudu/client/scan_batch.cc
@@ -15,16 +15,22 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include "kudu/client/row_result.h"
 #include "kudu/client/scan_batch.h"
-#include "kudu/client/scanner-internal.h"
-#include "kudu/client/schema.h"
 
+#include <cstring>
 #include <string>
 
+#include <glog/logging.h>
+
+#include "kudu/client/row_result.h"
+#include "kudu/client/scanner-internal.h"
+#include "kudu/common/common.pb.h"
 #include "kudu/common/schema.h"
+#include "kudu/common/types.h"
+#include "kudu/gutil/strings/stringpiece.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/bitmap.h"
+#include "kudu/util/logging.h"
 
 using std::string;
 using strings::Substitute;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/scan_batch.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/scan_batch.h b/src/kudu/client/scan_batch.h
index 987bbf2..15b458e 100644
--- a/src/kudu/client/scan_batch.h
+++ b/src/kudu/client/scan_batch.h
@@ -17,6 +17,12 @@
 #ifndef KUDU_CLIENT_SCAN_BATCH_H
 #define KUDU_CLIENT_SCAN_BATCH_H
 
+// NOTE: using stdint.h instead of cstdint because this file is supposed
+//       to be processed by a compiler lacking C++11 support.
+#include <stdint.h>
+
+#include <cstddef>
+#include <iterator>
 #include <string>
 
 #ifdef KUDU_HEADERS_NO_STUBS
@@ -28,6 +34,7 @@
 
 #include "kudu/util/kudu_export.h"
 #include "kudu/util/slice.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 class Schema;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/scan_configuration.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/scan_configuration.cc b/src/kudu/client/scan_configuration.cc
index 26fb605..f320ab2 100644
--- a/src/kudu/client/scan_configuration.cc
+++ b/src/kudu/client/scan_configuration.cc
@@ -17,13 +17,20 @@
 
 #include "kudu/client/scan_configuration.h"
 
+#include <algorithm>
 #include <memory>
 #include <string>
 #include <vector>
 
 #include "kudu/client/client.h"
-#include "kudu/client/scan_predicate.h"
 #include "kudu/client/scan_predicate-internal.h"
+#include "kudu/client/scan_predicate.h"
+#include "kudu/common/column_predicate.h"
+#include "kudu/common/encoded_key.h"
+#include "kudu/common/partial_row.h"
+#include "kudu/common/schema.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/strings/substitute.h"
 
 using std::unique_ptr;
 using std::string;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/scan_configuration.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/scan_configuration.h b/src/kudu/client/scan_configuration.h
index cae083f..168c87f 100644
--- a/src/kudu/client/scan_configuration.h
+++ b/src/kudu/client/scan_configuration.h
@@ -17,19 +17,33 @@
 
 #pragma once
 
-#include <memory>
+#include <cstdint>
 #include <string>
 #include <vector>
 
+#include <glog/logging.h>
+
 #include "kudu/client/client.h"
-#include "kudu/common/column_predicate.h"
+#include "kudu/client/schema.h"
 #include "kudu/common/scan_spec.h"
+#include "kudu/gutil/integral_types.h"
+#include "kudu/gutil/port.h"
 #include "kudu/util/auto_release_pool.h"
 #include "kudu/util/memory/arena.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
+
+class ColumnPredicate;
+class KuduPartialRow;
+class Schema;
+
 namespace client {
 
+class KuduPredicate;
+
 // A configuration object which holds Kudu scan options.
 //
 // Unless otherwise specified, the method documentation matches the

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/scan_predicate.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/scan_predicate.cc b/src/kudu/client/scan_predicate.cc
index 06ba70b..c58490c 100644
--- a/src/kudu/client/scan_predicate.cc
+++ b/src/kudu/client/scan_predicate.cc
@@ -17,24 +17,31 @@
 
 #include "kudu/client/scan_predicate.h"
 
-#include <boost/optional.hpp>
 #include <utility>
 #include <vector>
 
+#include <boost/optional/optional.hpp>
+
 #include "kudu/client/scan_predicate-internal.h"
 #include "kudu/client/value-internal.h"
 #include "kudu/client/value.h"
+#include "kudu/common/column_predicate.h"
 #include "kudu/common/scan_spec.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/types.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/util/status.h"
 
+using boost::optional;
 using std::move;
 using std::vector;
-using boost::optional;
+using strings::Substitute;
 
 namespace kudu {
 
-using strings::Substitute;
+class Arena;
 
 namespace client {
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/scan_predicate.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/scan_predicate.h b/src/kudu/client/scan_predicate.h
index 16fd118..70be74c 100644
--- a/src/kudu/client/scan_predicate.h
+++ b/src/kudu/client/scan_predicate.h
@@ -19,12 +19,10 @@
 
 #ifdef KUDU_HEADERS_NO_STUBS
 #include "kudu/gutil/macros.h"
-#include "kudu/gutil/port.h"
 #else
 #include "kudu/client/stubs.h"
 #endif
 
-#include "kudu/client/schema.h"
 #include "kudu/util/kudu_export.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/scan_token-internal.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/scan_token-internal.cc b/src/kudu/client/scan_token-internal.cc
index 8a157b0..7990e37 100644
--- a/src/kudu/client/scan_token-internal.cc
+++ b/src/kudu/client/scan_token-internal.cc
@@ -17,22 +17,42 @@
 
 #include "kudu/client/scan_token-internal.h"
 
-#include <boost/optional.hpp>
-#include <vector>
-#include <string>
+#include <cstdint>
 #include <memory>
+#include <ostream>
+#include <string>
+#include <utility>
+#include <vector>
+
+#include <boost/optional/optional.hpp>
+#include <glog/logging.h>
 
 #include "kudu/client/client-internal.h"
 #include "kudu/client/client.h"
 #include "kudu/client/meta_cache.h"
 #include "kudu/client/replica-internal.h"
 #include "kudu/client/scanner-internal.h"
+#include "kudu/client/schema.h"
+#include "kudu/client/shared_ptr.h"
 #include "kudu/client/tablet-internal.h"
 #include "kudu/client/tablet_server-internal.h"
+#include "kudu/common/column_predicate.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/encoded_key.h"
+#include "kudu/common/partition.h"
+#include "kudu/common/partition_pruner.h"
+#include "kudu/common/scan_spec.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/types.h"
 #include "kudu/common/wire_protocol.h"
+#include "kudu/consensus/metadata.pb.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/util/pb_util.h"
+#include "kudu/util/async_util.h"
+#include "kudu/util/monotime.h"
+#include "kudu/util/net/net_util.h"
+#include "kudu/util/slice.h"
 #include "kudu/util/status.h"
 
 using std::string;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/scan_token-internal.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/scan_token-internal.h b/src/kudu/client/scan_token-internal.h
index dd26517..84b7778 100644
--- a/src/kudu/client/scan_token-internal.h
+++ b/src/kudu/client/scan_token-internal.h
@@ -24,6 +24,7 @@
 #include "kudu/client/client.h"
 #include "kudu/client/client.pb.h"
 #include "kudu/client/scan_configuration.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 namespace client {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/scan_token-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/scan_token-test.cc b/src/kudu/client/scan_token-test.cc
index 6599daf..9c879e2 100644
--- a/src/kudu/client/scan_token-test.cc
+++ b/src/kudu/client/scan_token-test.cc
@@ -15,19 +15,37 @@
 // specific language governing permissions and limitations
 // under the License.
 
+#include <algorithm>
 #include <atomic>
+#include <cstdint>
 #include <memory>
 #include <string>
 #include <thread>
 #include <unordered_set>
 #include <vector>
 
+#include <glog/logging.h>
+#include <gtest/gtest.h>
+
 #include "kudu/client/client.h"
 #include "kudu/client/client.pb.h"
+#include "kudu/client/scan_batch.h"
+#include "kudu/client/scan_predicate.h"
+#include "kudu/client/schema.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/client/value.h"
+#include "kudu/client/write_op.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/partial_row.h"
+#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/stl_util.h"
 #include "kudu/integration-tests/internal_mini_cluster.h"
 #include "kudu/tserver/mini_tablet_server.h"
 #include "kudu/tserver/tablet_server.h"
+#include "kudu/util/net/sockaddr.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/scanner-internal.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/scanner-internal.cc b/src/kudu/client/scanner-internal.cc
index 8dfb9f0..aec1cfc 100644
--- a/src/kudu/client/scanner-internal.cc
+++ b/src/kudu/client/scanner-internal.cc
@@ -18,20 +18,35 @@
 #include "kudu/client/scanner-internal.h"
 
 #include <algorithm>
-#include <cmath>
+#include <cstdint>
+#include <ostream>
 #include <string>
+#include <unordered_map>
+#include <utility>
 #include <vector>
 
+#include <google/protobuf/descriptor.h>
+#include <google/protobuf/message.h>
+
 #include "kudu/client/client-internal.h"
 #include "kudu/client/meta_cache.h"
-#include "kudu/client/row_result.h"
-#include "kudu/client/table-internal.h"
 #include "kudu/common/common.pb.h"
+#include "kudu/common/encoded_key.h"
+#include "kudu/common/partition.h"
+#include "kudu/common/scan_spec.h"
+#include "kudu/common/schema.h"
 #include "kudu/common/wire_protocol.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/rpc/messenger.h"
+#include "kudu/rpc/connection.h"
 #include "kudu/rpc/rpc_controller.h"
+#include "kudu/rpc/rpc_header.pb.h"
+#include "kudu/tserver/tserver_service.proxy.h"
+#include "kudu/util/async_util.h"
+#include "kudu/util/bitmap.h"
 #include "kudu/util/hexdump.h"
+#include "kudu/util/logging.h"
+#include "kudu/util/monotime.h"
 
 using google::protobuf::FieldDescriptor;
 using google::protobuf::Reflection;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/scanner-internal.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/scanner-internal.h b/src/kudu/client/scanner-internal.h
index 1100408..9117fc0 100644
--- a/src/kudu/client/scanner-internal.h
+++ b/src/kudu/client/scanner-internal.h
@@ -17,24 +17,51 @@
 #ifndef KUDU_CLIENT_SCANNER_INTERNAL_H
 #define KUDU_CLIENT_SCANNER_INTERNAL_H
 
+#include <cstddef>
+#include <cstdint>
+#include <memory>
+#include <ostream>
 #include <set>
 #include <string>
 #include <vector>
 
+#include <glog/logging.h>
+
 #include "kudu/client/client.h"
 #include "kudu/client/resource_metrics.h"
 #include "kudu/client/row_result.h"
+#include "kudu/client/scan_batch.h"
 #include "kudu/client/scan_configuration.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/client/schema.h"
 #include "kudu/common/partition_pruner.h"
 #include "kudu/common/scan_spec.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/wire_protocol.pb.h"
+#include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/macros.h"
-#include "kudu/tserver/tserver_service.proxy.h"
-#include "kudu/util/auto_release_pool.h"
+#include "kudu/gutil/ref_counted.h"
+#include "kudu/gutil/strings/substitute.h"
+#include "kudu/rpc/rpc_controller.h"
+#include "kudu/tserver/tserver.pb.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 
+class MonoTime;
+
+namespace tserver {
+class TabletServerServiceProxy;
+}
+
 namespace client {
 
+namespace internal {
+class RemoteTablet;
+class RemoteTabletServer;
+} // namespace internal
+
 // The result of KuduScanner::Data::AnalyzeResponse.
 //
 // This provides a more specific enum for handling the possible error conditions in a Scan

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/schema-internal.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/schema-internal.h b/src/kudu/client/schema-internal.h
index 873519c..c5a9e44 100644
--- a/src/kudu/client/schema-internal.h
+++ b/src/kudu/client/schema-internal.h
@@ -20,6 +20,7 @@
 #include <string>
 
 #include "kudu/client/schema.h"
+#include "kudu/client/value.h"
 #include "kudu/common/common.pb.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/schema.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/schema.cc b/src/kudu/client/schema.cc
index 9ffb1a4..a694c72 100644
--- a/src/kudu/client/schema.cc
+++ b/src/kudu/client/schema.cc
@@ -17,16 +17,29 @@
 
 #include "kudu/client/schema.h"
 
-#include <boost/optional.hpp>
-#include <glog/logging.h>
+#include <algorithm>
+#include <cstdint>
+#include <memory>
+#include <ostream>
 #include <unordered_map>
 
+#include <boost/optional/optional.hpp>
+#include <glog/logging.h>
+
 #include "kudu/client/schema-internal.h"
 #include "kudu/client/value-internal.h"
+#include "kudu/client/value.h"
+#include "kudu/common/common.pb.h"
 #include "kudu/common/partial_row.h"
 #include "kudu/common/schema.h"
+#include "kudu/common/types.h"
+#include "kudu/gutil/casts.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/map-util.h"
 #include "kudu/gutil/strings/substitute.h"
+#include "kudu/util/compression/compression.pb.h"
+#include "kudu/util/slice.h"
 
 MAKE_ENUM_LIMITS(kudu::client::KuduColumnStorageAttributes::EncodingType,
                  kudu::client::KuduColumnStorageAttributes::AUTO_ENCODING,

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/schema.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/schema.h b/src/kudu/client/schema.h
index d9c1ee3..5358e15 100644
--- a/src/kudu/client/schema.h
+++ b/src/kudu/client/schema.h
@@ -18,11 +18,22 @@
 #ifndef KUDU_CLIENT_SCHEMA_H
 #define KUDU_CLIENT_SCHEMA_H
 
+// NOTE: using stdint.h instead of cstdint because this file is supposed
+//       to be processed by a compiler lacking C++11 support.
+#include <stdint.h>
+
+#include <cstddef>
 #include <string>
 #include <vector>
 
-#include "kudu/client/value.h"
+#ifdef KUDU_HEADERS_NO_STUBS
+#include "kudu/gutil/port.h"
+#else
+#include "kudu/client/stubs.h"
+#endif
+
 #include "kudu/util/kudu_export.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 
@@ -30,7 +41,7 @@ class ColumnSchema;
 struct ColumnSchemaDelta;
 class KuduPartialRow;
 class Schema;
-class TestWorkload;
+class Slice;
 
 namespace tools {
 class RemoteKsckMaster;
@@ -38,7 +49,6 @@ class ReplicaDumper;
 }
 
 namespace client {
-class ClientTest;
 
 namespace internal {
 class GetTableSchemaRpc;
@@ -47,10 +57,8 @@ class MetaCacheEntry;
 class WriteRpc;
 } // namespace internal
 
-class KuduClient;
 class KuduSchema;
-class KuduSchemaBuilder;
-class KuduWriteOperation;
+class KuduValue;
 
 /// @brief Representation of column storage attributes.
 class KUDU_EXPORT KuduColumnStorageAttributes {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/session-internal.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/session-internal.cc b/src/kudu/client/session-internal.cc
index 6ba6640..fe22655 100644
--- a/src/kudu/client/session-internal.cc
+++ b/src/kudu/client/session-internal.cc
@@ -17,13 +17,21 @@
 
 #include "kudu/client/session-internal.h"
 
+#include <algorithm>
 #include <memory>
 #include <mutex>
 
+#include <boost/bind.hpp> // IWYU pragma: keep
+#include <boost/function.hpp>
+#include <glog/logging.h>
+
 #include "kudu/client/batcher.h"
 #include "kudu/client/callbacks.h"
 #include "kudu/client/error_collector.h"
-#include "kudu/client/shared_ptr.h"
+#include "kudu/client/shared_ptr.h" // IWYU pragma: keep
+#include "kudu/client/write_op.h"
+#include "kudu/common/partial_row.h"
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/rpc/messenger.h"
 #include "kudu/util/logging.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/session-internal.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/session-internal.h b/src/kudu/client/session-internal.h
index 787eb95..c5a4669 100644
--- a/src/kudu/client/session-internal.h
+++ b/src/kudu/client/session-internal.h
@@ -17,12 +17,22 @@
 #ifndef KUDU_CLIENT_SESSION_INTERNAL_H
 #define KUDU_CLIENT_SESSION_INTERNAL_H
 
+#include <cstddef>
+#include <cstdint>
 #include <memory>
 
+#include <gtest/gtest_prod.h>
+
+#include "kudu/client/batcher.h"
 #include "kudu/client/client.h"
+#include "kudu/client/error_collector.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/util/condition_variable.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/mutex.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 
@@ -32,10 +42,8 @@ class Messenger;
 
 namespace client {
 
-namespace internal {
-class Batcher;
-class ErrorCollector;
-} // internal
+class KuduStatusCallback;
+class KuduWriteOperation;
 
 // This class contains the code to do the heavy-lifting for the
 // kudu::KuduSession-related operations. Its interface does not assume

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/shared_ptr.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/shared_ptr.h b/src/kudu/client/shared_ptr.h
index ea01131..fa759f9 100644
--- a/src/kudu/client/shared_ptr.h
+++ b/src/kudu/client/shared_ptr.h
@@ -39,7 +39,7 @@
 
 #if defined(_LIBCPP_VERSION)
 
-#include <memory>
+#include <memory> // IWYU pragma: export
 
 namespace kudu {
 namespace client {
@@ -52,7 +52,7 @@ namespace sp {
 }
 
 #else
-#include <tr1/memory>
+#include <tr1/memory> // IWYU pragma: export
 
 namespace kudu {
 namespace client {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/table-internal.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/table-internal.cc b/src/kudu/client/table-internal.cc
index ebed838..a4640bd 100644
--- a/src/kudu/client/table-internal.cc
+++ b/src/kudu/client/table-internal.cc
@@ -17,6 +17,7 @@
 
 #include "kudu/client/table-internal.h"
 
+#include <algorithm>
 #include <string>
 
 using std::string;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/table-internal.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/table-internal.h b/src/kudu/client/table-internal.h
index b9d78df..f1d9cfd 100644
--- a/src/kudu/client/table-internal.h
+++ b/src/kudu/client/table-internal.h
@@ -19,9 +19,17 @@
 
 #include <string>
 
-#include "kudu/common/partition.h"
 #include "kudu/client/client.h"
+#include "kudu/client/scan_predicate.h"
 #include "kudu/client/scan_predicate-internal.h"
+#include "kudu/client/schema.h"
+#include "kudu/client/shared_ptr.h"
+#include "kudu/common/partition.h"
+#include "kudu/common/schema.h"
+#include "kudu/gutil/macros.h"
+#include "kudu/gutil/strings/stringpiece.h"
+#include "kudu/util/slice.h"
+#include "kudu/util/status.h"
 
 namespace kudu {
 
@@ -65,6 +73,7 @@ class KuduTable::Data {
   const KuduSchema schema_;
   const PartitionSchema partition_schema_;
 
+ private:
   DISALLOW_COPY_AND_ASSIGN(Data);
 };
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/table_alterer-internal.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/table_alterer-internal.cc b/src/kudu/client/table_alterer-internal.cc
index d5dfdcf..244c3b4 100644
--- a/src/kudu/client/table_alterer-internal.cc
+++ b/src/kudu/client/table_alterer-internal.cc
@@ -17,12 +17,18 @@
 
 #include "kudu/client/table_alterer-internal.h"
 
+#include <algorithm>
+#include <ostream>
 #include <string>
 
-#include "kudu/client/schema.h"
+#include <glog/logging.h>
+
 #include "kudu/client/schema-internal.h"
+#include "kudu/client/schema.h"
 #include "kudu/common/row_operations.h"
+#include "kudu/common/schema.h"
 #include "kudu/common/wire_protocol.h"
+#include "kudu/common/wire_protocol.pb.h"
 #include "kudu/master/master.pb.h"
 
 using std::string;
@@ -31,7 +37,6 @@ namespace kudu {
 namespace client {
 
 using master::AlterTableRequestPB;
-using master::AlterTableRequestPB_AlterColumn;
 
 KuduTableAlterer::Data::Data(KuduClient* client, string name)
     : client_(client),

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/table_alterer-internal.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/table_alterer-internal.h b/src/kudu/client/table_alterer-internal.h
index bf7cdc6..f847ace 100644
--- a/src/kudu/client/table_alterer-internal.h
+++ b/src/kudu/client/table_alterer-internal.h
@@ -17,20 +17,23 @@
 #ifndef KUDU_CLIENT_TABLE_ALTERER_INTERNAL_H
 #define KUDU_CLIENT_TABLE_ALTERER_INTERNAL_H
 
-#include <boost/optional.hpp>
 #include <memory>
 #include <string>
 #include <vector>
 
+#include <boost/optional/optional.hpp>
+
 #include "kudu/client/client.h"
-#include "kudu/common/schema.h"
+#include "kudu/common/partial_row.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/master/master.pb.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
-namespace master {
-class AlterTableRequestPB_AlterColumn;
-} // namespace master
+
+class Schema;
+
 namespace client {
 
 class KuduColumnSpec;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/table_creator-internal.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/table_creator-internal.cc b/src/kudu/client/table_creator-internal.cc
index 118919c..995fb34 100644
--- a/src/kudu/client/table_creator-internal.cc
+++ b/src/kudu/client/table_creator-internal.cc
@@ -17,9 +17,6 @@
 
 #include "kudu/client/table_creator-internal.h"
 
-
-#include "kudu/gutil/stl_util.h"
-
 namespace kudu {
 
 namespace client {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/table_creator-internal.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/table_creator-internal.h b/src/kudu/client/table_creator-internal.h
index 57f46dc..4923051 100644
--- a/src/kudu/client/table_creator-internal.h
+++ b/src/kudu/client/table_creator-internal.h
@@ -17,19 +17,24 @@
 #ifndef KUDU_CLIENT_TABLE_CREATOR_INTERNAL_H
 #define KUDU_CLIENT_TABLE_CREATOR_INTERNAL_H
 
-#include <boost/optional.hpp>
 #include <memory>
 #include <string>
-#include <utility>
 #include <vector>
 
+#include <boost/optional/optional.hpp>
+
 #include "kudu/client/client.h"
 #include "kudu/common/common.pb.h"
+#include "kudu/common/partial_row.h"
+#include "kudu/gutil/macros.h"
+#include "kudu/util/monotime.h"
 
 namespace kudu {
 
 namespace client {
 
+class KuduSchema;
+
 class KuduTableCreator::Data {
  public:
   explicit Data(KuduClient* client);
@@ -60,6 +65,7 @@ class KuduTableCreator::Data {
 
   bool wait_;
 
+ private:
   DISALLOW_COPY_AND_ASSIGN(Data);
 };
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/tablet-internal.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/tablet-internal.h b/src/kudu/client/tablet-internal.h
index 401c725..08a3e77 100644
--- a/src/kudu/client/tablet-internal.h
+++ b/src/kudu/client/tablet-internal.h
@@ -25,8 +25,6 @@
 namespace kudu {
 namespace client {
 
-class KuduReplica;
-
 class KuduTablet::Data {
  public:
   Data(std::string id, std::vector<const KuduReplica*> replicas);

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/tablet_server-internal.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/tablet_server-internal.cc b/src/kudu/client/tablet_server-internal.cc
index 057fd2d..c46392b 100644
--- a/src/kudu/client/tablet_server-internal.cc
+++ b/src/kudu/client/tablet_server-internal.cc
@@ -17,6 +17,7 @@
 
 #include "kudu/client/tablet_server-internal.h"
 
+#include <algorithm>
 #include <string>
 
 #include "kudu/util/net/net_util.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/tablet_server-internal.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/tablet_server-internal.h b/src/kudu/client/tablet_server-internal.h
index 0e57ac4..d0ad3ba 100644
--- a/src/kudu/client/tablet_server-internal.h
+++ b/src/kudu/client/tablet_server-internal.h
@@ -34,6 +34,7 @@ class KuduTabletServer::Data {
   const std::string uuid_;
   const HostPort hp_;
 
+ private:
   DISALLOW_COPY_AND_ASSIGN(Data);
 };
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/value-internal.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/value-internal.h b/src/kudu/client/value-internal.h
index 590a75c..33aeeb8 100644
--- a/src/kudu/client/value-internal.h
+++ b/src/kudu/client/value-internal.h
@@ -19,6 +19,7 @@
 
 #include <string>
 
+#include "kudu/client/value.h"
 #include "kudu/common/types.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/util/slice.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/value.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/value.cc b/src/kudu/client/value.cc
index 3eb2993..ea5bd6f 100644
--- a/src/kudu/client/value.cc
+++ b/src/kudu/client/value.cc
@@ -15,10 +15,19 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include "kudu/client/value.h"
+#include <cstring>
+#include <ostream>
+#include <string>
+
+#include <glog/logging.h>
+
 #include "kudu/client/value-internal.h"
+#include "kudu/client/value.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/types.h"
+#include "kudu/gutil/mathlimits.h"
 #include "kudu/gutil/strings/substitute.h"
-#include <string>
+#include "kudu/util/status.h"
 
 using std::string;
 using strings::Substitute;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/value.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/value.h b/src/kudu/client/value.h
index 2e3fb73..e7c9ebd 100644
--- a/src/kudu/client/value.h
+++ b/src/kudu/client/value.h
@@ -17,9 +17,10 @@
 #ifndef KUDU_CLIENT_VALUE_H
 #define KUDU_CLIENT_VALUE_H
 
+#include <stdint.h>
+
 #ifdef KUDU_HEADERS_NO_STUBS
 #include "kudu/gutil/macros.h"
-#include "kudu/gutil/port.h"
 #else
 #include "kudu/client/stubs.h"
 #endif
@@ -69,6 +70,7 @@ class KUDU_EXPORT KuduValue {
   // Owned.
   Data* data_;
 
+ private:
   DISALLOW_COPY_AND_ASSIGN(KuduValue);
 };
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/write_op.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/write_op.cc b/src/kudu/client/write_op.cc
index 686da98..b159b87 100644
--- a/src/kudu/client/write_op.cc
+++ b/src/kudu/client/write_op.cc
@@ -17,10 +17,21 @@
 
 #include "kudu/client/write_op.h"
 
+#include <ostream>
+
+#include <glog/logging.h>
+
 #include "kudu/client/client.h"
+#include "kudu/client/schema.h"
+#include "kudu/common/common.pb.h"
 #include "kudu/common/encoded_key.h"
 #include "kudu/common/row.h"
+#include "kudu/common/schema.h"
+#include "kudu/common/types.h"
 #include "kudu/common/wire_protocol.pb.h"
+#include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/util/bitmap.h"
+#include "kudu/util/slice.h"
 
 namespace kudu {
 namespace client {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/client/write_op.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/write_op.h b/src/kudu/client/write_op.h
index 734ec31..0d6a9e6 100644
--- a/src/kudu/client/write_op.h
+++ b/src/kudu/client/write_op.h
@@ -17,12 +17,21 @@
 #ifndef KUDU_CLIENT_WRITE_OP_H
 #define KUDU_CLIENT_WRITE_OP_H
 
+#include <stdint.h>
+
 #include <string>
 
-#include "kudu/client/shared_ptr.h"
+#include "kudu/client/shared_ptr.h" // IWYU pragma: keep
 #include "kudu/common/partial_row.h"
 #include "kudu/util/kudu_export.h"
 
+#ifdef KUDU_HEADERS_NO_STUBS
+#include "kudu/gutil/macros.h"
+#include "kudu/gutil/port.h"
+#else
+#include "kudu/client/stubs.h"
+#endif
+
 namespace kudu {
 
 class EncodedKey;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/clock/clock.h
----------------------------------------------------------------------
diff --git a/src/kudu/clock/clock.h b/src/kudu/clock/clock.h
index 20ba6d8..77b0cca 100644
--- a/src/kudu/clock/clock.h
+++ b/src/kudu/clock/clock.h
@@ -18,6 +18,8 @@
 
 #include <string>
 
+#include <glog/logging.h>
+
 #include "kudu/common/common.pb.h"
 #include "kudu/common/timestamp.h"
 #include "kudu/gutil/ref_counted.h"
@@ -25,10 +27,10 @@
 #include "kudu/util/status.h"
 
 namespace kudu {
-class faststring;
+
 class MetricEntity;
-class Slice;
 class Status;
+
 namespace clock {
 
 // An interface for a clock that can be used to assign timestamps to

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/clock/hybrid_clock-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/clock/hybrid_clock-test.cc b/src/kudu/clock/hybrid_clock-test.cc
index baed9d8..dc29c7c 100644
--- a/src/kudu/clock/hybrid_clock-test.cc
+++ b/src/kudu/clock/hybrid_clock-test.cc
@@ -16,17 +16,28 @@
 // under the License.
 
 #include <algorithm>
+#include <cstdint>
+#include <string>
 #include <vector>
 
+#include <gflags/gflags_declare.h>
 #include <glog/logging.h>
 #include <gtest/gtest.h>
 
 #include "kudu/clock/hybrid_clock.h"
 #include "kudu/clock/mock_ntp.h"
+#include "kudu/common/timestamp.h"
+#include "kudu/gutil/map-util.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
+#include "kudu/util/atomic.h"
 #include "kudu/util/monotime.h"
 #include "kudu/util/random.h"
 #include "kudu/util/random_util.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
+#include "kudu/util/thread.h"
 
 DECLARE_string(time_source);
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/clock/hybrid_clock.cc
----------------------------------------------------------------------
diff --git a/src/kudu/clock/hybrid_clock.cc b/src/kudu/clock/hybrid_clock.cc
index 4841814..6ee7129 100644
--- a/src/kudu/clock/hybrid_clock.cc
+++ b/src/kudu/clock/hybrid_clock.cc
@@ -18,25 +18,30 @@
 #include "kudu/clock/hybrid_clock.h"
 
 #include <algorithm>
-#include <boost/algorithm/string/predicate.hpp>
-#include <glog/logging.h>
 #include <mutex>
+#include <ostream>
 #include <string>
 
+#include <boost/algorithm/string/predicate.hpp>
+#include <gflags/gflags.h>
+#include <glog/logging.h>
+
 #include "kudu/clock/mock_ntp.h"
 #include "kudu/clock/system_ntp.h"
-#include "kudu/clock/system_unsync_time.h"
 #include "kudu/gutil/bind.h"
+#include "kudu/gutil/bind_helpers.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/strings/substitute.h"
-#include "kudu/gutil/walltime.h"
 #include "kudu/util/debug/trace_event.h"
-#include "kudu/util/errno.h"
 #include "kudu/util/flag_tags.h"
-#include "kudu/util/locks.h"
-#include "kudu/util/logging.h"
 #include "kudu/util/metrics.h"
+#include "kudu/util/monotime.h"
 #include "kudu/util/status.h"
 
+#ifdef __APPLE__
+#include "kudu/clock/system_unsync_time.h"
+#endif
+
 using kudu::Status;
 using std::string;
 using strings::Substitute;

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/clock/hybrid_clock.h
----------------------------------------------------------------------
diff --git a/src/kudu/clock/hybrid_clock.h b/src/kudu/clock/hybrid_clock.h
index c0516e6..1e0f83f 100644
--- a/src/kudu/clock/hybrid_clock.h
+++ b/src/kudu/clock/hybrid_clock.h
@@ -16,17 +16,26 @@
 // under the License.
 #pragma once
 
+#include <cstdint>
+#include <memory>
 #include <string>
 
-#include "kudu/gutil/ref_counted.h"
 #include "kudu/clock/clock.h"
+#include "kudu/clock/time_service.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/timestamp.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/util/locks.h"
 #include "kudu/util/metrics.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
+
+class MonoDelta;
+class MonoTime;
+
 namespace clock {
-class TimeService;
 
 // The HybridTime clock.
 //

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/clock/logical_clock-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/clock/logical_clock-test.cc b/src/kudu/clock/logical_clock-test.cc
index 5b352a3..78d2b13 100644
--- a/src/kudu/clock/logical_clock-test.cc
+++ b/src/kudu/clock/logical_clock-test.cc
@@ -15,11 +15,17 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include <glog/logging.h>
+#include <string>
+
 #include <gtest/gtest.h>
 
 #include "kudu/clock/logical_clock.h"
+#include "kudu/common/timestamp.h"
+#include "kudu/gutil/map-util.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/util/monotime.h"
+#include "kudu/util/status.h"
+#include "kudu/util/test_macros.h"
 #include "kudu/util/test_util.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/clock/logical_clock.cc
----------------------------------------------------------------------
diff --git a/src/kudu/clock/logical_clock.cc b/src/kudu/clock/logical_clock.cc
index dc6c6ef..30c74aa 100644
--- a/src/kudu/clock/logical_clock.cc
+++ b/src/kudu/clock/logical_clock.cc
@@ -17,11 +17,16 @@
 
 #include "kudu/clock/logical_clock.h"
 
+#include <ostream>
+#include <string>
+
+#include <glog/logging.h>
+
 #include "kudu/gutil/atomicops.h"
 #include "kudu/gutil/bind.h"
+#include "kudu/gutil/bind_helpers.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/metrics.h"
-#include "kudu/util/monotime.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
@@ -65,13 +70,13 @@ Status LogicalClock::Update(const Timestamp& to_update) {
 }
 
 Status LogicalClock::WaitUntilAfter(const Timestamp& then,
-                                    const MonoTime& deadline) {
+                                    const MonoTime& /* deadline */) {
   return Status::ServiceUnavailable(
       "Logical clock does not support WaitUntilAfter()");
 }
 
 Status LogicalClock::WaitUntilAfterLocally(const Timestamp& then,
-                                           const MonoTime& deadline) {
+                                           const MonoTime& /* deadline */) {
   if (IsAfter(then)) return Status::OK();
   return Status::ServiceUnavailable(
       "Logical clock does not support WaitUntilAfterLocally()");

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/clock/logical_clock.h
----------------------------------------------------------------------
diff --git a/src/kudu/clock/logical_clock.h b/src/kudu/clock/logical_clock.h
index 3d91448..8d087a1 100644
--- a/src/kudu/clock/logical_clock.h
+++ b/src/kudu/clock/logical_clock.h
@@ -16,15 +16,22 @@
 // under the License.
 #pragma once
 
+#include <cstdint>
 #include <string>
 
 #include "kudu/clock/clock.h"
+#include "kudu/common/common.pb.h"
+#include "kudu/common/timestamp.h"
+#include "kudu/gutil/atomicops.h"
+#include "kudu/gutil/port.h"
+#include "kudu/gutil/ref_counted.h"
 #include "kudu/util/metrics.h"
 #include "kudu/util/status.h"
 
 namespace kudu {
-class MonoDelta;
+
 class MonoTime;
+
 namespace clock {
 
 // An implementation of Clock that behaves as a plain Lamport Clock.

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/clock/mock_ntp.cc
----------------------------------------------------------------------
diff --git a/src/kudu/clock/mock_ntp.cc b/src/kudu/clock/mock_ntp.cc
index 991fa2b..5d7aa8a 100644
--- a/src/kudu/clock/mock_ntp.cc
+++ b/src/kudu/clock/mock_ntp.cc
@@ -17,7 +17,11 @@
 
 #include "kudu/clock/mock_ntp.h"
 
-#include "kudu/util/locks.h"
+#include <mutex>
+#include <ostream>
+
+#include <glog/logging.h>
+
 #include "kudu/util/status.h"
 
 namespace kudu {

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/clock/mock_ntp.h
----------------------------------------------------------------------
diff --git a/src/kudu/clock/mock_ntp.h b/src/kudu/clock/mock_ntp.h
index 9056efe..0878c5d 100644
--- a/src/kudu/clock/mock_ntp.h
+++ b/src/kudu/clock/mock_ntp.h
@@ -16,6 +16,8 @@
 // under the License.
 #pragma once
 
+#include <cstdint>
+
 #include "kudu/clock/time_service.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/util/locks.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/clock/system_ntp.cc
----------------------------------------------------------------------
diff --git a/src/kudu/clock/system_ntp.cc b/src/kudu/clock/system_ntp.cc
index b687c6a..9cdac05 100644
--- a/src/kudu/clock/system_ntp.cc
+++ b/src/kudu/clock/system_ntp.cc
@@ -17,8 +17,16 @@
 
 #include "kudu/clock/system_ntp.h"
 
+#include <sys/time.h>
 #include <sys/timex.h>
 
+#include <cerrno>
+#include <ostream>
+#include <string>
+
+#include <glog/logging.h>
+
+#include "kudu/gutil/port.h"
 #include "kudu/gutil/strings/substitute.h"
 #include "kudu/util/errno.h"
 #include "kudu/util/logging.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/clock/system_ntp.h
----------------------------------------------------------------------
diff --git a/src/kudu/clock/system_ntp.h b/src/kudu/clock/system_ntp.h
index e62c03e..546b2c2 100644
--- a/src/kudu/clock/system_ntp.h
+++ b/src/kudu/clock/system_ntp.h
@@ -16,6 +16,8 @@
 // under the License.
 #pragma once
 
+#include <cstdint>
+
 #include "kudu/clock/time_service.h"
 #include "kudu/gutil/macros.h"
 #include "kudu/util/status.h"

http://git-wip-us.apache.org/repos/asf/kudu/blob/0f6dcf83/src/kudu/clock/system_unsync_time.cc
----------------------------------------------------------------------
diff --git a/src/kudu/clock/system_unsync_time.cc b/src/kudu/clock/system_unsync_time.cc
index 5c2e39f..453a2b2 100644
--- a/src/kudu/clock/system_unsync_time.cc
+++ b/src/kudu/clock/system_unsync_time.cc
@@ -17,6 +17,10 @@
 
 #include "kudu/clock/system_unsync_time.h"
 
+#include <ostream>
+
+#include <glog/logging.h>
+
 #include "kudu/gutil/walltime.h"
 
 namespace kudu {