Skip to content
Merged

V7 #18

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
3c8ecc9
Candystore redesign
tomerfiliba Mar 25, 2026
b9a19ed
CI fixes
tomerfiliba Mar 25, 2026
6ad6742
Add stats backwards-compatibility and make db.clear operate without &…
tomerfiliba Mar 25, 2026
3799b1e
Compaction scans index rather than files; add progressive rebuild; be…
tomerfiliba Mar 26, 2026
c4611ed
readme
tomerfiliba Mar 26, 2026
7d1b347
perf
tomerfiliba Mar 26, 2026
df76261
Rotation: wait for modifying operations to finish before flushing the…
tomerfiliba Mar 27, 2026
0db9b57
perf
tomerfiliba Mar 28, 2026
4d6e405
Add rebuild metrics; add checkpoint() API; stats cleanup
tomerfiliba Mar 29, 2026
446e263
Fix small bug in shrink_to_fit; dedup common logic from list/queue it…
tomerfiliba Mar 29, 2026
b2d863d
Compaction: set thread name
tomerfiliba Mar 29, 2026
3591df0
README
tomerfiliba Mar 29, 2026
ab11493
Update README.md
tomerfiliba Mar 29, 2026
20b2ce1
Update README.md
tomerfiliba Mar 29, 2026
3ebe3e4
Non-stop-the-world checkpointing
tomerfiliba Mar 29, 2026
5e0c750
Background checkpointing
tomerfiliba Mar 30, 2026
4f80d7f
Refactoring
tomerfiliba Mar 31, 2026
8a80ddd
Move from databuf to postcard, a more popular serialization library
tomerfiliba Mar 31, 2026
5191e9a
Optimizations: set_len to max file size to save up on metadata update…
tomerfiliba Apr 3, 2026
7a456ff
v1.0.0: rebuild index from data files on version mismatch
tomerfiliba Apr 8, 2026
bde427a
fmt
tomerfiliba Apr 8, 2026
64107f1
separate crasher test
tomerfiliba Apr 8, 2026
f6a81f6
Fix crasher
tomerfiliba Apr 8, 2026
c56638b
More fixes
tomerfiliba Apr 8, 2026
d0959ce
CI fixes
tomerfiliba Apr 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
132 changes: 132 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
name: CI

on:
push:
pull_request:
workflow_dispatch:

permissions:
contents: read

env:
CARGO_TERM_COLOR: always
RUST_BACKTRACE: "1"
RUSTFLAGS: "-D warnings"

jobs:
fmt:
name: Rustfmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Print runner info
run: |
echo "cores: $(nproc)"
echo "cpu model: $(lscpu | sed -n 's/^Model name:[[:space:]]*//p' | head -n 1)"
echo "ram: $(free -h | awk '/Mem:/ {print $2}')"
- run: rustup component add rustfmt
- run: cargo fmt -- --check

clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Print runner info
run: |
echo "cores: $(nproc)"
echo "cpu model: $(lscpu | sed -n 's/^Model name:[[:space:]]*//p' | head -n 1)"
echo "ram: $(free -h | awk '/Mem:/ {print $2}')"
- uses: actions/cache@v5
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: clippy-${{ runner.os }}-${{ hashFiles('**/Cargo.lock') }}
- run: rustup component add clippy
- run: cargo clippy --all-targets -- -D warnings

test-ubuntu:
name: Test (Ubuntu, ${{ matrix.profile }})
runs-on: ubuntu-latest
strategy:
matrix:
profile: [debug, release]
steps:
- uses: actions/checkout@v6
- name: Print runner info
run: |
echo "cores: $(nproc)"
echo "cpu model: $(lscpu | sed -n 's/^Model name:[[:space:]]*//p' | head -n 1)"
echo "ram: $(free -h | awk '/Mem:/ {print $2}')"
- uses: actions/cache@v5
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: test-ubuntu-${{ matrix.profile }}-${{ hashFiles('**/Cargo.lock') }}
- name: Run tests
run: |
if [ "${{ matrix.profile }}" = "release" ]; then
cargo test --release -- --skip test_crash_recovery --test-threads=1
else
cargo test -- --skip test_crash_recovery --test-threads=1
fi
- name: Run examples
run: |
cargo run --example simple
cargo run --example multithreaded
cargo run --example atomics
cargo run --example lists
cargo run --example typed
cargo test --features whitebox-testing --test whitebox
- name: Run perf
if: matrix.profile == 'release'
run: cargo run --release --example perf
- name: Run crasher
if: matrix.profile == 'release'
run: cargo test --release --test crasher -- --nocapture

test-windows:
name: Test (Windows, ${{ matrix.profile }})
runs-on: windows-latest
strategy:
matrix:
profile: [debug, release]
steps:
- uses: actions/checkout@v6
- name: Print runner info
shell: pwsh
run: |
$cpu = Get-CimInstance Win32_Processor | Select-Object -First 1
$computer = Get-CimInstance Win32_ComputerSystem
Write-Host "cores: $($cpu.NumberOfCores)"
Write-Host "cpu model: $($cpu.Name.Trim())"
Write-Host "ram: $([math]::Round($computer.TotalPhysicalMemory / 1GB, 2)) GB"
- uses: actions/cache@v5
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: test-windows-${{ matrix.profile }}-${{ hashFiles('**/Cargo.lock') }}
- name: Run tests
run: |
if ("${{ matrix.profile }}" -eq "release") {
cargo test --release -- --skip test_crash_recovery --test-threads=1
} else {
cargo test -- --skip test_crash_recovery --test-threads=1
}
- name: Run examples
run: |
cargo run --example simple
cargo run --example multithreaded
cargo run --example atomics
cargo run --example lists
cargo run --example typed
cargo test --features whitebox-testing --test whitebox
- name: Run perf
if: matrix.profile == 'release'
run: cargo run --release --example perf
42 changes: 0 additions & 42 deletions .github/workflows/ubuntu.yml

This file was deleted.

22 changes: 0 additions & 22 deletions .github/workflows/windows.yml

This file was deleted.

19 changes: 1 addition & 18 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,18 +1 @@
# Generated by Cargo
# will have compiled files and executables
debug/
target/
dbdir/

# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
#Cargo.lock

# These are backup files generated by rustfmt
**/*.rs.bk

# MSVC Windows builds of rustc generate these, which store debugging information
*.pdb

# Jetbrains files
.idea
/target
Loading
Loading