Avi Kivity
36b57f3432
Merge 'token: inline optimizations' from Benny Halevy
This series contains several optimizations for dht::token
around its comparison functions as well as minimum_token and maximum_token definitions,
by moving them inline into dht/token.hh
This results in a nice improvement in perf-simple-query:
```
==> perf-simple-query.pre <== (21c67a5a64)
throughput: mean=95774.01 standard-deviation=1129.83 median=96243.64 median-absolute-deviation=1090.08 maximum=96864.09 minimum=94471.19
instructions_per_op: mean=41813.68 standard-deviation=16.27 median=41809.29 median-absolute-deviation=7.02 maximum=41841.64 minimum=41799.41
cpu_cycles_per_op: mean=22383.19 standard-deviation=331.01 median=22254.53 median-absolute-deviation=332.26 maximum=22744.11 minimum=21996.73
==> perf-simple-query.post.0 <== (token: move ordering operator inline)
throughput: mean=96350.01 standard-deviation=640.10 median=96228.88 median-absolute-deviation=621.45 maximum=96988.16 minimum=95478.51
instructions_per_op: mean=41627.13 standard-deviation=37.55 median=41627.06 median-absolute-deviation=2.43 maximum=41679.44 minimum=41573.31
cpu_cycles_per_op: mean=22184.65 standard-deviation=151.03 median=22163.05 median-absolute-deviation=120.83 maximum=22348.49 minimum=21967.30
==> perf-simple-query.post.1 <== (token: operator<=>: optimize the common case)
throughput: mean=96778.29 standard-deviation=1719.34 median=97021.72 median-absolute-deviation=1059.56 maximum=98300.99 minimum=93893.75
instructions_per_op: mean=41590.25 standard-deviation=5.53 median=41589.50 median-absolute-deviation=4.17 maximum=41598.39 minimum=41584.57
cpu_cycles_per_op: mean=22135.33 standard-deviation=471.98 median=21969.30 median-absolute-deviation=244.89 maximum=22905.24 minimum=21685.33
==> perf-simple-query.post.3 <== (token: always initialize data member)
throughput: mean=98264.33 standard-deviation=998.49 median=98533.02 median-absolute-deviation=780.45 maximum=99075.40 minimum=96656.51
instructions_per_op: mean=41657.61 standard-deviation=22.53 median=41648.49 median-absolute-deviation=12.89 maximum=41696.81 minimum=41642.07
cpu_cycles_per_op: mean=21808.57 standard-deviation=93.63 median=21794.56 median-absolute-deviation=75.41 maximum=21949.46 minimum=21719.55
==> perf-simple-query.post.4 <== (token: constexpr ctors, methods, and minimum/maximum_token)
throughput: mean=98095.05 standard-deviation=1333.32 median=98930.22 median-absolute-deviation=906.80 maximum=99209.38 minimum=96194.25
instructions_per_op: mean=41572.28 standard-deviation=6.04 median=41574.49 median-absolute-deviation=4.76 maximum=41579.56 minimum=41564.72
cpu_cycles_per_op: mean=21831.35 standard-deviation=169.56 median=21732.86 median-absolute-deviation=102.93 maximum=22091.66 minimum=21689.63
==> perf-simple-query.post.5 <== (token: initialize non-key tokens with min() value)
throughput: mean=99502.32 standard-deviation=1003.70 median=99744.03 median-absolute-deviation=388.87 maximum=100482.95 minimum=97813.42
instructions_per_op: mean=41593.48 standard-deviation=17.27 median=41585.25 median-absolute-deviation=8.46 maximum=41619.41 minimum=41575.86
cpu_cycles_per_op: mean=21545.90 standard-deviation=86.66 median=21578.01 median-absolute-deviation=43.17 maximum=21612.41 minimum=21395.42
```
Optimization only. No backport required
Closes scylladb/scylladb#19782
* github.com:scylladb/scylladb:
token: initialize non-key tokens with min() value
token: make kind-based ctor private
token: constexpr ctors, methods, and minimum/maximum_token
token: always initialize data member
everywhere: use dht::token is_{minimum,maximum}
token: operator<=>: optimize the common case
token: move ordering operator inline
partitioner_test: add more token-level tests
2024-07-21 15:07:36 +03:00
..
2024-07-04 11:10:43 +03:00
2024-04-19 07:44:07 +03:00
2024-07-18 13:49:29 +02:00
2024-06-07 06:44:59 +08:00
2024-07-09 18:31:35 +03:00
2024-06-25 06:15:47 -04:00
2024-05-13 07:57:35 +03:00
2024-06-21 07:12:06 +03:00
2024-06-21 07:12:06 +03:00
2024-05-26 22:30:42 +03:00
2024-07-09 19:04:11 +03:00
2024-07-09 19:04:11 +03:00
2024-01-12 10:49:00 +02:00
2024-04-19 22:56:16 +08:00
2024-06-21 19:20:27 +03:00
2024-05-16 13:30:03 +02:00
2024-06-21 07:12:06 +03:00
2024-06-21 07:12:06 +03:00
2024-01-09 11:44:19 +02:00
2024-07-09 18:31:35 +03:00
2024-05-02 11:49:46 +02:00
2024-05-02 11:49:46 +02:00
2024-04-25 17:15:27 +08:00
2024-01-19 10:16:41 +02:00
2024-06-17 13:30:10 +00:00
2024-01-17 16:30:14 +02:00
2024-01-29 15:43:51 +02:00
2024-05-18 00:15:07 +03:00
2024-07-04 13:10:26 +02:00
2024-07-04 13:10:26 +02:00
2024-07-20 21:21:42 +03:00
2024-07-09 18:31:35 +03:00
2024-05-26 16:45:42 +03:00
2024-05-26 16:45:42 +03:00
2024-05-17 20:41:19 +03:00
2024-05-17 20:41:19 +03:00
2024-06-07 06:44:59 +08:00
2024-01-09 11:44:19 +02:00
2024-07-09 18:31:35 +03:00
2024-06-07 09:23:10 +08:00
2024-05-26 22:30:42 +03:00
2024-01-09 11:44:19 +02:00
2024-06-21 07:12:06 +03:00
2024-01-09 11:44:19 +02:00
2024-07-09 16:53:35 -03:00
2024-02-01 10:22:45 +02:00