VoltDB / voltdb-client-go

VoltDB Golang Client Library
MIT License
32 stars 19 forks source link

Reduce wasteful SystemCatalog and Statistics procedure invocation #38

Closed gernest closed 7 years ago

gernest commented 7 years ago

This commit ensures that we only call @SystemCatalog and @Statistics once per *Conn

gernest commented 7 years ago

Running ./voter --runtype=sync on my local machine

On 5326a1f8a3231e2cc875a969fa6f932f9cda3c00

--------------------------------------------------------------------------------
 Command Line Configuration
--------------------------------------------------------------------------------

{displayinterval:5000000000 duration:120000000000 warmup:5000000000 servers:localhost:21212 contestants:6 maxvotes:2 statsfile: goroutines:40 runtype:sync}
--------------------------------------------------------------------------------
 Setup & Initialization
--------------------------------------------------------------------------------

Populating Static Tables
--------------------------------------------------------------------------------
 Starting Benchmark
--------------------------------------------------------------------------------

Warming up...

Running benchmark...
5.000778663s Throughput 4922.4/s
10.000432293s Throughput 4412.4/s
15.000014827s Throughput 4533.8/s
20.001847958s Throughput 4418.2/s
25.00005065s Throughput 4395.8/s
30.00000551s Throughput 3984/s
35.004550031s Throughput 4023.6/s
40.021580479s Throughput 4396.2/s
45.000023055s Throughput 4417/s
50.001496019s Throughput 4087.2/s
55.000195604s Throughput 3164.8/s
1m0.001093998s Throughput 3325.8/s
1m5.00294921s Throughput 4044/s
1m10.00575888s Throughput 3841.6/s
1m15.000298318s Throughput 3786/s
1m20.017288213s Throughput 3985.2/s
1m24.999960791s Throughput 3656.4/s
1m30.000230497s Throughput 3582.8/s
1m35.000375035s Throughput 3292.8/s
1m40.001718361s Throughput 3432.8/s
1m45.002642015s Throughput 3631.2/s
1m50.004346604s Throughput 3638.2/s
1m55.003280684s Throughput 3757.4/s
1m59.999916325s Throughput 3330.2/s

--------------------------------------------------------------------------------
 Voting Results
--------------------------------------------------------------------------------

A total of    470442 votes were received during the benchmark...
 -    439141 Accepted
 -     31299 Rejected (Invalid Contestant)
 -         2 Rejected (Maximum Vote Count Reached)
 -         0 Failed (Transaction Error)

Contestant Name     Votes Received
Edwina Burnam              2008934
Alana Bregman              1509768
Kelly Clauss                922499
Tabatha Gehling             912664
Jessie Alloway              858263
Jessie Eichman              606371

The Winner is: Edwina Burnam

--------------------------------------------------------------------------------
 Client Workload Statistics
--------------------------------------------------------------------------------

Generated 470442 votes in 120.022110301 seconds (3920 ops/second)

On the current PR

--------------------------------------------------------------------------------
 Command Line Configuration
--------------------------------------------------------------------------------

{displayinterval:5000000000 duration:120000000000 warmup:5000000000 servers:localhost:21212 contestants:6 maxvotes:2 statsfile: goroutines:40 runtype:sync}
--------------------------------------------------------------------------------
 Setup & Initialization
--------------------------------------------------------------------------------

Populating Static Tables
--------------------------------------------------------------------------------
 Starting Benchmark
--------------------------------------------------------------------------------

Warming up...

Running benchmark...
5.003700206s Throughput 13748.6/s
10.000136071s Throughput 13513/s
15.000986826s Throughput 11205.4/s
20.003330908s Throughput 11435.2/s
25.00017707s Throughput 14201.6/s
30.000244113s Throughput 12600.2/s
35.003807774s Throughput 11369.8/s
40.001951981s Throughput 13917.8/s
45.00368645s Throughput 13859.8/s
50.003865675s Throughput 11108.2/s
55.000078165s Throughput 13090.6/s
1m0.001450792s Throughput 14827.2/s
1m5.002797949s Throughput 16318.4/s
1m10.002178868s Throughput 12197.4/s
1m15.000266244s Throughput 15254.4/s
1m20.003078122s Throughput 13086.6/s
1m25.001742774s Throughput 13095.6/s
1m30.004731469s Throughput 11147.8/s
1m35.002139825s Throughput 12282/s
1m40.002138609s Throughput 13295.2/s
1m45.003544431s Throughput 14235/s
1m50.000244801s Throughput 16484/s
1m55.000042287s Throughput 15531.6/s
2m0.000242885s Throughput 16539/s

--------------------------------------------------------------------------------
 Voting Results
--------------------------------------------------------------------------------

A total of   1621769 votes were received during the benchmark...
 -   1495148 Accepted
 -    126613 Rejected (Invalid Contestant)
 -         8 Rejected (Maximum Vote Count Reached)
 -         0 Failed (Transaction Error)

Contestant Name     Votes Received
Edwina Burnam              2461440
Alana Bregman              1870719
Tabatha Gehling            1123424
Kelly Clauss               1122412
Jessie Alloway             1055201
Jessie Eichman              746275

The Winner is: Edwina Burnam

--------------------------------------------------------------------------------
 Client Workload Statistics
--------------------------------------------------------------------------------

Generated 1621769 votes in 120.026447756 seconds (13512 ops/second)
gernest commented 7 years ago

Benchmark comparison against master

benchcmp old.bench new.bench
benchmark                                                       old ns/op     new ns/op     delta
BenchmarkSerializeArgs-4                                        3843          3549          -7.65%
BenchmarkDeserializeResponse-4                                  1236          1032          -16.50%
BenchmarkDeserializeRows-4                                      349577        328636        -5.99%
BenchmarkDeserializeResult-4                                    1240          1135          -8.47%
BenchmarkExec-4                                                 2257583       724954        -67.89%
BenchmarkPrepareStmtExec-4                                      1582527       707875        -55.27%
BenchmarkQuery-4                                                6081415       4128942       -32.11%
BenchmarkPrepareStmtQuery-4                                     6740969       4787809       -28.97%
BenchmarkHashinater_getHashedPartitionForParameter_int32-4      251           235           -6.37%
BenchmarkHashinater_getHashedPartitionForParameter_int64-4      255           254           -0.39%
BenchmarkHashinater_getHashedPartitionForParameter_String-4     146           139           -4.79%
BenchmarkHashinater_getHashedPartitionForParameter_Bytes-4      312           311           -0.32%

benchmark                                                       old allocs     new allocs     delta
BenchmarkSerializeArgs-4                                        6              6              +0.00%
BenchmarkDeserializeResponse-4                                  6              6              +0.00%
BenchmarkDeserializeRows-4                                      839            845            +0.72%
BenchmarkDeserializeResult-4                                    12             12             +0.00%
BenchmarkExec-4                                                 1649           47             -97.15%
BenchmarkPrepareStmtExec-4                                      1086           50             -95.40%
BenchmarkQuery-4                                                2990           1055           -64.72%
BenchmarkPrepareStmtQuery-4                                     2871           1169           -59.28%
BenchmarkHashinater_getHashedPartitionForParameter_int32-4      1              1              +0.00%
BenchmarkHashinater_getHashedPartitionForParameter_int64-4      1              1              +0.00%
BenchmarkHashinater_getHashedPartitionForParameter_String-4     1              1              +0.00%
BenchmarkHashinater_getHashedPartitionForParameter_Bytes-4      0              0              +0.00%

benchmark                                                       old bytes     new bytes     delta
BenchmarkSerializeArgs-4                                        48            48            +0.00%
BenchmarkDeserializeResponse-4                                  80            80            +0.00%
BenchmarkDeserializeRows-4                                      1238673       1248005       +0.75%
BenchmarkDeserializeResult-4                                    80            80            +0.00%
BenchmarkExec-4                                                 301844        1742          -99.42%
BenchmarkPrepareStmtExec-4                                      199230        1954          -99.02%
BenchmarkQuery-4                                                3372144       2908845       -13.74%
BenchmarkPrepareStmtQuery-4                                     3261649       3241273       -0.62%
BenchmarkHashinater_getHashedPartitionForParameter_int32-4      32            32            +0.00%
BenchmarkHashinater_getHashedPartitionForParameter_int64-4      32            32            +0.00%
BenchmarkHashinater_getHashedPartitionForParameter_String-4     16            16            +0.00%
BenchmarkHashinater_getHashedPartitionForParameter_Bytes-4      0             0             +0.00%