Erik Grinaker
c3cb1ab98d
Merge branch 'main' into communicator-rewrite
2025-06-30 21:07:01 +02:00
Erik Grinaker
a5b0fc560c
Fix/allow remaining clippy lints
2025-06-30 12:36:20 +02:00
Erik Grinaker
67b04f8ab3
Fix a bunch of linter warnings
2025-06-30 11:10:02 +02:00
Erik Grinaker
2fb6164bf8
Misc build fixes
2025-06-05 17:22:11 +02:00
Erik Grinaker
328f28dfe5
impl Default for SlabBlockHeader
2025-06-05 17:18:28 +02:00
Heikki Linnakangas
827358dd03
Handle OOMs a little more gracefully
2025-05-12 23:33:22 +03:00
Heikki Linnakangas
d367273000
minor cleanup
2025-05-12 23:11:55 +03:00
Heikki Linnakangas
e2bad5d9e9
Add debugging HTTP endpoint for dumping the cache tree
2025-05-12 22:54:03 +03:00
Heikki Linnakangas
5623e4665b
bunch of fixes
2025-05-12 18:40:54 +03:00
Heikki Linnakangas
8abb4dab6d
implement shrinking nodes
2025-05-12 03:57:10 +03:00
Heikki Linnakangas
731667ac37
better metrics of the art tree
2025-05-12 02:08:51 +03:00
Heikki Linnakangas
6a1374d106
Pack tree node structs more tightly, avoiding alignment padding
2025-05-12 01:01:58 +03:00
Heikki Linnakangas
f7c908f2f0
more metrics
2025-05-12 01:01:50 +03:00
Heikki Linnakangas
e6a4171fa1
fix concurrency issues with the LFC
...
- Add another locking hash table to track which cached pages are currently being
modified, by smgrwrite() or smgrread() or by prefetch.
- Use single-value Leaf pages in the art tree. That seems simpler after all,
and it eliminates some corner cases where a Value needed to be cloned, which
made it tricky to use atomics or other interior mutability on the Values
2025-05-10 02:36:48 +03:00
Heikki Linnakangas
791df28755
Linked list fix and add unit test
2025-05-06 16:46:54 +03:00
Heikki Linnakangas
d20da994f4
git add missing file
2025-05-06 15:36:48 +03:00
Heikki Linnakangas
6dbbdaae73
run 'cargo fmt'
2025-05-06 15:35:56 +03:00
Heikki Linnakangas
977bc09d2a
Bunch of fixes, smarter iterator, metrics exporter
2025-05-06 15:28:50 +03:00
Heikki Linnakangas
44269fcd5e
Implement simple eviction and free block tracking
2025-05-06 15:28:15 +03:00
Heikki Linnakangas
44cc648dc8
Implement iterator over keys
...
the implementation is not very optimized, but probably good enough for an MVP
2025-05-06 15:27:38 +03:00
Heikki Linnakangas
884e028a4a
implement deletion in art tree
2025-05-06 15:27:38 +03:00
Heikki Linnakangas
42df3e5453
debugging stats
2025-05-06 15:27:38 +03:00
Heikki Linnakangas
fc743e284f
more work on allocators
2025-05-06 15:27:38 +03:00
Heikki Linnakangas
d02f9a2139
Collect garbage, handle OOMs
2025-05-06 15:27:38 +03:00
Heikki Linnakangas
083118e98e
Implement epoch system
2025-05-06 15:27:38 +03:00
Heikki Linnakangas
54cd2272f1
more memory allocation stuff
2025-05-06 15:27:38 +03:00
Heikki Linnakangas
e40193e3c8
simple block-based allocator
2025-05-06 15:27:38 +03:00
Heikki Linnakangas
e58d0fece1
New communicator, with "integrated" cache accessible from all processes
2025-04-29 11:52:44 +03:00