Commit graph

7 commits

Author SHA1 Message Date
Sebastian Jeltsch
e0ad4a898c Extend trailbase-sqlites execution model to allow for parallel reads. This reduces the latency long-tail for slow reads.
Note that this complicates the APIs, since it pushes the responsibility
of declaring a query a read or write to the user to then be scheduled
appropriately.

Add `.(read_|)query_row_f` APIs similar to rusqlites
`conn.query_row` accepting a `|row| -> Result<T>` to reduce the use of
`Row` and `Rows`.

Make benchmarks more isolated by not sharing a DB across runs
accumulating writes.
2025-04-15 12:15:40 +02:00
Sebastian Jeltsch
9e040d34f6 Make chat-room benchmark more realistic: hammer server in parallel. 2025-04-13 12:28:20 +02:00
Sebastian Jeltsch
914a9b3f03 Make query mix benchmark's slow queries slower and group benchmarks with throughput as requested. 2025-04-13 11:12:08 +02:00
Sebastian Jeltsch
844ccfa80c Add a mixed query benchmark to trailbase-sqlite and make all benchmarks concurrently hammer the connection. 2025-04-12 15:23:17 +02:00
Sebastian Jeltsch
faa1712601 Add read benchmarks to trailbase-sqlite. 2025-04-12 13:09:22 +02:00
Sebastian Jeltsch
d0d60857eb Add a shared and TL/pool SQLite connection implementation to the benchmarks as a mere reference.
These implementations are dangerous since despite being behind an async
API, they block on I/O and can thus clog up the tokio runtime. Which is
fine if SQLite is all you do but really bad if other, independent work
gets stalled.
2025-04-12 11:56:47 +02:00
Sebastian Jeltsch
458adcf9ec Add a benchmark scaffold to sqlite. 2025-04-12 10:35:55 +02:00