Skip to content

Conversation

@bitfaster
Copy link
Owner

@bitfaster bitfaster commented Aug 18, 2023

#378 introduced a bug by moving items from hot instead of cold.

This caused WhenItemsAreScannedInParallelCapacityIsNotExceeded to fail intermittently:

image

@coveralls
Copy link

Coverage Status

coverage: 95.541% (-0.1%) from 95.678% when pulling cd317bd on users/alexpeck/warm into 67d717b on main.

@bitfaster
Copy link
Owner Author

bitfaster commented Aug 18, 2023

Re-run hit rate suite on this PR. Before numbers come from 2.2.0 (not #378)

The Arc search scenario has the largest regression, others are mostly more like noise.

Wikibench (worse)

CacheSize Before After
25 30.75 28.980103382537575
50 38.54 37.299943707435645
75 42.52 41.427949141134235
100 45.1 44.06817855702613
125 47.22 46.1382063286935
150 48.69 47.62653088961094
175 49.93 48.87486783957522
200 50.83 49.8392244670742

Glimpse (unchanged)

CacheSize Before After
250 12.83 12.834580216126351
500 26.13 26.134663341645886
750 39.43 39.43474646716542
1000 43.28 43.275145469659186
1250 49.93 49.925187032418954
1500 52.4 52.40232751454697
1750 53.5 53.49958437240233
2000 53.55 53.54945968412302

Arc Database (better)

CacheSize Before After
1000000 11.9 11.946744099796959
2000000 23.24 23.385298961017693
3000000 36.19 36.1645889361942
4000000 39.60 39.5618105662515
5000000 45.15 45.11357847809514
6000000 50.37 50.33634726148707
7000000 56.08 56.124685473478884
8000000 61.0 61.088241227618475

Arc Search (worse)

CacheSize Before After
100000 9.63 9.02201904934646
200000 18.70 17.737511322426506
300000 26.83 25.60674858673079
400000 34.39 33.00346386105745
500000 41.43 39.9822595510328
600000 48.26 46.74528462303862
700000 54.61 53.03860955056351
800000 61.3 58.84120152840416

Arc OLTP (better)

CacheSize Before After
250 15.6 15.095745204535385
500 27.12 27.37607272369263
750 32.29 32.77685706315738
1000 36.01 36.378911441839094
1250 38.68 39.1542917152093
1500 40.69 41.09927856084101
1750 42.48 42.868910293224815
2000 44.16 44.40608437392317

@bitfaster bitfaster merged commit 8d80ee2 into main Aug 18, 2023
@bitfaster
Copy link
Owner Author

Cycle benchmark:

Before

Method Runtime Mean Ratio Allocated
FastConcurrentLru .NET 6.0 23.41 us 1.00 8.51 KB
ConcurrentLru .NET 6.0 25.55 us 1.09 8.51 KB
ConcurrentLruEvent .NET 6.0 25.91 us 1.11 12.29 KB
FastConcurrentTLru .NET 6.0 24.22 us 1.03 9.45 KB
ConcurrentTLru .NET 6.0 26.28 us 1.12 9.45 KB
ClassicLru .NET 6.0 16.97 us 0.72 14 KB
FastConcurrentLru .NET Framework 4.8 37.24 us 1.00 14.34 KB
ConcurrentLru .NET Framework 4.8 38.63 us 1.04 14.34 KB
ConcurrentLruEvent .NET Framework 4.8 39.98 us 1.07 18.13 KB
FastConcurrentTLru .NET Framework 4.8 48.89 us 1.31 15.29 KB
ConcurrentTLru .NET Framework 4.8 51.07 us 1.37 15.29 KB
ClassicLru .NET Framework 4.8 22.17 us 0.60 17.05 KB

After

Method Runtime Mean Ratio Allocated
FastConcurrentLru .NET 6.0 23.84 us 1.00 8.51 KB
ConcurrentLru .NET 6.0 25.72 us 1.08 8.51 KB
ConcurrentLruEvent .NET 6.0 25.58 us 1.07 12.29 KB
FastConcurrentTLru .NET 6.0 24.13 us 1.01 9.45 KB
ConcurrentTLru .NET 6.0 26.20 us 1.10 9.45 KB
ClassicLru .NET 6.0 17.34 us 0.73 14 KB
FastConcurrentLru .NET Framework 4.8 37.73 us 1.00 14.34 KB
ConcurrentLru .NET Framework 4.8 39.17 us 1.04 14.34 KB
ConcurrentLruEvent .NET Framework 4.8 39.94 us 1.06 18.13 KB
FastConcurrentTLru .NET Framework 4.8 48.25 us 1.28 15.29 KB
ConcurrentTLru .NET Framework 4.8 50.89 us 1.35 15.29 KB
ClassicLru .NET Framework 4.8 21.84 us 0.58 17.05 KB

@bitfaster bitfaster deleted the users/alexpeck/warm branch October 6, 2023 01:17
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.

3 participants