Hello Impala Public Jenkins, I'd like you to reexamine a change. Please visit
http://gerrit.cloudera.org:8080/15202 to look at the new patch set (#4). Change subject: IMPALA-9373: Trial run of include-what-you-use ...................................................................... IMPALA-9373: Trial run of include-what-you-use Implemented recommendations from IWYU in a subset of files, mostly in util. Did a few cleanups related to systematic problems that I noticed as a result. I noticed that uid-util.h was pulling in boost UUID headers to a lot of compilation units, so refactored that a little bit, including pulling out the hash functions into unique-id-hash.h and moving some inline functions into client-request-state-map.cc. Systematically replaced the general boost mutex header with the internal pthread-based one. This is equivalent for us, since we assume that boost::mutex is implemented by pthread_mutex_t, e.g. for the implementation of ConditionVariable. Switch include guards to pragma once just as general cleanup. Prefix string with std:: consistently in headers so that they don't depend on "using" declarations pulled in from random headers. Look at includes of C++ stream headers, including iostream and stringstream, and replaced them with iosfwd or removed them if possible. Compile time: Measured a full ASAN build of the impalad binary on an 8 core machine with cccache enabled, but cleared. It used very slightly less CPU, probably because we are still pulling in most of the same system headers. Before: real 9m27.502s user 64m39.775s sys 2m49.002s After: real 9m26.561s user 64m28.948s sys 2m48.252s So for the moment, the only significant wins are on incremental builds, where touching header files should not require as many recompilations. Compile times should start to drop meaningfully once we thin out more unnecessary includes - currently it seems like most compile units end up with large chunks of boost/std code included via transitive header dependencies. Change-Id: I3450e0ffcb8b183e18ac59c8b33b9ecbd3f60e20 --- M be/src/benchmarks/lock-benchmark.cc M be/src/benchmarks/process-wide-locks-benchmark.cc M be/src/catalog/catalog-server.h M be/src/codegen/llvm-codegen.cc M be/src/common/logging.cc M be/src/common/names.h M be/src/common/object-pool.h M be/src/exec/blocking-plan-root-sink.cc M be/src/exec/data-sink.h M be/src/exec/exec-node.cc M be/src/exec/exec-node.h M be/src/exec/hash-table.h M be/src/exec/hbase-table-scanner.h M be/src/exec/hdfs-plugin-text-scanner.h M be/src/exec/hdfs-scan-node.h M be/src/exec/kudu-scanner.h M be/src/exec/parquet/parquet-column-chunk-reader.h M be/src/exec/parquet/parquet-column-stats.inline.h M be/src/exec/parquet/parquet-level-decoder.h M be/src/exec/parquet/parquet-metadata-utils.h M be/src/exec/parquet/parquet-page-reader.h M be/src/exec/plan-root-sink.cc M be/src/exec/read-write-util.h M be/src/exec/scanner-context.h M be/src/exec/write-stream.h M be/src/exec/write-stream.inline.h M be/src/experiments/data-provider.h M be/src/exprs/operators-ir.cc M be/src/rpc/auth-provider.h M be/src/rpc/impala-service-pool.cc M be/src/rpc/thrift-client.h M be/src/rpc/thrift-server.cc M be/src/rpc/thrift-server.h M be/src/runtime/bufferpool/buffer-pool-internal.h M be/src/runtime/bufferpool/buffer-pool.cc M be/src/runtime/client-cache.h M be/src/runtime/collection-value-builder.h M be/src/runtime/coordinator-backend-state.h M be/src/runtime/coordinator-filter-state.h M be/src/runtime/coordinator.cc M be/src/runtime/coordinator.h M be/src/runtime/date-parse-util.h M be/src/runtime/decimal-test.cc M be/src/runtime/decimal-value.inline.h M be/src/runtime/descriptors.h M be/src/runtime/dml-exec-state.h M be/src/runtime/fragment-instance-state.cc M be/src/runtime/fragment-instance-state.h M be/src/runtime/hdfs-fs-cache.h M be/src/runtime/initial-reservations.cc M be/src/runtime/io/disk-io-mgr-stress.cc M be/src/runtime/io/disk-io-mgr.h M be/src/runtime/io/handle-cache.h M be/src/runtime/io/local-file-system-with-fault-injection.h M be/src/runtime/io/request-ranges.h M be/src/runtime/krpc-data-stream-mgr.h M be/src/runtime/krpc-data-stream-recvr.cc M be/src/runtime/krpc-data-stream-recvr.h M be/src/runtime/krpc-data-stream-sender.h M be/src/runtime/lib-cache.h M be/src/runtime/mem-tracker.h M be/src/runtime/query-exec-mgr.cc M be/src/runtime/query-exec-mgr.h M be/src/runtime/query-state.cc M be/src/runtime/query-state.h M be/src/runtime/raw-value.h M be/src/runtime/row-batch.h M be/src/runtime/runtime-filter-bank.cc M be/src/runtime/runtime-filter.h M be/src/runtime/scanner-mem-limiter.h M be/src/runtime/sorted-run-merger.h M be/src/runtime/string-search.h M be/src/runtime/thread-resource-mgr.h M be/src/runtime/tmp-file-mgr.h M be/src/scheduling/executor-group.h M be/src/scheduling/query-schedule.h M be/src/scheduling/scheduler.h M be/src/service/CMakeLists.txt M be/src/service/child-query.h A be/src/service/client-request-state-map.cc M be/src/service/client-request-state-map.h M be/src/service/client-request-state.cc M be/src/service/client-request-state.h M be/src/service/data-stream-service.cc M be/src/service/impala-hs2-server.cc M be/src/service/impala-http-handler.cc M be/src/service/impala-http-handler.h M be/src/service/impala-server.cc M be/src/service/impala-server.h M be/src/service/impalad-main.cc M be/src/statestore/failure-detector.h M be/src/statestore/statestore-subscriber.cc M be/src/statestore/statestore-subscriber.h M be/src/statestore/statestore.h M be/src/testutil/mini-kdc-wrapper.h M be/src/thirdparty/mustache/mustache.cc M be/src/thirdparty/mustache/mustache.h M be/src/transport/TSaslServerTransport.h M be/src/udf/uda-test-harness.h M be/src/udf/udf-internal.h M be/src/udf/udf-test-harness.h M be/src/util/CMakeLists.txt M be/src/util/auth-util.cc M be/src/util/auth-util.h M be/src/util/bit-stream-utils.h M be/src/util/bit-util.cc M be/src/util/bit-util.h M be/src/util/blocking-queue-test.cc M be/src/util/blocking-queue.h M be/src/util/bloom-filter-ir.cc M be/src/util/bloom-filter.cc M be/src/util/bloom-filter.h M be/src/util/buffer-builder.h M be/src/util/cgroup-util.cc M be/src/util/codec.cc M be/src/util/codec.h M be/src/util/coding-util.cc M be/src/util/coding-util.h M be/src/util/collection-metrics.cc M be/src/util/collection-metrics.h M be/src/util/common-metrics.cc M be/src/util/common-metrics.h M be/src/util/compress.cc M be/src/util/compress.h M be/src/util/condition-variable.h M be/src/util/cpu-info.cc M be/src/util/cpu-info.h M be/src/util/cyclic-barrier.cc M be/src/util/cyclic-barrier.h M be/src/util/debug-util.cc M be/src/util/debug-util.h M be/src/util/decimal-util.cc M be/src/util/decimal-util.h M be/src/util/decompress.cc M be/src/util/decompress.h M be/src/util/default-path-handlers.cc M be/src/util/disk-info.cc M be/src/util/disk-info.h M be/src/util/dynamic-util.cc M be/src/util/event-metrics.cc M be/src/util/event-metrics.h M be/src/util/filesystem-util.cc M be/src/util/flat_buffer.h M be/src/util/hdfs-util.cc M be/src/util/hdfs-util.h M be/src/util/internal-queue-test.cc M be/src/util/mem-info.h M be/src/util/memory-metrics.h M be/src/util/memusage-path-handlers.cc M be/src/util/metrics.h M be/src/util/parse-util.h M be/src/util/periodic-counter-updater.h M be/src/util/process-state-info.h M be/src/util/progress-updater.h M be/src/util/runtime-profile-counters.h M be/src/util/runtime-profile.h M be/src/util/sharded-query-map-util.h M be/src/util/simple-logger.h M be/src/util/stopwatch.h M be/src/util/streaming-sampler.h M be/src/util/string-parser-test.cc M be/src/util/system-state-info.h M be/src/util/thread-pool-test.cc M be/src/util/thread-pool.h M be/src/util/uid-util-test.cc A be/src/util/uid-util.cc M be/src/util/uid-util.h A be/src/util/unique-id-hash.h M be/src/util/webserver.h 169 files changed, 700 insertions(+), 732 deletions(-) git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/02/15202/4 -- To view, visit http://gerrit.cloudera.org:8080/15202 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: Impala-ASF Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I3450e0ffcb8b183e18ac59c8b33b9ecbd3f60e20 Gerrit-Change-Number: 15202 Gerrit-PatchSet: 4 Gerrit-Owner: Tim Armstrong <tarmstr...@cloudera.com> Gerrit-Reviewer: Impala Public Jenkins <impala-public-jenk...@cloudera.com>