By what factor does the performance (read queries/sec) increase when a machine is added to a cluster of machines running either:
- a Bigtable-l开发者_JS百科ike database
- MySQL?
Google's research paper on Bigtable suggests that "near-linear" scaling is achieved can be achieved with Bigtable. This page here featuring MySQL's marketing jargon suggests that MySQL is capable of scaling linearly.
Where is the truth?
Having built and benchmarked several applications using VoltDB I consistently measure between 90% and 95% of additional transactional throughput as each new server is added to the cluster. So if an application is performing 100,000 transaction per second (TPS) on a single server, I measure 190,000 TPS on 2 servers, 280,000 TPS on 3 servers, and so on. At some point we expect the server to server networking to become a bottleneck but our largest cluster (30 servers) is still above 90%.
If you don't do that many writes to the database, MySQL
may be a good and easy solution, especially if coupled with memcached
in order to increase the read speed.
OTOH if you data is constantly changing, you should probably look somewhere else:
- Cassandra
- VoltDB
- Riak
- MongoDB
- CouchDB
- HBase
These systems have been designed to scale linearly with the number of computers added to the system. A full list is available here.
精彩评论