Scale a high-traffic MySQL setup by splitting reads across replica servers while all writes go to one primary.
Add automatic failover so traffic reroutes to healthy MySQL servers if one goes offline, without manual steps.
Reduce database connection overhead in a web app by enabling Atlas connection pooling between the app and MySQL.
| qihoo360/atlas | alibaba/alios-things | open-sdr/openwifi | |
|---|---|---|---|
| Stars | 4,629 | 4,621 | 4,619 |
| Language | C | C | C |
| Setup difficulty | hard | hard | hard |
| Complexity | 4/5 | 4/5 | 5/5 |
| Audience | ops devops | developer | researcher |
Figures from each repo's GitHub metadata at analysis time.
Requires an existing MySQL primary and replica setup, Atlas is compiled from C source with its own build dependencies.
Atlas is a piece of software that sits between your application and your MySQL database and acts as a traffic manager. MySQL is one of the most widely used databases for web applications, and Atlas is designed to help large-scale deployments handle that database traffic more reliably and efficiently. The project was built and is maintained by the infrastructure team at Qihoo 360, a Chinese technology company, and has been used to handle billions of database requests in their own systems. The main thing Atlas does is separate read and write operations and send them to different database servers. Most applications read data far more often than they write it, so this splitting lets you run multiple copies of a database that handle reads while only one primary server handles writes. Atlas manages distributing those requests automatically. It also handles failover, meaning if one of the database servers goes down, Atlas detects this and stops sending traffic to it without requiring manual intervention. Other features include connection pooling, which reuses existing connections to the database rather than opening a new one for each request, and IP filtering, which restricts which clients can connect. Database administrators can take backend servers in or out of rotation without stopping the service, and the configuration can be reloaded without restarting Atlas. Atlas was built on top of an older project called MySQL-Proxy but rewrote the core network and threading logic in C for better performance, replacing the original Lua-based implementation. The project includes a wiki with installation guides, architecture diagrams, and a frequently asked questions section for common operational scenarios.
A MySQL proxy from Qihoo 360 that automatically routes read queries to replica servers and write queries to a primary, with connection pooling, automatic failover, and zero-downtime configuration reload.
Mainly C. The stack also includes C, MySQL.
Setup difficulty is rated hard, with roughly 1h+ to a first successful run.
Mainly ops devops.
This repo across BitVibe Labs
Verify against the repo before relying on details.