I've been writing serverside SQLite applications for several years now and I still picked things up from this article, which is extremely good. https://kerkour.com/sqlite-for-servers
Optimizing SQLite for servers

SQLite is often misconceived as a "toy database", only good for mobile applications and embedded systems because it's default configuration is optimized for embedded use cases, so most people trying it will encounter poor performances and the dreaded SQLITE_BUSY error. But what if I told you that by tuning a

Sylvain Kerkour
@tqbf I learned a lot from that post too. Adding LiteFS on top seems to change a lot of the performance characteristics though. I want Ben Johnson to write a similar post for sqlite+LiteFS.
@bento Yeah I got the post from your code. :)
@tqbf "The narrative pushed by cloud providers that we have to over-engineer every piece of software has to die!" Hear! Hear!

@tqbf
>*The problem is that by upgrading a transaction after it has started, SQLite will immediately return a SQLITE_BUSY error without respecting the busy_timeout previously mentioned, if the database is already locked by another connection.*

O dang. TIL. I've managed to avoid this by accident in my past uses by simply single-threading everything (it was MORE than fast enough), but that's very good to learn about.

@tqbf sounds interesting and would love to read! But I just get the error message "Bot detected and blocked." when clicking the link 😕
@tqbf that reminds me we should experiment with the cache size pragma for Corrosion (and make it configurable).