Hello Dan Burkert, Adar Dembo, I'd like you to do a code review. Please visit
http://gerrit.cloudera.org:8080/8009 to review the following change. Change subject: Avoid a few allocations while reading PBC files ...................................................................... Avoid a few allocations while reading PBC files This reduces extra short-lived allocations while reading PBC files: - pb_util now uses faststring buffers instead of heap-allocated arrays. For short reads (<32 bytes) these are stack-allocated. Since PBC files use length prefixes for records, this avoids a heap allocation per record. - env_posix used to use a temporary vector<Slice> for every read. Now it uses C-style pointer-and-length for the array to avoid the allocation. This sped up startup on a real host with 11M blocks a few more percent: Before: I0907 17:27:13.600186 14550 fs_manager.cc:335] Time spent opening block manager: real 13.401s user 0.000s sys 0.002s After: I0907 17:43:46.364558 21480 fs_manager.cc:335] Time spent opening block manager: real 12.377s user 0.000s sys 0.001s This also sped up the LBM startup time benchmark a little bit: Before: I0907 17:07:40.230087 9782 log_block_manager-test.cc:799] Time spent reopening block manager: real 1.495s user 0.032s sys 0.001s I0907 17:07:41.642105 9782 log_block_manager-test.cc:799] Time spent reopening block manager: real 1.412s user 0.044s sys 0.001s I0907 17:07:43.082852 9782 log_block_manager-test.cc:799] Time spent reopening block manager: real 1.441s user 0.040s sys 0.001s I0907 17:07:44.512603 9782 log_block_manager-test.cc:799] Time spent reopening block manager: real 1.430s user 0.043s sys 0.000s I0907 17:07:45.956848 9782 log_block_manager-test.cc:799] Time spent reopening block manager: real 1.444s user 0.041s sys 0.000s I0907 17:07:47.386735 9782 log_block_manager-test.cc:799] Time spent reopening block manager: real 1.430s user 0.037s sys 0.002s I0907 17:07:48.787317 9782 log_block_manager-test.cc:799] Time spent reopening block manager: real 1.401s user 0.041s sys 0.002s I0907 17:07:50.244407 9782 log_block_manager-test.cc:799] Time spent reopening block manager: real 1.457s user 0.038s sys 0.001s I0907 17:07:51.682209 9782 log_block_manager-test.cc:799] Time spent reopening block manager: real 1.438s user 0.037s sys 0.001s I0907 17:07:53.116209 9782 log_block_manager-test.cc:799] Time spent reopening block manager: real 1.434s user 0.037s sys 0.000s After: I0907 17:40:07.984983 10204 log_block_manager-test.cc:799] Time spent reopening block manager: real 1.429s user 0.032s sys 0.001s I0907 17:40:09.359199 10204 log_block_manager-test.cc:799] Time spent reopening block manager: real 1.374s user 0.037s sys 0.000s I0907 17:40:10.767251 10204 log_block_manager-test.cc:799] Time spent reopening block manager: real 1.408s user 0.038s sys 0.001s I0907 17:40:12.160768 10204 log_block_manager-test.cc:799] Time spent reopening block manager: real 1.394s user 0.037s sys 0.001s I0907 17:40:13.539149 10204 log_block_manager-test.cc:799] Time spent reopening block manager: real 1.378s user 0.035s sys 0.001s I0907 17:40:14.932631 10204 log_block_manager-test.cc:799] Time spent reopening block manager: real 1.393s user 0.037s sys 0.000s I0907 17:40:16.316269 10204 log_block_manager-test.cc:799] Time spent reopening block manager: real 1.384s user 0.037s sys 0.000s I0907 17:40:17.714495 10204 log_block_manager-test.cc:799] Time spent reopening block manager: real 1.398s user 0.038s sys 0.000s I0907 17:40:19.077134 10204 log_block_manager-test.cc:799] Time spent reopening block manager: real 1.363s user 0.036s sys 0.001s I0907 17:40:20.487521 10204 log_block_manager-test.cc:799] Time spent reopening block manager: real 1.410s user 0.037s sys 0.001s Change-Id: I228f26416b750c5a30ec6cc0763257c7d8b8d56f --- M src/kudu/util/env_posix.cc M src/kudu/util/pb_util.cc 2 files changed, 17 insertions(+), 17 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/09/8009/1 -- To view, visit http://gerrit.cloudera.org:8080/8009 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I228f26416b750c5a30ec6cc0763257c7d8b8d56f Gerrit-PatchSet: 1 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Todd Lipcon <t...@apache.org> Gerrit-Reviewer: Adar Dembo <a...@cloudera.com> Gerrit-Reviewer: Dan Burkert <danburk...@apache.org>