
Evernote Architecture - 9 Million Users and 150 Million Requests a Day - alisson
http://highscalability.com/blog/2011/5/23/evernote-architecture-9-million-users-and-150-million-reques.html
======
mosburger
Cool to see that they use Stripes as their Java web framework. Stripes doesn't
get anywhere near the attention/respect it deserves. It's definitely the
simplest, most easy-to-use framework in the Java space IMO.

~~~
beck5
I think its just nice to see java mentioned in a positive light on HN

------
rbranson
I love how successful architectures like this really cut down a business to
it's core offering -- which in Evernote's case, is object storage.

------
dctoedt
I may have missed this, but I didn't see anything indicating Evernote has any
off-site redundancy, in case of earthquake disruption. The Evernote
"Architectural Digest" blog entry linked in the OP says "All of these servers
are racked in a pair of dedicated cages at our data center in Santa Clara,
California." (I've been a paid Evernote subscriber for a couple of years or
so.)

~~~
thezilch
_Nightly backups copies data over a dedicated 1Gbps link to a secondary data
center._

------
peterwwillis
_User data is stored on four different enterprise drives across two different
physical servers. Nightly backups copies data over a dedicated 1Gbps link to a
secondary data center._ This kinda scares me. Is this a real backup going to
removable storage stored in a secure backup facility? If it's being synced via
a dedicated line, why is it nightly instead of continuous? And if those four
drives are the only source for production user data, isn't it likely a storm
of writes could cause a severe bottleneck? (assuming SCSI drives, ~200 ops * 4
= 800 ops total, or with SSDs, 2400 ops... will they ever write more than 2400
times a second?)

Also, an extra layer (memcached) in front of mysql for caching requests could
save them lots of nodes if reads are dragging down performance/requiring more
nodes to spread read load.

~~~
thezilch
From the article...

Evernote _shard their 9.5 million total users across 90 shards_ , where each
shard is represented by two of the four or four drives in a mirrored RAID.

Also, they are using _Ehcache_ as their object-caching layer, which we can
assume is their alternative to memcached. The choice between the two probably
coming down to sticking to their Java stack.

I'm sure we'll here more in the _promise of future articles focusing more on
individual subsystems_ , as the article is pretty shallow in connecting the
dots.

------
dsl
150 million requests per day is just under 2 requests a second... 100k
users/shard is also hardly impressive even if you account for 2x or 3x
replication.

I hate to sound like a dick, but anyone who has dealt with large scale web
apps would consider this a starting point, not worthy of a architecture
presentation.

EDIT: Ah ha. Having never used Evernote before, they didn't make it very clear
that they are essentially trying to build a SAN. I assumed they were storing
plain text notes like stickies.

~~~
ddemchuk
Ummmmm...there are 86400 seconds in a day, so that's just under TWO THOUSAND
requests a second...significantly more than what you mentioned.

~~~
dsl
You are right. 2k requests per second is still not much.

~~~
defen
> 2k requests per second is still not much.

That's a completely meaningless statement if you don't specify what the
requests do, and the resources available to make it happen.

