You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@kudu.apache.org by "Alexey Serbin (Code Review)" <ge...@cloudera.org> on 2021/02/22 16:04:45 UTC

[kudu-CR] KUDU-2612 add perf scenario to TxnWriteOpsITest

Alexey Serbin has uploaded this change for review. ( http://gerrit.cloudera.org:8080/17105


Change subject: KUDU-2612 add perf scenario to TxnWriteOpsITest
......................................................................

KUDU-2612 add perf scenario to TxnWriteOpsITest

This patch adds TxnWriteOpPerf scenario to TxnWriteOpsITest.  The new
scenario is to evaluate --tablet_max_pending_txn_write_ops setting for
tablet servers: it runs for a short time to count number of completed
Write RPCs in context of a transactional session.  The scenario focuses
on single-row write operations to pinpoint the latency of processing
txn write operations when performing registration of transaction
participants.  Probablty, the current locking approach for the
TxnOpDispatcher's queue while submitting the accumulated operations
isn't optimal.  Apparently, the exponential back-off timing built into
the client's RPC retry logic is also an important factor.

Below are results averaged for 100 runs of the benchmark scenario with
varying --max_pending_txn_write_ops accordingly and the following
settings fixed:
  --prepare_connections_to_tservers=true
  --clients=8
  --txn_sessions_per_client=1
  --benchmark_run_time_ms=50

I used the following script to get the accumulated results:
  for i in {0..99}; do
    ./bin/txn_write_ops-itest --gtest_filter='*TxnWriteOpPerf' \
        --max_pending_txn_write_ops=<X> 2>&1 | grep 'Txn write RPCs' | \
        awk '{print $9}'; done | \
        awk 'BEGIN {sum=0} {sum += $0} END {print sum}'

RELEASE build:
  --max_pending_txn_write_ops=0  : 442.13 Txn write RPCs
  --max_pending_txn_write_ops=2  : 494.33 Txn write RPCs
  --max_pending_txn_write_ops=5  : 471.90 Txn write RPCs
  --max_pending_txn_write_ops=10 : 490.22 Txn write RPCs
  --max_pending_txn_write_ops=20 : 469.21 Txn write RPCs

DEBUG   build:
  --max_pending_txn_write_ops=0  : 83.74 Txn write RPCs
  --max_pending_txn_write_ops=2  : 98.18 Txn write RPCs
  --max_pending_txn_write_ops=5  : 95.23 Txn write RPCs
  --max_pending_txn_write_ops=10 : 98.12 Txn write RPCs
  --max_pending_txn_write_ops=20 : 94.40 Txn write RPCs

Change-Id: I0370dbb289a4e1cfc154205ae92e13da510682b4
---
M src/kudu/integration-tests/txn_write_ops-itest.cc
1 file changed, 192 insertions(+), 8 deletions(-)



  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/05/17105/1
-- 
To view, visit http://gerrit.cloudera.org:8080/17105
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I0370dbb289a4e1cfc154205ae92e13da510682b4
Gerrit-Change-Number: 17105
Gerrit-PatchSet: 1
Gerrit-Owner: Alexey Serbin <as...@cloudera.com>

[kudu-CR] KUDU-2612 add perf scenario to TxnWriteOpsITest

Posted by "Alexey Serbin (Code Review)" <ge...@cloudera.org>.
Alexey Serbin has posted comments on this change. ( http://gerrit.cloudera.org:8080/17105 )

Change subject: KUDU-2612 add perf scenario to TxnWriteOpsITest
......................................................................


Patch Set 5: Verified+1

unrelated test failure in TxnCommitITest.TestRestartingWhileCommitting


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I0370dbb289a4e1cfc154205ae92e13da510682b4
Gerrit-Change-Number: 17105
Gerrit-PatchSet: 5
Gerrit-Owner: Alexey Serbin <as...@cloudera.com>
Gerrit-Reviewer: Alexey Serbin <as...@cloudera.com>
Gerrit-Reviewer: Andrew Wong <aw...@cloudera.com>
Gerrit-Reviewer: Hao Hao <ha...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Comment-Date: Wed, 03 Mar 2021 00:54:12 +0000
Gerrit-HasComments: No

[kudu-CR] KUDU-2612 add perf scenario to TxnWriteOpsITest

Posted by "Alexey Serbin (Code Review)" <ge...@cloudera.org>.
Alexey Serbin has removed a vote on this change.

Change subject: KUDU-2612 add perf scenario to TxnWriteOpsITest
......................................................................


Removed Verified-1 by Kudu Jenkins (120)
-- 
To view, visit http://gerrit.cloudera.org:8080/17105
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: deleteVote
Gerrit-Change-Id: I0370dbb289a4e1cfc154205ae92e13da510682b4
Gerrit-Change-Number: 17105
Gerrit-PatchSet: 1
Gerrit-Owner: Alexey Serbin <as...@cloudera.com>
Gerrit-Reviewer: Andrew Wong <aw...@cloudera.com>
Gerrit-Reviewer: Hao Hao <ha...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)

[kudu-CR] KUDU-2612 add perf scenario to TxnWriteOpsITest

Posted by "Alexey Serbin (Code Review)" <ge...@cloudera.org>.
Alexey Serbin has removed a vote on this change.

Change subject: KUDU-2612 add perf scenario to TxnWriteOpsITest
......................................................................


Removed Verified-1 by Kudu Jenkins (120)
-- 
To view, visit http://gerrit.cloudera.org:8080/17105
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: deleteVote
Gerrit-Change-Id: I0370dbb289a4e1cfc154205ae92e13da510682b4
Gerrit-Change-Number: 17105
Gerrit-PatchSet: 5
Gerrit-Owner: Alexey Serbin <as...@cloudera.com>
Gerrit-Reviewer: Alexey Serbin <as...@cloudera.com>
Gerrit-Reviewer: Andrew Wong <aw...@cloudera.com>
Gerrit-Reviewer: Hao Hao <ha...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)

[kudu-CR] KUDU-2612 add perf scenario to TxnWriteOpsITest

Posted by "Andrew Wong (Code Review)" <ge...@cloudera.org>.
Andrew Wong has posted comments on this change. ( http://gerrit.cloudera.org:8080/17105 )

Change subject: KUDU-2612 add perf scenario to TxnWriteOpsITest
......................................................................


Patch Set 4: Code-Review+2

(1 comment)

http://gerrit.cloudera.org:8080/#/c/17105/1//COMMIT_MSG
Commit Message:

http://gerrit.cloudera.org:8080/#/c/17105/1//COMMIT_MSG@17
PS1, Line 17: Apparently, 
> Ah, indeed: I didn't mention that I saw big deviation in the number of comp
Thanks!



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I0370dbb289a4e1cfc154205ae92e13da510682b4
Gerrit-Change-Number: 17105
Gerrit-PatchSet: 4
Gerrit-Owner: Alexey Serbin <as...@cloudera.com>
Gerrit-Reviewer: Alexey Serbin <as...@cloudera.com>
Gerrit-Reviewer: Andrew Wong <aw...@cloudera.com>
Gerrit-Reviewer: Hao Hao <ha...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Comment-Date: Tue, 02 Mar 2021 20:05:00 +0000
Gerrit-HasComments: Yes

[kudu-CR] KUDU-2612 add perf scenario to TxnWriteOpsITest

Posted by "Alexey Serbin (Code Review)" <ge...@cloudera.org>.
Hello Tidy Bot, Kudu Jenkins, Andrew Wong, Hao Hao, 

I'd like you to reexamine a change. Please visit

    http://gerrit.cloudera.org:8080/17105

to look at the new patch set (#4).

Change subject: KUDU-2612 add perf scenario to TxnWriteOpsITest
......................................................................

KUDU-2612 add perf scenario to TxnWriteOpsITest

This patch adds WriteOpPerf scenario to TxnWriteOpsITest.  The new
scenario is to evaluate --tablet_max_pending_txn_write_ops setting for
tablet servers: it runs for a short time to count number of completed
Write RPCs in context of a transactional session.  The scenario focuses
on single-row write operations to pinpoint the latency of processing
txn write operations when performing registration of transaction
participants.  Probably, the current locking approach for the
TxnOpDispatcher's queue while submitting the accumulated operations
isn't optimal.  Apparently, the exponential back-off timing built into
the client's RPC retry logic is also an important factor: I saw
significant deviation in the number of completed RPCs from run to run.

Below are results averaged for 100 runs of the benchmark scenario with
varying --max_pending_txn_write_ops accordingly and the following
settings fixed:
  --prepare_connections_to_tservers=true
  --clients=8
  --sessions_per_client=1
  --benchmark_run_time_ms=50

I used the following script to get the accumulated results for
writes in a transactional context:
  for i in {0..99}; do
    ./bin/txn_write_ops-itest --gtest_filter='*WriteOpPerf' \
        --max_pending_txn_write_ops=<X> 2>&1 | grep 'write RPCs' | \
        awk '{print $9}'; done | \
        awk 'BEGIN {sum=0} {sum += $0} END {print sum}'

RELEASE build:
  --max_pending_txn_write_ops=0  : 442.13 RPCs
  --max_pending_txn_write_ops=2  : 494.33 RPCs
  --max_pending_txn_write_ops=5  : 471.90 RPCs
  --max_pending_txn_write_ops=10 : 490.22 RPCs
  --max_pending_txn_write_ops=20 : 469.21 RPCs

DEBUG   build:
  --max_pending_txn_write_ops=0  : 83.74 RPCs
  --max_pending_txn_write_ops=2  : 98.18 RPCs
  --max_pending_txn_write_ops=5  : 95.23 RPCs
  --max_pending_txn_write_ops=10 : 98.12 RPCs
  --max_pending_txn_write_ops=20 : 94.40 RPCs

I also measured the performance of transactional vs non-transactional
for various time intervals in RELEASE build, where for transactional
writes I used --max_pending_txn_write_ops=2 setting:

50ms:
  non-transactional:    588.33 RPCs (11767 req/sec)
      transactional:    487.82 RPCs ( 9756 req/sec)

3000ms:
  non-transactional:  40041.63 RPCs (13347 req/sec)
      transactional:  39759.07 RPCs (13253 req/sec)

8000ms:
  non-transactional: 106832.37 RPCs (13354 req/sec)
      transactional: 105922.65 RPCs (13240 req/sec)

Change-Id: I0370dbb289a4e1cfc154205ae92e13da510682b4
---
M src/kudu/integration-tests/txn_write_ops-itest.cc
1 file changed, 190 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/05/17105/4
-- 
To view, visit http://gerrit.cloudera.org:8080/17105
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I0370dbb289a4e1cfc154205ae92e13da510682b4
Gerrit-Change-Number: 17105
Gerrit-PatchSet: 4
Gerrit-Owner: Alexey Serbin <as...@cloudera.com>
Gerrit-Reviewer: Alexey Serbin <as...@cloudera.com>
Gerrit-Reviewer: Andrew Wong <aw...@cloudera.com>
Gerrit-Reviewer: Hao Hao <ha...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)

[kudu-CR] KUDU-2612 add perf scenario to TxnWriteOpsITest

Posted by "Alexey Serbin (Code Review)" <ge...@cloudera.org>.
Alexey Serbin has posted comments on this change. ( http://gerrit.cloudera.org:8080/17105 )

Change subject: KUDU-2612 add perf scenario to TxnWriteOpsITest
......................................................................


Patch Set 1:

(3 comments)

http://gerrit.cloudera.org:8080/#/c/17105/1//COMMIT_MSG
Commit Message:

http://gerrit.cloudera.org:8080/#/c/17105/1//COMMIT_MSG@15
PS1, Line 15: Probablty
> nit: Probably
Done


http://gerrit.cloudera.org:8080/#/c/17105/1//COMMIT_MSG@17
PS1, Line 17: Apparently, 
> How did you observe this?
Ah, indeed: I didn't mention that I saw big deviation in the number of completed RPCs from run to run.  I added this notion.


http://gerrit.cloudera.org:8080/#/c/17105/1//COMMIT_MSG@35
PS1, Line 35: RELEASE build:
> I guess the main piece to conclude from this is that we should definitely p
Yup.  I guess there is some room for optimization.



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I0370dbb289a4e1cfc154205ae92e13da510682b4
Gerrit-Change-Number: 17105
Gerrit-PatchSet: 1
Gerrit-Owner: Alexey Serbin <as...@cloudera.com>
Gerrit-Reviewer: Alexey Serbin <as...@cloudera.com>
Gerrit-Reviewer: Andrew Wong <aw...@cloudera.com>
Gerrit-Reviewer: Hao Hao <ha...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Comment-Date: Sat, 27 Feb 2021 06:20:09 +0000
Gerrit-HasComments: Yes

[kudu-CR] KUDU-2612 add perf scenario to TxnWriteOpsITest

Posted by "Alexey Serbin (Code Review)" <ge...@cloudera.org>.
Hello Tidy Bot, Kudu Jenkins, Andrew Wong, Hao Hao, 

I'd like you to reexamine a change. Please visit

    http://gerrit.cloudera.org:8080/17105

to look at the new patch set (#2).

Change subject: KUDU-2612 add perf scenario to TxnWriteOpsITest
......................................................................

KUDU-2612 add perf scenario to TxnWriteOpsITest

This patch adds TxnWriteOpPerf scenario to TxnWriteOpsITest.  The new
scenario is to evaluate --tablet_max_pending_txn_write_ops setting for
tablet servers: it runs for a short time to count number of completed
Write RPCs in context of a transactional session.  The scenario focuses
on single-row write operations to pinpoint the latency of processing
txn write operations when performing registration of transaction
participants.  Probably, the current locking approach for the
TxnOpDispatcher's queue while submitting the accumulated operations
isn't optimal.  Apparently, the exponential back-off timing built into
the client's RPC retry logic is also an important factor: I saw
significant deviation in the number of completed RPCs from run to run.

Below are results averaged for 100 runs of the benchmark scenario with
varying --max_pending_txn_write_ops accordingly and the following
settings fixed:
  --prepare_connections_to_tservers=true
  --clients=8
  --txn_sessions_per_client=1
  --benchmark_run_time_ms=50

I used the following script to get the accumulated results:
  for i in {0..99}; do
    ./bin/txn_write_ops-itest --gtest_filter='*TxnWriteOpPerf' \
        --max_pending_txn_write_ops=<X> 2>&1 | grep 'Txn write RPCs' | \
        awk '{print $9}'; done | \
        awk 'BEGIN {sum=0} {sum += $0} END {print sum}'

RELEASE build:
  --max_pending_txn_write_ops=0  : 442.13 Txn write RPCs
  --max_pending_txn_write_ops=2  : 494.33 Txn write RPCs
  --max_pending_txn_write_ops=5  : 471.90 Txn write RPCs
  --max_pending_txn_write_ops=10 : 490.22 Txn write RPCs
  --max_pending_txn_write_ops=20 : 469.21 Txn write RPCs

DEBUG   build:
  --max_pending_txn_write_ops=0  : 83.74 Txn write RPCs
  --max_pending_txn_write_ops=2  : 98.18 Txn write RPCs
  --max_pending_txn_write_ops=5  : 95.23 Txn write RPCs
  --max_pending_txn_write_ops=10 : 98.12 Txn write RPCs
  --max_pending_txn_write_ops=20 : 94.40 Txn write RPCs

Change-Id: I0370dbb289a4e1cfc154205ae92e13da510682b4
---
M src/kudu/integration-tests/txn_write_ops-itest.cc
1 file changed, 191 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/05/17105/2
-- 
To view, visit http://gerrit.cloudera.org:8080/17105
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I0370dbb289a4e1cfc154205ae92e13da510682b4
Gerrit-Change-Number: 17105
Gerrit-PatchSet: 2
Gerrit-Owner: Alexey Serbin <as...@cloudera.com>
Gerrit-Reviewer: Alexey Serbin <as...@cloudera.com>
Gerrit-Reviewer: Andrew Wong <aw...@cloudera.com>
Gerrit-Reviewer: Hao Hao <ha...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)

[kudu-CR] KUDU-2612 add perf scenario to TxnWriteOpsITest

Posted by "Andrew Wong (Code Review)" <ge...@cloudera.org>.
Andrew Wong has posted comments on this change. ( http://gerrit.cloudera.org:8080/17105 )

Change subject: KUDU-2612 add perf scenario to TxnWriteOpsITest
......................................................................


Patch Set 1: Code-Review+1

(3 comments)

http://gerrit.cloudera.org:8080/#/c/17105/1//COMMIT_MSG
Commit Message:

http://gerrit.cloudera.org:8080/#/c/17105/1//COMMIT_MSG@15
PS1, Line 15: Probablty
nit: Probably


http://gerrit.cloudera.org:8080/#/c/17105/1//COMMIT_MSG@17
PS1, Line 17: Apparently, 
How did you observe this?


http://gerrit.cloudera.org:8080/#/c/17105/1//COMMIT_MSG@35
PS1, Line 35: RELEASE build:
I guess the main piece to conclude from this is that we should definitely pick a non-zero value for this flag, lest we get hit with a 10% throughput hit.



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I0370dbb289a4e1cfc154205ae92e13da510682b4
Gerrit-Change-Number: 17105
Gerrit-PatchSet: 1
Gerrit-Owner: Alexey Serbin <as...@cloudera.com>
Gerrit-Reviewer: Alexey Serbin <as...@cloudera.com>
Gerrit-Reviewer: Andrew Wong <aw...@cloudera.com>
Gerrit-Reviewer: Hao Hao <ha...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Comment-Date: Tue, 23 Feb 2021 22:30:37 +0000
Gerrit-HasComments: Yes

[kudu-CR] KUDU-2612 add perf scenario to TxnWriteOpsITest

Posted by "Alexey Serbin (Code Review)" <ge...@cloudera.org>.
Alexey Serbin has posted comments on this change. ( http://gerrit.cloudera.org:8080/17105 )

Change subject: KUDU-2612 add perf scenario to TxnWriteOpsITest
......................................................................


Patch Set 1: Verified+1

unrelated test failure in  ClientTest.TxnMultipleSingleRowsWithServerRestart (planning to fixed that in the parent patch)


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I0370dbb289a4e1cfc154205ae92e13da510682b4
Gerrit-Change-Number: 17105
Gerrit-PatchSet: 1
Gerrit-Owner: Alexey Serbin <as...@cloudera.com>
Gerrit-Reviewer: Alexey Serbin <as...@cloudera.com>
Gerrit-Reviewer: Andrew Wong <aw...@cloudera.com>
Gerrit-Reviewer: Hao Hao <ha...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Comment-Date: Mon, 22 Feb 2021 17:45:03 +0000
Gerrit-HasComments: No

[kudu-CR] KUDU-2612 add perf scenario to TxnWriteOpsITest

Posted by "Alexey Serbin (Code Review)" <ge...@cloudera.org>.
Hello Tidy Bot, Kudu Jenkins, Andrew Wong, Hao Hao, 

I'd like you to reexamine a change. Please visit

    http://gerrit.cloudera.org:8080/17105

to look at the new patch set (#3).

Change subject: KUDU-2612 add perf scenario to TxnWriteOpsITest
......................................................................

KUDU-2612 add perf scenario to TxnWriteOpsITest

This patch adds WriteOpPerf scenario to TxnWriteOpsITest.  The new
scenario is to evaluate --tablet_max_pending_txn_write_ops setting for
tablet servers: it runs for a short time to count number of completed
Write RPCs in context of a transactional session.  The scenario focuses
on single-row write operations to pinpoint the latency of processing
txn write operations when performing registration of transaction
participants.  Probably, the current locking approach for the
TxnOpDispatcher's queue while submitting the accumulated operations
isn't optimal.  Apparently, the exponential back-off timing built into
the client's RPC retry logic is also an important factor: I saw
significant deviation in the number of completed RPCs from run to run.

Below are results averaged for 100 runs of the benchmark scenario with
varying --max_pending_txn_write_ops accordingly and the following
settings fixed:
  --prepare_connections_to_tservers=true
  --clients=8
  --sessions_per_client=1
  --benchmark_run_time_ms=50

I used the following script to get the accumulated results for
writes in a transactional context:
  for i in {0..99}; do
    ./bin/txn_write_ops-itest --gtest_filter='*WriteOpPerf' \
        --max_pending_txn_write_ops=<X> 2>&1 | grep 'write RPCs' | \
        awk '{print $9}'; done | \
        awk 'BEGIN {sum=0} {sum += $0} END {print sum}'

RELEASE build:
  non-transactional              : 581.24     write RPCs
  --max_pending_txn_write_ops=0  : 442.13 txn write RPCs
  --max_pending_txn_write_ops=2  : 494.33 txn write RPCs
  --max_pending_txn_write_ops=5  : 471.90 txn write RPCs
  --max_pending_txn_write_ops=10 : 490.22 txn write RPCs
  --max_pending_txn_write_ops=20 : 469.21 txn write RPCs

DEBUG   build:
  non-transactional              : 150.24    write RPCs
  --max_pending_txn_write_ops=0  : 83.74 txn write RPCs
  --max_pending_txn_write_ops=2  : 98.18 txn write RPCs
  --max_pending_txn_write_ops=5  : 95.23 txn write RPCs
  --max_pending_txn_write_ops=10 : 98.12 txn write RPCs
  --max_pending_txn_write_ops=20 : 94.40 txn write RPCs

Change-Id: I0370dbb289a4e1cfc154205ae92e13da510682b4
---
M src/kudu/integration-tests/txn_write_ops-itest.cc
1 file changed, 190 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/05/17105/3
-- 
To view, visit http://gerrit.cloudera.org:8080/17105
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I0370dbb289a4e1cfc154205ae92e13da510682b4
Gerrit-Change-Number: 17105
Gerrit-PatchSet: 3
Gerrit-Owner: Alexey Serbin <as...@cloudera.com>
Gerrit-Reviewer: Alexey Serbin <as...@cloudera.com>
Gerrit-Reviewer: Andrew Wong <aw...@cloudera.com>
Gerrit-Reviewer: Hao Hao <ha...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)

[kudu-CR] KUDU-2612 add perf scenario to TxnWriteOpsITest

Posted by "Alexey Serbin (Code Review)" <ge...@cloudera.org>.
Alexey Serbin has submitted this change and it was merged. ( http://gerrit.cloudera.org:8080/17105 )

Change subject: KUDU-2612 add perf scenario to TxnWriteOpsITest
......................................................................

KUDU-2612 add perf scenario to TxnWriteOpsITest

This patch adds WriteOpPerf scenario to TxnWriteOpsITest.  The new
scenario is to evaluate --tablet_max_pending_txn_write_ops setting for
tablet servers: it runs for a short time to count number of completed
Write RPCs in context of a transactional session.  The scenario focuses
on single-row write operations to pinpoint the latency of processing
txn write operations when performing registration of transaction
participants.  Probably, the current locking approach for the
TxnOpDispatcher's queue while submitting the accumulated operations
isn't optimal.  Apparently, the exponential back-off timing built into
the client's RPC retry logic is also an important factor: I saw
significant deviation in the number of completed RPCs from run to run.

Below are results averaged for 100 runs of the benchmark scenario with
varying --max_pending_txn_write_ops accordingly and the following
settings fixed:
  --prepare_connections_to_tservers=true
  --clients=8
  --sessions_per_client=1
  --benchmark_run_time_ms=50

I used the following script to get the accumulated results for
writes in a transactional context:
  for i in {0..99}; do
    ./bin/txn_write_ops-itest --gtest_filter='*WriteOpPerf' \
        --max_pending_txn_write_ops=<X> 2>&1 | grep 'write RPCs' | \
        awk '{print $9}'; done | \
        awk 'BEGIN {sum=0} {sum += $0} END {print sum}'

RELEASE build:
  --max_pending_txn_write_ops=0  : 442.13 RPCs
  --max_pending_txn_write_ops=2  : 494.33 RPCs
  --max_pending_txn_write_ops=5  : 471.90 RPCs
  --max_pending_txn_write_ops=10 : 490.22 RPCs
  --max_pending_txn_write_ops=20 : 469.21 RPCs

DEBUG   build:
  --max_pending_txn_write_ops=0  : 83.74 RPCs
  --max_pending_txn_write_ops=2  : 98.18 RPCs
  --max_pending_txn_write_ops=5  : 95.23 RPCs
  --max_pending_txn_write_ops=10 : 98.12 RPCs
  --max_pending_txn_write_ops=20 : 94.40 RPCs

I also measured the performance of transactional vs non-transactional
for various time intervals in RELEASE build, where for transactional
writes I used --max_pending_txn_write_ops=2 setting:

50ms:
  non-transactional:    588.33 RPCs (11767 req/sec)
      transactional:    487.82 RPCs ( 9756 req/sec)

3000ms:
  non-transactional:  40041.63 RPCs (13347 req/sec)
      transactional:  39759.07 RPCs (13253 req/sec)

8000ms:
  non-transactional: 106832.37 RPCs (13354 req/sec)
      transactional: 105922.65 RPCs (13240 req/sec)

Change-Id: I0370dbb289a4e1cfc154205ae92e13da510682b4
Reviewed-on: http://gerrit.cloudera.org:8080/17105
Tested-by: Alexey Serbin <as...@cloudera.com>
Reviewed-by: Alexey Serbin <as...@cloudera.com>
---
M src/kudu/integration-tests/txn_write_ops-itest.cc
1 file changed, 190 insertions(+), 1 deletion(-)

Approvals:
  Alexey Serbin: Looks good to me, approved; Verified

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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I0370dbb289a4e1cfc154205ae92e13da510682b4
Gerrit-Change-Number: 17105
Gerrit-PatchSet: 6
Gerrit-Owner: Alexey Serbin <as...@cloudera.com>
Gerrit-Reviewer: Alexey Serbin <as...@cloudera.com>
Gerrit-Reviewer: Andrew Wong <aw...@cloudera.com>
Gerrit-Reviewer: Hao Hao <ha...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)

[kudu-CR] KUDU-2612 add perf scenario to TxnWriteOpsITest

Posted by "Alexey Serbin (Code Review)" <ge...@cloudera.org>.
Alexey Serbin has posted comments on this change. ( http://gerrit.cloudera.org:8080/17105 )

Change subject: KUDU-2612 add perf scenario to TxnWriteOpsITest
......................................................................


Patch Set 5: Code-Review+2

Carrying over Andrew's +2 from PS4.


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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I0370dbb289a4e1cfc154205ae92e13da510682b4
Gerrit-Change-Number: 17105
Gerrit-PatchSet: 5
Gerrit-Owner: Alexey Serbin <as...@cloudera.com>
Gerrit-Reviewer: Alexey Serbin <as...@cloudera.com>
Gerrit-Reviewer: Andrew Wong <aw...@cloudera.com>
Gerrit-Reviewer: Hao Hao <ha...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Comment-Date: Wed, 03 Mar 2021 00:54:39 +0000
Gerrit-HasComments: No