Skip to content

# Tag: sqlite

## Some observations on MySQL to sqlite migration & compatibility

MySQL SQL sqlite January 30, 2017January 30, 2017

I’m experimenting with sqlite as backend database for orchestrator. While `orchestrator` manages MySQL replication topologies, it also uses MySQL as backend. For some deployments, and I’m looking into such one, having MySQL as backend is a considerable overhead.

This sent me to the route of looking into a self contained `orchestrator` binary + backend DB. I would have `orchestrator` spawn up its own backend database instead of connecting to an external one.

### Why even relational?

Can’t `orchestrator` just use a key-value backend?

Maybe it could. But frankly I enjoy the power of relational databases, and the versatility they offer has proven itself multiple times with `orchestrator`, being able to answer interesting, new, complex questions about one’s topology by crafting SQL queries.

Moreover, `orchestrator` is already heavily invested in the relational model. At this time, replacing all SQL queries with key-value reads seems to me as a significant investment in time and risk. So I was looking for a relational, SQL accessible embeddable database for `orchestrator`.

### Why sqlite?

I am in particular looking at two options: sqlite (via the go-sqlite3 binding) and TiDB. sqlite does not need much introduction, and I’ll just say it’s embeddable within the golang-built binary. Continue reading » “Some observations on MySQL to sqlite migration & compatibility”