Evernote Tech Blog

The Care and Feeding of Elephants

Author Archives: Dave Engberg

Evernote and POODLE

Yesterday, Google researchers announced a vulnerability in version 3.0 of the SSL protocol. Google’s advanced acronym-generation algorithm dubbed this issue POODLE (for “Padding Oracle On Downgraded Legacy Encryption”). Even though the SSL 3.0 protocol has been superseded by secure alternatives … Continue reading

17 Comments

Stages of Denial

At 2:33pm on Tuesday afternoon (Pacific Time), an attacker began a Distributed Denial of Service (DDoS) against Evernote’s servers. At normal times, Evernote receives around 0.4 Gbps of incoming traffic and transmits out around 1.2 Gbps. We have a diverse … Continue reading

6 Comments

Securing Impala for analysts

We’ve previously described the Hadoop/Hive data warehouse we built in 2012 to store and process the HTTP access logs (450M records/day) and structured application event logs (170M events/day) that are generated by our service. This setup is still working well for us, … Continue reading

2 Comments

Synchronization Speedupification

Memory Lane When we designed our synchronization protocol way back in 2007, we wanted to make sure that a client could use a minimal number of network requests to find all of the content in the user’s account, or only of the relevant changes … Continue reading

5 Comments

Billions (of API requests) Served

Evernote stores hundreds of terabytes of online data in order to preserve our users’ memories. Over the last four years, 36.8 million people have created Evernote accounts, and together have uploaded more than 1.2 billion notes with more than 2 billion attachments. … Continue reading

6 Comments

Password Safety Reminder

Last week, our systems detected a sequence of login attempts to Evernote from a single web browser at IP addresses that appeared to originate from Italy. Each attempt sent a unique username and password combination. Some of these usernames were … Continue reading

12 Comments

Outage Details

Tonight, our planned 15-20 minute service window turned into a full two hour outage. We regret the problems that this may have caused for some of you and wanted to provide a little more technical detail here. As we mentioned … Continue reading

8 Comments

Shard Boiled

In our architectural overview post last May, we gave a high-level description of the “shard” servers we use for both data storage and application logic. Since Evernote is a personal memory service rather than a social network, we can easily … Continue reading

27 Comments

WhySQL?

When we describe our overall service architecture to smart people who have been involved in other big services, the two most common questions are: Why is your structured data stored in SQL databases instead of something like [big-data, web-scale, No-SQL … Continue reading

34 Comments

Even Grittier Details on Evernote’s Indexing System

Alex’s earlier article on Evernote’s image recognition component touched on a lot of its service-level functionality — what it is, how it works, and what it provides in relation to the Evernote platform as a whole. In this post, I’ll … Continue reading

Tagged , , , , , , , , , , , | 4 Comments