rqlite is a lightweight, open-source, distributed relational database written in Go, which uses SQLite as its storage engine. 7.6.0 improves access-control options, and also has official ARM and ARM64 builds for the first time.
Cross compiling for ARM was relatively straightforward. Once I installed the relevant C cross-compilers, invoking the Go tool chain wasn’t too difficult. That said, building the various rqlite releases is starting become toilsome, and it’s probably time to automate more of the build process.
Check out the latest releases, including for ARM, by visting the Releases page on GitHub. Docker images have also been released.
3 thoughts on “rqlite 7.6.0 released – now with ARM builds”
Seems like a promising product.
Looking forward to use it in my next project.
But where I can find the docs?
API examples are enough for most cases, but I want to know if it is possible to create multiple schemas or databases within a server?
If yes, how I can do it? and how rqlite handles them? creates multiple sqlite files (preferred way)? creates multiple databases inside one sqlite file (meh)? or what?
You can do all you want by issuing standard SQLite commands. How many SQLite files will result? That’s an implementation detail, and it’s not defined.
That’s good news. Maybe I can use ATTACH/DETACH commands for that purpose.
I have decided to go with multi-tenant architecture for a new project.
Each tenant will have a dedicated database.
Each database will have half a dozen of tables.
Each table stores a couple of hundreds of rows.
But one table in each database could grow bigger, maybe to tens of thousands of rows or even millions. There is no limit really (All tables will be well indexed, of course).
I don’t expect many tenants, maybe 20-30 thousands in next couple of years, mostly rarely active (maximum a few hundred CRUDS per day), and maybe 200-300 heavy tenants/databases between them with lots of CRUD operations. But it has the potential to grow faster than what I expect.
SQLite and PostgreSQL are the only options out there that have needed features for this project. And I’m not familiar with PostgreSQL right now so I decided to go with SQLite.
The only available to use SQLite library is synchronous (blocking) so I want to use SQLite-based servers. Here are some questions about rqlite:
1. Do rqlite use async architecture to handle concurrent CRUD operations?
2. Do rqlite have multiprocess architecture to fully use all server resources (all CPU cores)?
3. Do rqlite use WAL2 mode to handle concurrent writes?
4. Will attached databases sync over the cluster network?
5. How rqlite handles locks? See this link for some ideas:
P.S. Also, as a feature request, it would be great if we could choose the working database in HTTP API. A ‘Database: custom-db-name’ HTTP header would be great. Also a ‘In-Memory: true’ header can switch between in-memory database or on-disk database. This feature can turn rqlite to a great competitor against big players for most of projects out there.