Skip to main content

SQLite

  • Group reads into one transaction. In autocommit mode, every query makes two file-lock calls and a stat of the database file. Wrap a group of reads in one transaction, or set PRAGMA locking_mode=EXCLUSIVE when a single process owns the database. Inside one transaction, point reads on Archil took 3 to 4 µs each, the same as on a local disk.
  • Batch writes into transactions. Inserting 1M rows in one transaction took 11 s, while 10,000 single-row transactions took 24 s with synchronous=FULL.
synchronous=NORMAL ran about 10x faster than FULL on Archil. In WAL mode, NORMAL is SQLite’s own recommendation for most applications: the database stays consistent, but the last transactions committed before a machine crash can roll back. Keep FULL if every committed transaction must survive a crash.

Prefer large sequential I/O

Large sequential I/O is a strength on Archil: cold sequential reads ran at about 1.2 GB/s from a single client. Where you can, prefer fewer, larger files and large read and write sizes.

Dependency installs

Installing dependencies directly on a disk works well: npm ci installed 598 packages in 7.6 s. Like a local file system, recently written files are staged on the client until an fsync or a background flush. When the installed files must be durable before you continue, run archil sync on the mount point. See Ensuring that data is persisted on shutdown.

Need help with your workload?

The Archil team works directly with application teams to tune performance for specific workloads. Email support@archil.com and we’ll help you get the most out of your disk.
For the full benchmark against Amazon EFS, see Solution Comparison.