Todd Lipcon has submitted this change and it was merged.

Change subject: write_transaction: allocate RowOp objects from the arena
......................................................................


write_transaction: allocate RowOp objects from the arena

This improves the memory locality of write transactions by making all of
the RowOps in a batch come from the transaction's arena. Additionally
this reduces contention on tcmalloc since the arena grabs memory in
bulk.

I didn't benchmark this before/after, but in various write stress
testing this made a bit of a difference in cache miss rates and CPU time
spent in RowOp code.

Change-Id: I8e7969423c057f9bf1169fe066819228c59ed269
Reviewed-on: http://gerrit.cloudera.org:8080/6480
Reviewed-by: David Ribeiro Alves <[email protected]>
Tested-by: Kudu Jenkins
---
M src/kudu/tablet/tablet.cc
M src/kudu/tablet/transactions/write_transaction.cc
M src/kudu/tablet/transactions/write_transaction.h
3 files changed, 19 insertions(+), 13 deletions(-)

Approvals:
  David Ribeiro Alves: Looks good to me, approved
  Kudu Jenkins: Verified



-- 
To view, visit http://gerrit.cloudera.org:8080/6480
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I8e7969423c057f9bf1169fe066819228c59ed269
Gerrit-PatchSet: 4
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Todd Lipcon <[email protected]>
Gerrit-Reviewer: David Ribeiro Alves <[email protected]>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon <[email protected]>

Reply via email to