mirror of
https://github.com/trailbaseio/trailbase.git
synced 2026-01-08 10:50:15 -06:00
Previously reader and writer channels were operating entirely independently, which yields the lowest overhead for pure read and pure write benchmarks. In mixed workloads like prod, however, this is not ideal since we're running into SQLite's own file-locking, which has more overhead than in-process locking. With this change, we use an RwLock to reduce congestion while still allowing parallel reads. Together with a low-overhead kanal channel, we see little to no regression for pure read and pure write benchmarks, while seeing about a 3x improvement for mixed workloads. We also move ACL checks for Create/Update queries to the writer SQLite connection, to reduce thrashing.
TrailBase Website & Documentation
This directory contains the https://trailbase.io site.