Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
137108: kv: allocate Batch{Request|Response} header and {requests|responses} together r=nvanbenschoten a=nvanbenschoten These two commits avoid heap allocations in the common cases by allocating the `BatchRequest` and `BatchResponse` headers and their respective requests or responses together, in a single malloc. Together, this avoids a pair of heap allocations per KV Batch operation. ``` name old time/op new time/op delta Sysbench/SQL/1node_remote/oltp_read_only-10 3.55ms ±17% 3.54ms ±16% ~ (p=0.945 n=19+20) Sysbench/SQL/1node_remote/oltp_write_only-10 2.13ms ±20% 2.13ms ±23% ~ (p=0.531 n=19+20) Sysbench/SQL/1node_remote/oltp_read_write-10 5.64ms ± 9% 5.77ms ±24% ~ (p=0.988 n=18+19) Sysbench/SQL/1node_remote/oltp_point_select-10 174µs ±10% 177µs ±19% ~ (p=0.799 n=19+18) Sysbench/KV/1node_remote/oltp_read_only-10 843µs ±17% 824µs ±15% ~ (p=0.461 n=20+19) Sysbench/KV/1node_remote/oltp_write_only-10 784µs ±14% 751µs ±24% ~ (p=0.226 n=18+18) Sysbench/KV/1node_remote/oltp_read_write-10 1.75ms ±15% 1.76ms ±21% ~ (p=0.639 n=17+19) Sysbench/KV/1node_remote/oltp_point_select-10 35.7µs ±16% 36.4µs ±25% ~ (p=0.795 n=19+19) name old alloc/op new alloc/op delta Sysbench/KV/1node_remote/oltp_point_select-10 6.57kB ± 0% 6.56kB ± 0% -0.26% (p=0.005 n=20+20) Sysbench/SQL/1node_remote/oltp_read_only-10 1.15MB ± 1% 1.15MB ± 0% ~ (p=0.191 n=19+19) Sysbench/SQL/1node_remote/oltp_write_only-10 573kB ± 4% 573kB ± 4% ~ (p=0.758 n=20+20) Sysbench/SQL/1node_remote/oltp_read_write-10 1.64MB ± 1% 1.64MB ± 2% ~ (p=0.771 n=19+20) Sysbench/SQL/1node_remote/oltp_point_select-10 30.0kB ± 1% 30.1kB ± 1% ~ (p=0.632 n=20+19) Sysbench/KV/1node_remote/oltp_read_only-10 656kB ± 0% 655kB ± 0% ~ (p=0.067 n=18+20) Sysbench/KV/1node_remote/oltp_write_only-10 263kB ± 2% 263kB ± 2% ~ (p=0.961 n=19+16) Sysbench/KV/1node_remote/oltp_read_write-10 879kB ± 1% 880kB ± 1% ~ (p=0.495 n=20+20) name old allocs/op new allocs/op delta Sysbench/KV/1node_remote/oltp_point_select-10 61.0 ± 0% 59.0 ± 0% -3.28% (p=0.000 n=20+20) Sysbench/KV/1node_remote/oltp_read_only-10 1.87k ± 0% 1.84k ± 0% -1.50% (p=0.000 n=17+17) Sysbench/KV/1node_remote/oltp_read_write-10 3.46k ± 0% 3.42k ± 0% -1.38% (p=0.000 n=20+19) Sysbench/KV/1node_remote/oltp_write_only-10 1.59k ± 0% 1.57k ± 0% -1.32% (p=0.000 n=20+18) Sysbench/SQL/1node_remote/oltp_write_only-10 3.98k ± 1% 3.94k ± 1% -1.00% (p=0.000 n=20+20) Sysbench/SQL/1node_remote/oltp_read_only-10 4.78k ± 1% 4.74k ± 1% -0.76% (p=0.000 n=19+19) Sysbench/SQL/1node_remote/oltp_point_select-10 266 ± 1% 264 ± 1% -0.64% (p=0.003 n=20+19) Sysbench/SQL/1node_remote/oltp_read_write-10 8.74k ± 0% 8.68k ± 1% -0.60% (p=0.000 n=19+18) ``` Epic: None Release note: None Co-authored-by: Nathan VanBenschoten <[email protected]>
- Loading branch information