flâneur — a map of the web's best reading

Optimizing SQLite for servers

kerkour.com · 258 words · saved by 1 readers

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 few knobs, you can configure SQLite to reach ~8,300 writes / s and ~168,000 read / s concurrently, with 0 errors, on a ~40€ / m commodity virtual server with 4 vCPUs (details and code in the appendix). Let's say that your server application is making in average 8 database read queries per request, you could, in theory, handle ~21,000 requests per seconds, or ~1,814,300,000 requests per day, for ~40€ per month, bandwidth included, not bad! (In practice you may not be able to do that: the server's bandwidth will be the limiting factor) And this is before talking about tuning the garbage collector, caching and CDNs. For more number crunching, take a look at Expensify's article: Scalin

` prop, to ensure that we render an actual element instead of a Render a single element as the child so that we can forward the props onto that element. Did you forget to passthrough the `ref` to the actual DOM node? Internal Error. Please try again and contact support if the problem persists. mx-auto max-w-xl transform divide-y divide-gray-100 overflow-hidden rounded-xl bg-[var(--mdninja-background)] shadow-2xl ring-1 ring-gray-200 transition-all Almost finished... We need to confirm your email address to prevent spam. To complete the subscription process, please click the link in the email w

Explore this link on the map →

related reading