Hello Kudu Jenkins, I'd like you to reexamine a change. Please visit
http://gerrit.cloudera.org:8080/6826 to look at the new patch set (#4). Change subject: KUDU-1549: compact LBM container metadata files at startup ...................................................................... KUDU-1549: compact LBM container metadata files at startup Here's another patch to speed up LBM startup by reducing the amount of metadata processed from disk. The idea is to find metadata files with lots of "dead" blocks (i.e. CREATE + DELETE pairs) and to "compact" them by rewriting the files without the dead blocks' records. The set of containers to compact is determined by the ratio of live blocks to total blocks, and there's a new gflag to configure that. To make this work, I had to adjust the accounting in BlockCreated() yet again. The new approach preserves next_block_offset_, but uses fs_aligned_length() directly for byte-related stats. Without this change, the aligned container stats (total_bytes and live_bytes_aligned) are completely out of whack in a container whose metadata was compacted. Like the dead container deletion patch, this one is quick and dirty in that the new logic is unsuitable for real-time compaction. Also like that patch, compaction in real-time would require non-trivial synchronization changes. Testing is done in several places: - BlockManagerStressTest: a "real" workload that'll compact some containers with additional inconsistencies injected by the LBMCorruptor. - BlockManagerTest.TestMetadataOkayDespiteFailedWrites: filesystem errors are injected into metadata compaction. - LogBlockManagerTest.TestCompactFullContainerMetadataAtStartup: explicit test for metadata compaction (and for the stat accounting fix). Change-Id: I981f7d9e7eb96fb40cef30ad96c5960b72d07756 --- M src/kudu/fs/block_manager-stress-test.cc M src/kudu/fs/block_manager-test.cc M src/kudu/fs/fs_report.cc M src/kudu/fs/fs_report.h M src/kudu/fs/log_block_manager-test.cc M src/kudu/fs/log_block_manager.cc M src/kudu/fs/log_block_manager.h M src/kudu/util/env_posix.cc 8 files changed, 331 insertions(+), 44 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/26/6826/4 -- To view, visit http://gerrit.cloudera.org:8080/6826 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: I981f7d9e7eb96fb40cef30ad96c5960b72d07756 Gerrit-PatchSet: 4 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Adar Dembo <a...@cloudera.com> Gerrit-Reviewer: Adar Dembo <a...@cloudera.com> Gerrit-Reviewer: David Ribeiro Alves <davidral...@gmail.com> Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Tidy Bot Gerrit-Reviewer: Todd Lipcon <t...@apache.org>