Organisationsmirageirminpull/2390Build History

Build History for pull/2390

Builds (10)
Formatting
88e929
Formatting
2f5ec2
Fix kinded_key API for inline contents The kinded_key type changed to support inline contents: - `Contents of key * metadata` (was `Contents of key`) - `Contents_inlined of string * metadata` (new) - `Node of key * key list` (was `Node of key`) This commit fixes all call sites to use the new tuple format: - save_tree now returns correct kinded_key with metadata - Store.key returns full Tree.kinded_key - Pattern matches updated in examples and tests - stat.t output updated for Inode_v3 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
96f246
Fix Pending_flush error on Repo.close Add flush before close in Repo.close for read-write stores. Previously, direct node operations that didn't go through batch() could leave unflushed data, causing close to fail with Pending_flush. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
b8486d
Add storage impact analysis to inline benchmark - Add bench_inline_storage.gp gnuplot script for storage visualization - Add generate_data.sh to parse CSV output into gnuplot data files - Add 'make bench-inline' target to run benchmarks and generate plots - Update README with storage impact documentation and quick start Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
5dbb83
Formatting
d9ea40
Add benchmark documentation and visualization - Add README.md with usage instructions for all benchmark commands - Add gnuplot scripts for generating comparison charts - Add sample data file and generated PNG plots Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
b344b2
Change default inlining threshold from 16 to 48 bytes Benchmarks across multiple size distributions (zipfian, log-normal, bimodal) showed that 48 bytes provides better read latency improvement than 16 bytes across most workloads. Changes: - Update default inline_contents_max_bytes from 16 to 48 - Make threshold configurable via set_inline_contents_max_bytes - Add get_inline_contents_max_bytes to query current threshold - Add 'optimize' command to benchmark for threshold tuning - Update test expectations for new threshold Benchmark results showed: - zipfian-steep: p99 latency 139µs -> 84µs at threshold=48 - zipfian-small: p99 latency 166µs -> 108µs at threshold=48 - log-normal-small: p99 latency 229µs -> 111µs at threshold=48 - mostly-small: p99 latency 162µs -> 87µs at threshold=48 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
78d22a
Unify Contents_inlined_* variants into Contents_inlined Replace all numbered variants (Contents_inlined_3, Contents_inlined_5, Contents_inlined__1, etc.) with a single Contents_inlined name. OCaml's structural typing for polymorphic variants distinguishes them by payload type, so the same name works correctly across different contexts (unit markers, contents+metadata values, keys, hashes). Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
f64840
Implement inline contents for small values This implements the core inline contents feature, allowing small content values (< 16 bytes serialized) to be stored directly within node entries rather than as separate pack file entries. Key changes: Core Irmin: - Add `Contents_inlined` variant to node value type - Add `Contents_inlined_3` to tree destruct type - Extend Tree.of_contents to inline small values when enabled - Update node interfaces and implementations Irmin-pack: - Add Inode_v3_root ('S') and Inode_v3_nonroot ('T') magic bytes - Add Contents_inlined_value to inode encoding - Update GC worker, snapshot, and traversal to handle inlined contents - Update checks and integrity verification Other: - Update irmin-git, irmin-graphql, irmin-tezos for new node value type - Update irmin-pack-tools (tezos_explorer) for new entry kinds - Update tests to handle inlined contents in assertions Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
d7cb84