Conrad Ludgate
25934ec1ba
proxy: reduce global conn pool contention ( #4747 )
...
## Problem
As documented, the global connection pool will be high contention.
## Summary of changes
Use DashMap rather than Mutex<HashMap>.
Of note, DashMap currently uses a RwLock internally, but it's partially
sharded to reduce contention by a factor of N. We could potentially use
flurry which is a port of Java's concurrent hashmap, but I have no good
understanding of it's performance characteristics. Dashmap is at least
equivalent to hashmap but less contention.
See the read heavy benchmark to analyse our expected performance
<https://github.com/xacrimon/conc-map-bench#ready-heavy >
I also spoke with the developer of dashmap recently, and they are
working on porting the implementation to use concurrent HAMT FWIW
2023-08-16 17:20:28 +01:00
..
2023-08-02 12:38:12 +03:00
2023-07-20 13:39:19 -04:00
2023-08-03 17:20:24 +03:00
2023-07-18 12:56:40 +03:00
2023-07-18 12:56:40 +03:00
2023-04-13 14:34:29 +03:00
2023-07-03 15:21:10 +03:00
2023-07-03 15:21:10 +03:00
2023-04-13 14:34:29 +03:00
2023-07-18 12:56:40 +03:00
2023-07-18 12:56:40 +03:00
2023-04-13 14:34:29 +03:00
2023-04-13 14:34:29 +03:00
2023-08-03 17:20:24 +03:00
2023-04-13 14:34:29 +03:00
2023-04-13 14:34:29 +03:00
2023-04-13 14:34:29 +03:00
2023-04-13 14:34:29 +03:00
2023-06-30 14:17:44 -07:00
2023-08-03 17:20:24 +03:00
2023-08-10 11:05:27 +00:00
2023-08-08 09:16:21 +01:00
2023-04-13 14:34:29 +03:00
2023-08-03 17:20:24 +03:00
2023-08-03 17:20:24 +03:00
2023-07-31 07:43:12 +00:00
2023-08-09 16:27:53 +01:00
2023-08-09 16:27:53 +01:00
2023-04-13 14:34:29 +03:00
2023-08-03 17:20:24 +03:00
2023-07-18 12:56:40 +03:00
2023-04-25 14:10:18 +02:00
2023-04-13 14:34:29 +03:00
2023-08-03 17:20:24 +03:00
2023-07-21 21:20:53 +03:00
2023-07-10 20:01:01 +01:00
2023-08-03 17:20:24 +03:00
2023-04-13 14:34:29 +03:00
2023-04-13 14:34:29 +03:00
2023-07-18 12:56:40 +03:00
2023-08-03 17:20:24 +03:00
2023-05-05 02:57:47 +03:00
2023-04-13 14:34:29 +03:00
2023-08-08 12:41:37 +03:00
2023-07-18 12:56:40 +03:00
2023-07-18 12:56:40 +03:00
2023-08-10 15:24:43 +03:00
2023-04-13 14:34:29 +03:00
2023-08-16 17:20:28 +01:00
2023-04-13 14:34:29 +03:00
2023-07-18 12:56:40 +03:00
2023-04-13 14:34:29 +03:00
2023-07-31 07:43:12 +00:00
2023-08-16 18:27:18 +03:00
2023-07-18 12:56:40 +03:00
2023-08-03 17:20:24 +03:00
2023-08-10 15:24:43 +03:00
2023-08-03 17:20:24 +03:00
2023-08-14 17:16:49 +03:00
2023-08-10 18:53:16 +03:00
2023-08-11 10:18:13 +03:00
2023-06-24 10:34:15 +03:00
2023-06-15 17:30:12 +03:00
2023-08-16 17:31:16 +03:00
2023-08-03 17:20:24 +03:00
2023-08-03 17:20:24 +03:00
2023-08-16 17:31:16 +03:00
2023-08-03 17:20:24 +03:00
2023-07-18 12:56:40 +03:00
2023-04-13 14:34:29 +03:00
2023-04-13 14:34:29 +03:00
2023-04-13 14:34:29 +03:00
2023-08-08 09:16:21 +01:00
2023-08-16 12:57:43 +03:00
2023-06-19 15:59:38 +04:00
2023-08-03 17:20:24 +03:00
2023-06-06 14:59:36 +01:00