Where I work, we are using MySQL in a scale-out configuration to handle our database needs.
That means, you write to a primary server, but reads generally go to a replica database further down in a replication tree.
A number of additional requirements that should not concern you as a developer make it a little bit more elaborate than a simple “primary and a number of replicas” configuration. But the gist of all that is:
- there is always a read-copy of the database very close to your application, latency wise
- there are always sufficient copies of the data around so that we can afford to run our databases on unraided local storage.
The nature of our databases is such, that we drown all data reads with sufficient memory, where ever that is possible. Our databases are Memory Engines, when it comes to reads.
I joke about that:
You, too, can be a successful database …
[Read more]