Skip to content
This repository was archived by the owner on Sep 29, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 4 additions & 0 deletions AGENT_CHAT.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# RedlineDB Agent Chat

## 2026-09-25T00:40Z perf/leaf-direct-default

Claim: canonical checkout `/home/ubuntu/redlineDB`, branch `perf/leaf-direct-default` from `origin/main` `75ea89c204acd8cd988138815bf88a609e19b7b2`. Non-splitting leaf insert places one cell and checksums once. `REDLINEDB_LEAF_DIRECT_INSERT=0` keeps the full-page rebuild. Durability stays Strict. No worktree.

## 2026-09-24T20:40Z bench/qps-counter-smoke

Claim: canonical checkout `/home/ubuntu/redlineDB`, branch `bench/qps-counter-smoke` from `origin/main` `c90ed5fc1ff3570c5a2d5c712853bec588f5d626`. The queries-per-second smoke test asserts the Redline counter delta is non-zero for checksum bytes, leaf rebuilds, and row gets or decodes. No speed threshold, no scale change, no Postgres, no default SQL change. No worktree.
Expand Down
4 changes: 0 additions & 4 deletions crates/bench/src/qps.rs
Original file line number Diff line number Diff line change
Expand Up @@ -675,10 +675,6 @@ mod tests {
.expect("redline");
let observe = redline.observe.as_ref().expect("redline counters");
assert!(observe.checksum_bytes > 0);
assert!(
observe.rewrite_leaf_calls > 0,
"default leaf insert still rebuilds the page"
);
assert!(observe.relation_gets > 0 || observe.sql_row_decodes > 0);
assert!(
report
Expand Down
33 changes: 24 additions & 9 deletions crates/kernel/src/index/mutate/insert_leaf.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
//! One-cell leaf insert. Off unless `REDLINEDB_LEAF_DIRECT_INSERT=1`.
//! One-cell leaf insert. On unless `REDLINEDB_LEAF_DIRECT_INSERT=0`.
//!
//! The default path still rebuilds the leaf in `rewrite_leaf`. Official
//! CI does not set the variable, so suite `all` keeps today's pages.
//! A non-splitting insert places one cell and checksums the page once.
//! The full-page rebuild remains for splits and for the env override.

use std::cell::Cell;

Expand All @@ -20,7 +20,8 @@ pub(super) fn direct_leaf_insert_enabled() -> bool {
}
std::env::var("REDLINEDB_LEAF_DIRECT_INSERT")
.ok()
.is_some_and(|value| value == "1")
.as_deref()
!= Some("0")
}

pub(super) fn insert_one_cell(page: &mut Page, slot: usize, entry: &Entry) -> Result<()> {
Expand Down Expand Up @@ -62,8 +63,8 @@ mod tests {
struct ForceGuard;

impl ForceGuard {
fn enable() -> Self {
force_direct(Some(true));
fn set(value: bool) -> Self {
force_direct(Some(value));
Self
}
}
Expand Down Expand Up @@ -101,19 +102,31 @@ mod tests {
Ok(())
}

#[test]
fn default_direct_insert_is_on_unless_zero() {
force_direct(None);
let disabled = std::env::var("REDLINEDB_LEAF_DIRECT_INSERT")
.ok()
.as_deref()
== Some("0");
assert_eq!(super::direct_leaf_insert_enabled(), !disabled);
}

#[test]
fn direct_insert_matches_rewrite_and_skips_rebuild() {
let _off = ForceGuard::set(false);
let (_rewrite_dir, rewrite) = fresh(IndexUniqueness::NonUnique).expect("rewrite index");
let before_rewrite = observe::snapshot();
fill(&rewrite, 32).expect("rewrite fill");
let rewrite_calls = observe::snapshot().since(before_rewrite).rewrite_leaf_calls;
drop(_off);

let _guard = ForceGuard::enable();
let _on = ForceGuard::set(true);
let (_direct_dir, direct) = fresh(IndexUniqueness::NonUnique).expect("direct index");
let before_direct = observe::snapshot();
fill(&direct, 32).expect("direct fill");
let direct_calls = observe::snapshot().since(before_direct).rewrite_leaf_calls;
drop(_guard);
drop(_on);

assert!(rewrite_calls >= 32, "rewrite path rebuilt {rewrite_calls}");
assert_eq!(direct_calls, 0, "direct path rebuilt the leaf");
Expand All @@ -131,13 +144,15 @@ mod tests {

#[test]
fn direct_unique_conflict_matches_rewrite() {
let _off = ForceGuard::set(false);
let (_rewrite_dir, rewrite) = fresh(IndexUniqueness::Unique).expect("rewrite unique");
rewrite.insert_unique(1, b"same", row(1, 0)).expect("first");
let rewrite_err = rewrite
.insert_unique(1, b"same", row(2, 0))
.expect_err("conflict");
drop(_off);

let _guard = ForceGuard::enable();
let _on = ForceGuard::set(true);
let (_direct_dir, direct) = fresh(IndexUniqueness::Unique).expect("direct unique");
direct.insert_unique(1, b"same", row(1, 0)).expect("first");
let direct_err = direct
Expand Down
Loading