mirror of
https://github.com/tursodatabase/limbo.git
synced 2025-08-04 18:18:03 +00:00
![]() Beep boop. What happened you ask? I removed the dumb balancing algorithm I implemented in favor of SQLite's implementation based on B*Tree[1] where a page is 2/3 full instead of 1/2. It also tries to balance a page by taking a maximum 3 pages and distributing cells evenly between them. I've made some changes that are somewhat related: * Moved most operations on pages out of BTreeCursor because those operations are based on a page, not on a cursor, and it makes it easier to test. * Fixed `write_u16` and `read_u16` cases that didn't need a implicit offset calculation. Added: `write_u16_no_offset` and `read_u16_no_offset` to counter this. * Added some tests with fuzz testing too. * Fixed some important actions like: `compute_free_space`, `defragment_page` and `drop_cell`. [1] https://dl.acm.org/doi/10.1145/356770.356776 Closes #968 |
||
---|---|---|
.. | ||
btree.rs | ||
buffer_pool.rs | ||
database.rs | ||
mod.rs | ||
page_cache.rs | ||
pager.rs | ||
sqlite3_ondisk.rs | ||
wal.rs |