Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
0aebf1c
Add buffer pool as a backend for page manager
nqd Oct 1, 2025
c820e65
add example
nqd Oct 1, 2025
edfcae9
fix the duplication, and write correct amount of data
nqd Oct 3, 2025
f08293b
Pin the frame when get from page_table
nqd Oct 3, 2025
785b631
tmp update insert
nqd Oct 3, 2025
e1b9d4a
Revert "tmp update insert"
nqd Oct 3, 2025
9caa462
fix
nqd Oct 3, 2025
07a552c
add run.sh for testing
nqd Oct 4, 2025
c4bab50
add time
nqd Oct 6, 2025
3e26672
increase buffer size
nqd Oct 10, 2025
d7f16a6
Write pages in parallel via writer pool
nqd Oct 15, 2025
4f25329
using iouring
nqd Oct 26, 2025
2daaf75
cleanup
Oct 26, 2025
11c143d
cleanup
nqd Oct 26, 2025
c9da483
fix
nqd Oct 29, 2025
436d36f
use fxhash for dashmap/dashset
nqd Oct 30, 2025
d46b3ea
write in batch
nqd Nov 1, 2025
614a6ac
format
nqd Nov 2, 2025
d3c64a4
change update_frames type
nqd Nov 2, 2025
a1a4e5c
cleanup after change updated_frames from vec to dashmap
nqd Nov 2, 2025
f6027c8
move cleanup to before checking job completion
nqd Nov 3, 2025
5cf08f3
Wip
nqd Nov 7, 2025
0d09f99
debug send dropped pages to background job:
nqd Nov 9, 2025
c24b549
wip
nqd Nov 10, 2025
dfc4cb7
wup
nqd Nov 10, 2025
dbaaa3e
log
nqd Nov 11, 2025
31d275f
drop pages is a vector
nqd Nov 12, 2025
518e3fc
wip
nqd Nov 21, 2025
a4a504d
update flag
nqd Nov 22, 2025
84bb90f
adding test
nqd Nov 22, 2025
8ce522c
wip
nqd Nov 22, 2025
366abfa
wip
nqd Nov 22, 2025
ea9d155
wip
nqd Nov 22, 2025
b859aff
use new replacer
nqd Nov 23, 2025
cb1969d
load page atomically
nqd Nov 23, 2025
274d0bc
fix race
nqd Nov 23, 2025
0135df8
cleanup old frame after evict
nqd Nov 23, 2025
4e8ce9c
update pool
nqd Nov 24, 2025
47d3d96
clock replacer use pin as bool val
nqd Nov 24, 2025
6872fd9
cleanup
nqd Nov 24, 2025
9825b65
cleanup inside victim()
nqd Nov 25, 2025
260726b
add log
nqd Nov 26, 2025
ea6ea65
use arc
nqd Nov 27, 2025
84f3553
cleanup
nqd Nov 27, 2025
39a13b5
resolve deadlock
nqd Nov 29, 2025
cd01f53
build for mmap
nqd Nov 30, 2025
25600bf
cleanup
nqd Dec 6, 2025
359a1ad
fix race condition
nqd Dec 7, 2025
73732f0
cleanup cache eviction
nqd Dec 8, 2025
e86c350
update ordering
nqd Dec 8, 2025
d37926f
using single atomicU8
nqd Dec 9, 2025
fec4bd8
use atomic func
nqd Dec 10, 2025
1c04c87
reorder field
nqd Dec 10, 2025
edaab0f
wip
nqd Dec 18, 2025
3ed31c5
wip
nqd Dec 18, 2025
6b9f193
wip
nqd Dec 18, 2025
0554a22
update pin/unpin
nqd Dec 18, 2025
962cf24
update test
nqd Dec 18, 2025
000af88
refactor
nqd Dec 18, 2025
350949c
wip
nqd Dec 19, 2025
7f2eb7b
wip
nqd Dec 19, 2025
f704185
write read example
nqd Jan 25, 2026
1a53cf4
fix batch of iovec
nqd Jan 25, 2026
37ea6a2
update background
nqd Feb 5, 2026
ffb9577
need to update pin status
nqd Feb 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ jobs:
matrix:
os: [ubuntu-latest, macos-latest]
profile: [dev, release]
backend: [mmap_backend, buffer_pool_backend]
runs-on: ${{ matrix.os }}

steps:
Expand All @@ -79,13 +80,14 @@ jobs:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Run unit tests
run: |
make unit-tests cargo_flags='--verbose --profile=${{ matrix.profile }}'
make unit-tests cargo_flags='--verbose --profile=${{ matrix.profile }} --no-default-features --features ${{ matrix.backend }}'

integration-tests:
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
profile: [dev, release]
backend: [mmap_backend, buffer_pool_backend]
runs-on: ${{ matrix.os }}

steps:
Expand All @@ -97,7 +99,7 @@ jobs:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Run integration tests
run:
make integration-tests cargo_flags=--profile=${{ matrix.profile }} test_flags=--nocapture
make integration-tests cargo_flags='--profile=${{ matrix.profile }} --no-default-features --features ${{ matrix.backend }}' test_flags=--nocapture

check-cli-lockfile:
runs-on: ubuntu-latest
Expand Down
10 changes: 10 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,16 @@ parking_lot = { version = "0.12.4", features = ["send_guard"] }
fxhash = "0.2.1"
static_assertions = "1.1.0"
rayon = "1.10.0"
evict = "0.3.1"
dashmap = "6.1.0"
libc = "0.2.174"
io-uring = { version = "0.7.10", optional = true }
crossbeam-channel = "0.5.15"

[features]
default = ["buffer_pool_backend"]
buffer_pool_backend = ["io-uring"]
mmap_backend = []

[dev-dependencies]
criterion = "0.6.0"
Expand Down
7 changes: 7 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,13 @@ unit-tests:
integration-tests: tests/fixtures
@cargo test --test '*' $(cargo_flags) -- $(test_flags)

.PHONY: all-tests
all-tests:
@echo "Running tests with mmap backend"
@cargo test --no-default-features --features mmap_backend $(cargo_flags) -- $(test_flags)
echo "Running tests with buffer pool backend"
@cargo test --no-default-features --features buffer_pool_backend $(cargo_flags) -- $(test_flags)

tests/fixtures: tests/fixtures_stable.tar.gz
@tar -xzf $< -C $(@D)
@rm -rf tests/fixtures_stable.tar.gz
Expand Down
Loading