Engineering Blog

Blog posts tagged 'Performance'

Yan YuEngineering

Crowdsourcing Mobile Device Capabilities

Posted about 7 years ago
blog post · Mobile · Data · HTML5 · Performance · Optimization

Unlike desktop browsers, the capabilities of mobile browsers vary widely from phone to phone. This presents a number of challenges to large scale mobile web development. For example, what can be fit on a 128x96 low-end phone is obviously different from what can be fit on an iPhone or a Nokia N900 with an 800x480 screen. In addition, only about 50% of smartphones today support JavaScript let alone HTML5. Read more...

Robert JohnsonDirector, Software Engineering at Facebook

More Details on Today's Outage

Posted about 7 years ago
blog post · Infra · User Experience · Performance · Caching

Early today Facebook was down or unreachable for many of you for approximately 2.5 hours. This is the worst outage we’ve had in over four years, and we wanted to first of all apologize for it. We also wanted to provide much more technical detail on what happened and share one big lesson learned. Read more...

Scott MacVicarEngineering

HipHop for PHP: six months later

Posted about 7 years ago

It's been six months since we released HipHop and I wanted to share an update on its progress. In February we released 693,613 lines of source code which on average reduced our CPU usage here at Facebook by about 50%. Since February, the team has made HipHop another 1.8 times faster and all of that code is open source. We’ve also seen improvements to PHP itself with the additions to PHP's trunk in April being about 10% faster than 5.3. Read more...

Carlos BuenoFixer at Facebook

Internet Cartography

Posted about 7 years ago

A telegram from San Francisco to Hong Kong in 1901 must have taken many hops through British Empire cables to Europe, through the Middle East, and so on. London to New York was fast and direct. The vestiges of the Spanish and Portuguese Empires show up in the many links between South America, the Caribbean archipelago, and the Iberian peninsula. A cool thing is that you can measure these relative latencies yourself, using the present-day internet. If you run a website with a decent amount of worldwide traffic, you can use that traffic to map out how the internet responds with regards to you, and see how that matches with the gross structure of the 'net. I wrote about a cheap and cheerful way to generate this data last year, and the code has since been open-sourced as part of Yahoo's Boomerang measurement framework. Read more...

Changhao JiangEngineering at Facebook

BigPipe: Pipelining web pages for high performance

Posted about 8 years ago
blog post · Web · Compute · Optimization · JavaScript · Performance · User Experience

Site speed is one of the most critical company goals for Facebook. In 2009, we successfully made Facebook site twice as fast, which was blogged in this post. Several key innovations from our engineering team made this possible. In this blog post, I will describe one of the secret weapons we used called BigPipe that underlies this great technology achievement. BigPipe is a fundamental redesign of the dynamic web page serving system. The general idea is to decompose web pages into small chunks called pagelets, and pipeline them through several execution stages inside web servers and browsers. This is similar to the pipelining performed by most modern microprocessors: multiple instructions are pipelined through different execution units of the processor to achieve the best performance. Although BigPipe is a fundamental redesign of the existing web serving process, it does not require changing existing web browsers or servers; it is implemented entirely in PHP and JavaScript. Read more...

Keith AdamsEngineer at Facebook

The Life of a Typeahead Query

Posted about 8 years ago
blog post · Web · Infra · Data · Performance · User Experience · Backend · Graph · Testing

In fall of 2009, some of us at Facebook imagined a more interactive search experience, where high quality results would appear as the user typed. We summarized the vision in a blog post introducing our new search box. Making this system real for 400 million users has been challenging at every level of the software stack. On the front-end, code running in users' browsers must consume and render results quickly enough to not distract the user as they type. We set a strict goal for ourselves that the new typeahead can't be slower than the existing typeahead for finding your friends, so every millisecond delay matters. Despite these performance constraints, the UI cannot be too minimalist; each result needs enough contextual clues to convey its meaning and relevance. Because the new typeahead auto-selects the first result when you hit Enter in the search box, we need near-perfect relevance so that the first result is always the one you're looking for. To satisfy all these constraints, we designed an architecture composed of several different backend services that were optimized for specific types of results. Let's follow a session as the request leaves a user's browser and becomes a set of navigable results. Read more...

Jason SobelEngineer at Facebook

Making Facebook 2x Faster

Posted about 8 years ago

Everyone knows the internet is better when it's fast. At Facebook, we strive to make our site as responsive as possible; we've run experiments that prove users view more pages and get more value out of the site when it runs faster. Google and Microsoft presented similar conclusions for their properties at the 2009 O'Reilly Velocity Conference. So how do we go about making Facebook faster? The first thing we have to get right is a way to measure our progress. We want to optimize for users seeing pages as fast as possible so we look at the three main components that contribute to the performance of a page load: network time, generation time, and render time. Read more...

Haiping ZhaoSenior Server Engineer at Facebook
Chris PutnamEngineering at Facebook

Building a Better Photo Uploader

Posted about 8 years ago
blog post · Web · Photos · JavaScript · Security · Performance · User Experience

At Facebook, we're always looking for ways to make sharing more efficient. Today we're announcing a significant upgrade to our Photos product: a new and improved photo uploader that’s available for testing as a Facebook Prototype. Since Photos launched in 2005, the photo-uploading experience on Facebook has relied on the use of a third-party ActiveX control (and its sister Java applet). Over the years we have seen a growing number of complaints with this old uploader. In a recent poll, we discovered a significant percentage of users were unable to upload photos due to technical issues. Many more found it functional, but only just. That's when we resolved to build a modern replacement. We had the following goals for the new uploader:. Read more...

Yishan WongEngineering

Inviting you all to Hackathon

Posted about 8 years ago

As you might be aware, one of Facebook's oldest and greatest traditions is the Hackathon. Sometimes the best way to find out if an idea is good is to try it out, and that's part of what Hackathon lets us do. Read more...

Zizhuang YangEngineering

Every Millisecond Counts

Posted about 8 years ago

Site speed has always been an important factor in the development of Facebook, even as the site evolves over time to become more feature-rich and complex. As we grow beyond the 250 million user mark, every small change to the site causes a huge ripple, affecting throngs of web surfers and their experience on Facebook. My project this summer as an engineering intern on the Infrastructure team involved tackling this imposing fact by exploring data and finding out how various changes to fundamental parts of the user experience impacted and changed user behavior. Read more...

Designing the Facebook username land rush

Posted about 8 years ago
blog post · Web · Data · Caching · User Experience · Performance · Optimization · Testing

We recently hit a milestone of 50MM usernames a few weeks ago — in just over a month since we launched usernames on June 12. Ever since we launched usernames, we’ve had a lot of people express interest in understanding how we designed the system and prepared for this big event. In a recent post, my colleague Tom Cook wrote about the site reliability and infrastructure work that we did to ensure a smooth launch. As an extension to that post, I’ll discuss some specific application and system design issues here. Launching usernames to allow over 200 million (at the time — we’re now over 250 million) people to get a username at the same time presented some really interesting performance and site reliability challenges. The two main parts of the system that needed to scale were (1) the availability checker and (2) the username assigner. Since we were pre-generating suggestions for users, we needed to check availability of all the suggested names, which placed extra load on the availability checker. Read more...

Tom CookEngineering

Hammering Usernames

Posted about 8 years ago
blog post · Web · Infra · Compute · Performance · User Experience

Site Reliability Engineering (SRE) at Facebook is always under pressure to keep the site and all the moving pieces behind the scenes running while still delivering an excellent user experience. The recent launch of usernames to our 200 million active users on a single night at the exact same time was unique in its preparation and potential for trouble. Our product teams had evaluated the various options for enabling people to register for their name and decided upon a single first come, first serve registration window for every user. Although this was the most fair, it was difficult operationally because predicting the number of users that would show up at that time to claim a name was impossible. The Memcached infrastructure that runs behind every page on the site was partitioned and expanded to cope with users checking the availability of names. Read more...

Jonathan HsuEngineering

The Facebook Puzzle Conciseness Contest

Posted about 9 years ago
blog post · Culture · Compute · Performance

A big part of keeping everything humming at Facebook is making sure everyone occasionally has fun. In addition to the hackathons we hold internally, we also sponsor programming contests to let external programmers to show their stuff. This contest revolves around the theme of how low can you go; typically a complicated program has sophisticated logic to ensure maximum performance. But what if we turned on the time machine and went back to 1980 when every byte counted? How much performance can you pack per byte when every byte counts?. Read more...

Kannan MuthukkaruppanTechnical Lead at Facebook

XHProfLive: Continuous function-level performance stats from production

Posted about 9 years ago
blog post · Infra · PHP · Languages · Performance

The Facebook web tier serves billions of PHP requests every day across thousands of servers. Since new code or other changes to the site get pushed out frequently, it is critical to have near real-time performance data that is both representative of production traffic and rich in its ability to help pinpoint regressions down to specific functional areas. This blog post talks about our solution to this problem - a lightweight but powerful tool called XHProfLive. Read more...

Chris PiroEngineering

Chat Stability and Scalability

Posted about 9 years ago
blog post · Web · Data · Compute · Languages · Chat · Messages · Performance · Optimization · User Experience

Almost ten months ago we launched Facebook Chat to 70 million users. We ventured into a lot of new territories with this product: not only were there tricky web design and product issues, we needed to develop and launch a trio of new backend services to support all of Chat's functionality. Read more...

Robert JohnsonDirector, Software Engineering at Facebook

Facebook's Scribe technology now open source

Posted about 9 years ago
blog post · Web · Data · Infra · Open Source · Performance · Compute · Development Tools

Here at Facebook, we're constantly facing scaling challanges because of our enormous growth. One particular problem we encountered a couple of years ago was collection of data from our servers. We were collecting a few billion messages a day (which seemed like a lot at the time) for everything from access logs to performance statistics to actions that went to News Feed. We used a variety of different technologies for the different use cases, and all of them were bursting at the seams. We decided to build a unified system (called Scribe) to handle all of these cases, and do it in a way that would scale with Facebook's growth. Read more...

Pedram KeyaniEngineering Director at Facebook

The All-Night Hackathon Is Back!

Posted about 9 years ago
blog post · Culture · Web · Mobile · Hacking · Performance · User Experience · Chat

Every few months, our engineers unleash their talents in one epic, all-night coding session. These are the Facebook Hackathons. They start with takeout Chinese food around 8 p.m. and end with a dawn breakfast at any pancake house or donut shop that will have us. In between, dozens of Facebook engineers create working prototypes of projects that they always wanted to build but couldn’t ever pursue during their regular hours. Hackathon XI – also known as The Presidential Hackathon – will take place the evening of Wednesday, Nov. 5. Read more...

Jason SobelEngineer at Facebook

Scaling Out

Posted about 9 years ago
blog post · Data · Infra · Caching · Performance

I joined Facebook in April 2007 and, after getting settled over the course of a few weeks, my manager Robert Johnson approached me. We talked for a while but the conversation boiled down to: Bobby: "So, Jason, we're going to open a new datacenter in Virginia by 2008. Do you think you can help?" Me: "Uh.... yes?" Bobby: "Great!" My first project at Facebook was a tad more involved then I was expecting, but I think that is one reason why we have such a great engineering organization; we have a lot of hard problems to solve and everyone here is excited to jump in and tackle them. I set out to really understand why we were building a new datacenter and what problems we had to overcome to make it work. Read more...

Eugene LetuchyEngineering

Facebook Chat

Posted about 10 years ago
blog post · Web · Infra · Chat · Messages · Performance · User Experience · Development Tools

One of the things I like most about working at Facebook is the ability to launch products that are (almost) immediately used by millions of people. Unlike a three-guys-in-a-garage startup, we don't have the luxury of scaling out infrastructure to keep pace with user growth; when your feature's userbase will go from 0 to 70 million practically overnight, scalability has to be baked in from the start. The project I'm currently working on, Facebook Chat, offered a nice set of software engineering challenges:. Read more...

Keep Updated

Stay up-to-date via RSS with the latest open source project releases from Facebook, news from our Engineering teams, and upcoming events.

Subscribe
Facebook © 2017