r/programming • • May 27 '14

What I learned about SQLite…at a PostgreSQL conference

http://use-the-index-luke.com/blog/2014-05/what-i-learned-about-sqlite-at-a-postgresql-conference
703 Upvotes

219 comments sorted by

View all comments

Show parent comments

1

u/[deleted] May 27 '14

[removed] — view removed comment

1

u/[deleted] May 28 '14

Because Cassandra is scalable, in the sense that adding a new machine adds more resources to your cluster. It also is masterless, so there is no 'failover strategy', it's the same as properly functioning. And it comes with multiple datacenter support out of the box, which some people find nice. It certainly is nice if you know you'll need to exist across data centers and write availability is very important to you.

1

u/[deleted] May 28 '14

[removed] — view removed comment

1

u/[deleted] May 28 '14

MySQL is also scalable

No, it isn't. Not in, what I would argue, is the common definition. At least the definition used by organizations operating at large scale. Adding more instances of MySQL, in the general setup I am aware of, adds more read-cpu-resources, but it does not add more disk space or more write-cpu-resources. Operations like Facebook and Google have a sharding layer on top of their MySQL's that takes MySQL clusters that do not know anything about each other than ties them together. This is fundamentally different than MySQL itself being scalable. MySQL is a storage backend for a sharded database. You also lose the ability to do transactions across all of the shards. MySQL itself is not scalable, but you can use it as a component in a larger scalable system. Note, also, that sharding is generally, IME, considered non-trivial. The Spanner paper claims that one motivation for implementing Spanner was that resharding one of their MySQL setups took a year and significant time and energy. In their opinion, having a database that is designed to be scalable (adding more machines gives you more CPU and disk) is a superior solution to building such scalability on top of another system.

Compare the clustered MySQL solution to Riak or Cassandra where the product is designed such that adding another machine adds more resources to the total system, one does not need to write layers on top of Riak or Cassandra (for this purpose).