6 ms·
The Abandoned Facebook Tech That Now Helps Power Apple
- cmelbye 12y agoDoes anyone know what Apple uses Cassandra for?
- fjh 12y agoiPhone notifications, as far as I know.
- itsmeduncan 12y agoApple uses Riak for this.
- threeseed 12y agoIIRC everything in iCloud is stored in Cassandra and is one of the bigger clusters around.
- exhilaration 12y agoWhat are Cassandra's advantages over MongoDB? Has anyone switched between the two?
- ptnapoleon 12y agoHere are two blog posts I was able to find from companies who switched Mongo -> Cassandra: http://www.fullcontact.com/blog/mongo-to-cassandra-migration/ http://www.fullcontact.com/blog/mongo-to-cassandra-migration... http://relistan.com/cassandra-vs-mongo/ http://relistan.com/cassandra-vs-mongo/ The main selling points for Cassandra over Mongo are that it scales to more machines easier for handling larger workloads, and the write performance is better.
- bdeggleston 12y agoI was involved in a migration from MongoDB to Cassandra at my last job. We switched to Cassandra because of the control it offers over how your data is laid out on disk, and it's ability to not totally fall apart under load (in fact performing really well). It's also a lot easier to deal from an ops perspective. I did a post about the migration here: http://blakeeggleston.com/migrating-databases-with-zero-downtime.html http://blakeeggleston.com/migrating-databases-with-zero-down...
- threeseed 12y agoYes. I have switched back and forth between them before. The main advantage of Cassandra for me is that it is multi master. This makes it perfect for the cloud where you can trivially scale horizontally whether in the same AZ, across multiple or even across entire DCs with just a config change. It really is a dream to deploy and manage. MongoDB is a document store and so if you data is structured that way it is unrivalled. But if isn't (more than likely) than it will suffer greatly as you start to increase the number of joins.
- cbsmith 12y ago> Has anyone switched between the two? Just anyone who has run in to scaling problems with MongoDB. ;-)
- deleted 12y ago[deleted]
- Artemis2 12y agoNot a word about Apache. That's a pretty bad article (with a click-bait title).
- cbsmith 12y agoYou can't blame publishers for going with click-bait titles, particularly if the article actually delivers what the title promises. As for not mentioning Apache.... That is bad. I'm not sure what they could put in that article that would speak to their audience though.
- meepmorp 12y agoFor the ignorant and lazy (I, if nobody else), could someone explain why Facebook ditched Cassandra?
- threeseed 12y agoBecause Facebook built a whole new Messages feature that was supposed to be email and internal messaging. Because Cassandra is designed to be eventually consistent it really wasn't suited for this use case.
- sigy 12y agoActually, it is designed to have tunable consistency. You can have immediate (full) consistency if you choose. This is a common misconception. In practice, CAP is about trade-offs, as in any design of scale.
- mallipeddi 12y agoTuning consistency levels for your requests (R/W/N values) can only guarantee read-after-write consistency at best. It doesn't guarantee strong consistency like what HBase provides.
- cbsmith 12y agoHuh? Can you describe a scenario that you couldn't implement with tunable consistency levels? Mostly the limitations people come up with with Cassandra are around cross-row ACID, which if you really need it you can do with LWT, though in practice the better solution tends to be to just denormalize in to one row and/or NOT actually require cross-row ACID. It generally isn't what you really need anyway. Most businesses don't really shut down just because they can't achieve consistency.
- mallipeddi 12y agoSimple use-case: you want to maintain a counter. In Cassandra even if you tune the consistency levels (set R+W>N), there's no way to correctly implement a conditional update. To elaborate further, you could successfully increment the counter in some nodes but fail on others and don't reach quorum (partial write). The next time you do read-repair, it's going to do LWW and propagate that update everywhere else. Meanwhile you think it has failed, and reissue the increment once again and so you've incremented twice. Alternatively you could have 2 competing increments racing each other and one of them wins and the other loses due to LWW (and you've missed 1 count). This is trivial to implement correctly in HBase since it offers strong consistency. In practice, Cassandra gets around this issue by implementing a custom CRDT for counters. But CRDTs don't exist for everything and in general it's not trivial to get things right. I'm not arguing Cassandra is bad, but it's a misconception that you can tune the consistency levels and somehow get Cassandra to behave like a strongly consistent store.
- tylerlh 12y agoThis was a pretty poorly written article. Lots of name dropping with very little homework done.
- cbsmith 12y agoIt's less focused on the technology and more on the business and the technical trends, but I didn't find it poorly written. Seems informative about what intends to be informative about.
- canadev 12y agoSo, I'm an application developer, for the most part. I write stuff and I don't know a whole lot about databases other than how to create some tables/collections, do some basic indexing, and read the slow query log. Even running the explain commands, I have to spend half a day reading the docs and then I've forgotten everything after a few weeks. I want to know: Can someone tell me how/where to focus my efforts to learn more? In my day job, I use mostly MongoDB these days, but also some MySQL. I have a few resources that I'm aware of: - http://aphyr.com/tags/Jepsen http://aphyr.com/tags/Jepsen - Have browsed this and found it interesting. - MySQL reference manual http://dev.mysql.com/doc/#manual http://dev.mysql.com/doc/#manual - MongoDB Manual docs.mongodb.org/manual/ - High Performance MySQL - I purchased this book but never got past the first chapter. Not to say that I can't... - use-the-index-luke.com/ - Rarely read this, but have given it a half-hearted start from time to time. - http://www.mysqlperformanceblog.com/ http://www.mysqlperformanceblog.com/ - ditto I don't know when to use a relational database and when to use NoSQL. I don't know the differences between the various NoSQL databases. I don't know the ins-and-outs of any of the systems and I don't know how to determine what path to go for high availability, geo-distribution, replication, etc. I find it all very overwhelming and would like to learn more. I'd like to be able to pull plugs in things and see my systems stay up (which, I'm sure would require intimate knowledge of at least one system). Does anybody have any suggestions? How valuable do you think this stuff is?
- leeoniya 12y agoi dont have much experience with NoSQL, but the typical use is for document storage where structures can have varying levels of depth and differing schemas or different schema versions. personally, i think a lot of the NoSQL benefits are hype for most use-cases. relational databases will get you very far when used correctly. a good method of learning is to use some really large dataset and come up with some questions you want answered about the set, then write sql to get that information out. if your queries take a long time, begin indexing and looking at how the queries can be rewritten to return results faster. i cannot recommend a good, large interconnected/relational data source, but something like zipcode databases [1] can get you started. you can also play with geo-spatial indexing to find zipcodes within x miles of each other. [2] [1] http://download.geonames.org/export/zip/ http://download.geonames.org/export/zip/ [2] http://www.mysqlperformanceblog.com/2013/10/21/using-the-new-spatial-functions-in-mysql-5-6-for-geo-enabled-applications/ http://www.mysqlperformanceblog.com/2013/10/21/using-the-new...
- lobster_johnson 12y agoAnyone using Cassandra as a primary store, as opposed to something for optimized lookup or similar?
- cbsmith 12y agoLived and died it for over a year. Contemplating shifting over to it again.
- nrh 12y agoWe use it pretty extensively at Spotify. Google will turn up a handful of public talks we've given about it.
- ptnapoleon 12y agoNetflix uses Cassandra as their primary store.