Hello Tidy Bot, Alexey Serbin, Kudu Jenkins,
I'd like you to reexamine a change. Please visit
http://gerrit.cloudera.org:8080/16162
to look at the new patch set (#3).
Change subject: KUDU-636. Use Arena for EncodedKeys
......................................................................
KUDU-636. Use Arena for EncodedKeys
This updates EncodedKeyBuilder, RowSetKeyProbe, and EncodedKey to always
allocate from an Arena instead of from the heap. This reduces allocator
contention on the write path significantly and improves memory locality.
I measured by running a tserver under 'perf stat' while using perf loadgen to
insert 8M rows total using 8 client threads. The CPU time on the tserver was
reduced by about 20%.
Before:
Performance counter stats for './build/latest/bin/kudu tserver run -fs-wal-dir
/tmp/ts':
269853.10 msec task-clock # 6.862 CPUs utilized
293066 context-switches # 0.001 M/sec
44541 cpu-migrations # 0.165 K/sec
2846435 page-faults # 0.011 M/sec
1110190206891 cycles # 4.114 GHz
(83.33%)
201895623339 stalled-cycles-frontend # 18.19% frontend cycles
idle (83.33%)
137095475307 stalled-cycles-backend # 12.35% backend cycles
idle (83.32%)
894201276095 instructions # 0.81 insn per cycle
# 0.23 stalled cycles per
insn (83.33%)
159095264762 branches # 589.562 M/sec
(83.35%)
639216492 branch-misses # 0.40% of all branches
(83.35%)
255.178068000 seconds user
14.913394000 seconds sys
After:
Performance counter stats for './build/latest/bin/kudu tserver run -fs-wal-dir
/tmp/ts':
227730.62 msec task-clock # 6.212 CPUs utilized
263824 context-switches # 0.001 M/sec
45470 cpu-migrations # 0.200 K/sec
3165436 page-faults # 0.014 M/sec
931840588715 cycles # 4.092 GHz
(83.25%)
183214671009 stalled-cycles-frontend # 19.66% frontend cycles
idle (83.40%)
111864991317 stalled-cycles-backend # 12.00% backend cycles
idle (83.35%)
832636863971 instructions # 0.89 insn per cycle
# 0.22 stalled cycles per
insn (83.40%)
148228107120 branches # 650.892 M/sec
(83.24%)
563344647 branch-misses # 0.38% of all branches
(83.35%)
211.361472000 seconds user
16.635265000 seconds sys
Change-Id: Ib46d0e2c31e03a7f319ceb0bf742e08ff74d7683
---
M src/kudu/cfile/cfile-test.cc
M src/kudu/client/scan_configuration.cc
M src/kudu/client/write_op.cc
M src/kudu/client/write_op.h
M src/kudu/common/encoded_key-test.cc
M src/kudu/common/encoded_key.cc
M src/kudu/common/encoded_key.h
M src/kudu/common/partition_pruner-test.cc
M src/kudu/common/scan_spec-test.cc
M src/kudu/common/scan_spec.cc
M src/kudu/common/scan_spec.h
M src/kudu/tablet/all_types-scan-correctness-test.cc
M src/kudu/tablet/cfile_set-test.cc
M src/kudu/tablet/compaction-test.cc
M src/kudu/tablet/diskrowset-test-base.h
M src/kudu/tablet/diskrowset-test.cc
M src/kudu/tablet/memrowset-test.cc
M src/kudu/tablet/row_op.h
M src/kudu/tablet/rowset.h
M src/kudu/tablet/tablet-decoder-eval-test.cc
M src/kudu/tablet/tablet-pushdown-test.cc
M src/kudu/tablet/tablet-test.cc
M src/kudu/tablet/tablet.cc
M src/kudu/tools/tool_action_fs.cc
M src/kudu/tserver/scanners.h
M src/kudu/tserver/tablet_server-test.cc
M src/kudu/tserver/tablet_server_authorization-test.cc
M src/kudu/tserver/tablet_service.cc
28 files changed, 265 insertions(+), 330 deletions(-)
git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/62/16162/3
--
To view, visit http://gerrit.cloudera.org:8080/16162
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ib46d0e2c31e03a7f319ceb0bf742e08ff74d7683
Gerrit-Change-Number: 16162
Gerrit-PatchSet: 3
Gerrit-Owner: Todd Lipcon <[email protected]>
Gerrit-Reviewer: Alexey Serbin <[email protected]>
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Reviewer: Todd Lipcon <[email protected]>