Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make pools directly configurable with long size and disable leak detection by default #197

Merged
merged 5 commits into from
Oct 8, 2024

Conversation

chrisvest
Copy link
Owner

No description provided.

We also need long-counters for poisoned slots, as we could theoretically have more than 2 billion poisoned slots in very large pools.
By switching from a flat open-addressing array to a tree, around the 2 million entries mark, we get much better performance and scalability.
@chrisvest
Copy link
Owner Author

@hyperxpro FYI This makes the leak detector dramatically more scalable. The resize stalls are not eye-ball noticeable anymore, but latency spikes can still appear when measured more closely, I presume. The leak detector is now also turns it off by default.

@chrisvest
Copy link
Owner Author

Confirmed that the IdentityHashSet subtrees get a reasonable spread after a conversion from flat array into tree mode.

Histogram of sizes of subtrees after treeMode conversion at 823.061 entries

Number of items in subtree => number of subtrees with this many items
0 => 0
1 => 0
2 => 0
3 => 0
4 => 0
5 => 0
6 => 0
7 => 0
8 => 0
9 => 0
10 => 0
11 => 0
12 => 0
13 => 0
14 => 0
15 => 0
16 => 0
17 => 0
18 => 0
19 => 0
20 => 0
21 => 0
22 => 0
23 => 0
24 => 0
25 => 2
26 => 1
27 => 1
28 => 3
29 => 5
30 => 7
31 => 19
32 => 27
33 => 50
34 => 47
35 => 97
36 => 115
37 => 162
38 => 193
39 => 256
40 => 345
41 => 433
42 => 477
43 => 560
44 => 618
45 => 759
46 => 797
47 => 860
48 => 897
49 => 946
50 => 922
51 => 884
52 => 904
53 => 824
54 => 782
55 => 685
56 => 649
57 => 580
58 => 471
59 => 403
60 => 348
61 => 279
62 => 220
63 => 198
64 => 126
65 => 118
66 => 83
67 => 68
68 => 49
69 => 38
70 => 30
71 => 13
72 => 10
73 => 8
74 => 5
75 => 4
76 => 2
77 => 1
78 => 1
79 => 0
80 => 2

@chrisvest chrisvest merged commit 6fe1344 into main Oct 8, 2024
13 checks passed
@chrisvest chrisvest deleted the long-size branch October 8, 2024 00:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant