Yaak Logo
Yaak
Feedback/Enabling SQLite WAL mode for improved performance on slow SSD

Enabling SQLite WAL mode for improved performance on slow SSD

Antonin ·2 months ago
Released to BetaImprovement

Hi

In my Linux machine sending a requests that responds in ≈50ms would take yaak about ≈5 seconds to respond.

After investigating, I found that it was coming from SQLite, my machine has a slow SSD and everytime a write is done, it’s slowing down the whole app. In my other machine that has yaak installed on a fast nvme ssd, the app was always pretty fast.

The SQLite app database is running in default journal_mode = DELETE with synchronous = FULL, meaning every commit does a full fsync if I understand well. When a request produces many rapid writes (e.g. the response timeline rows), each row has to wait for its own fsync, so the timeline appears row-by-row instead of all at once and everything slows down.

Enabling SQLite WAL mode makes the app about 10 times faster in my machine. I guess the benefit would be even bigger on machines that still use hdd.

I have a working demo that I did with the help of AI (I haven’t done a pull request because this seems out of scope according to CONTRIBUTING.md and I don’t know Rust), but you can have a look if you want to see how the potential fix was done → https://github.com/Arkounay/yaak/tree/feat/sqlite-wal-mode-setting

Here’s an example of the times with the current yaak version:

(1.7s) image

and same request with WAL mode on my machine (22ms) image

the longer the timeline is, the bigger is the benefit

Linux2026.4.0

Comments (18)

Sign in to leave a comment.

Very slow perfomance after last updatewas merged
Gregory SchierReleased to BetaFeatured

This is now available in 2026.5.0-beta.5!

pavulon

Nice! Seems to perform great, timeline matches what the server says.

The only tiny issue I still can see is the timer having a mind of its own:

image
Gregory Schier

Oh what? It keeps spinning even though the request finished?

pavulon

Yup

Gregory Schier

Working on a fix. Seems to be caused by the large upload body (I assume it’s 250mb?)

Gregory SchierPending Release
Antonin OP

nice! thanks :D

Gregory SchierNeeds Reproduction

Great find! Going to look into this.

Gregory Schier
Type to search feedback...