

The Abandoned Facebook Tech That Now Helps Power Apple - ycombi42
http://www.wired.com/2014/08/datastax/

======
Artemis2
Not a word about Apache. That's a pretty bad article (with a click-bait
title).

~~~
cbsmith
You 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
For the ignorant and lazy (I, if nobody else), could someone explain why
Facebook ditched Cassandra?

~~~
dlg
At the time Facebook was building messages, Cassandra was still pretty
immature/buggy (it's very solid in my experience nowadays).

Moreover, FB needed a lot of people who knew the tools. They acqui-hired a
team of HBase experts. In 2010 I would have chosen HBase over Cassandra for
what they were doing. In 2014, I'd choose C*. But as always, it depends on
your application and what you know (or can hire for).

Cassandra has tunable consistency. A lot of people just think "eventually
consistent" but it really lets you make tradeoffs yourself about performance,
consistency, etc. Plus, the way they do read repair, etc even at CL==ONE makes
it a lot better for messaging systems than you'd guess. I'm using it
successfully with most stuff at One.

~~~
lclarkmichalek
C*?

~~~
bdeggleston
C* is short for Cassandra

------
canadev
So, 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?

~~~
nogridbag
The book "Seven Databases in Seven Weeks" may be a good start. It may not
answer all of your questions, but it does a good job summarizing various types
of databases. Honestly you can read through it in a day or two - I don't think
there's much need to install the DB's and do the exercises unless you're
looking to explore a certain DB in more detail.

I originally skipped over the first chapter on Postgres but went back and read
it and learned a few things (too bad there's no mention of the recently added
json and jsonb data types).

------
tylerlh
This was a pretty poorly written article. Lots of name dropping with very
little homework done.

~~~
cbsmith
It'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.

------
cmelbye
Does anyone know what Apple uses Cassandra for?

~~~
fjh
iPhone notifications, as far as I know.

~~~
itsmeduncan
Apple uses Riak for this.

~~~
amalter
Not sure why this was downvoted. This was the story out of Basho last I heard.
(Well, lot's of hints like "Some fruit company you may have heard of uses it
like this").

Perhaps this is now out of date?

~~~
cbsmith
Yup. Out of date.

------
lobster_johnson
Anyone using Cassandra as a _primary_ store, as opposed to something for
optimized lookup or similar?

~~~
nrh
We use it pretty extensively at Spotify. Google will turn up a handful of
public talks we've given about it.

------
exhilaration
What are Cassandra's advantages over MongoDB? Has anyone switched between the
two?

~~~
bdeggleston
I 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-down...](http://blakeeggleston.com/migrating-databases-
with-zero-downtime.html)

