danielealbano / cachegrand

cachegrand - a modern data ingestion, processing and serving platform built for today's hardware
BSD 3-Clause "New" or "Revised" License
975 stars 34 forks source link

Simplify slab allocator #159

Closed danielealbano closed 2 years ago

danielealbano commented 2 years ago

This PR simplifies the slab allocator removing the per numa-node hugepages cache as it was caching only 1 hugepage and this functionality is already provided by the hugepages cache.

This esemplification also gets rid of the numa-node spinlock reducing the amount of places where there can be contention.

The PR has also the side-effect of making the slab allocator slices free-up simpler and less flaky.

codecov[bot] commented 2 years ago

Codecov Report

Merging #159 (b7ce53b) into main (9226a70) will decrease coverage by 0.21%. The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main     #159      +/-   ##
==========================================
- Coverage   77.74%   77.52%   -0.22%     
==========================================
  Files          93       93              
  Lines        6186     6117      -69     
==========================================
- Hits         4809     4742      -67     
+ Misses       1377     1375       -2     
Impacted Files Coverage Δ
src/slab_allocator.c 97.54% <100.00%> (-0.62%) :arrow_down:
src/spinlock.c 92.30% <0.00%> (-3.85%) :arrow_down:
src/hugepage_cache.c 100.00% <0.00%> (+6.25%) :arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 9226a70...b7ce53b. Read the comment docs.