Engineering Blog

Blog posts tagged 'Infra'

Lachlan MulcahyEngineering

Windex: Automation for database provisioning

Posted about 5 years ago
blog post · Data · Infra · Production Engineering · Storage

Windex was originally developed to wipe data from hosts coming out of production, reinstall everything from the OS through to MySQL, and then configure them so they could be placed back into the spares pool all shiny and new. Now, Windex has expanded its role to cover all provisioning of MySQL DB hosts, whether they are freshly racked and set up by our site operations team or taken out of production for an offline repair like RAM replacement. Read more...

Ragavan SrinivasanEngineering at Facebook

Introducing the Facebook for Android Beta Testing Program

Posted about 5 years ago
blog post · Mobile · Infra · Android · Testing · Performance · Platform

Performance and reliability are top priorities across Android, but when we marry the platform's diversity of devices and OS versions with Facebook scale, the ability to test quality across experiences can become a challenge. Beginning today, we are announcing a beta program for Facebook for Android. This new tool will help us get performance data and feedback from more people ahead of release across a wider range of devices and versions of Android. The ultimate goal of the program is to release updates to Facebook for Android that are more reliable and better performing. Read more...

Mark MarchukovEngineering

TAO: The power of the graph

Posted about 5 years ago
blog post · Data · Infra · Caching · Production Engineering

Facebook puts an extremely demanding workload on its data backend. Every time any one of over a billion active users visits Facebook through a desktop browser or on a mobile device, they are presented with hundreds of pieces of information from the social graph. Users see News Feed stories; comments, likes, and shares for those stories; photos and check-ins from their friends -- the list goes on. The high degree of output customization, combined with a high update rate of a typical user’s News Feed, makes it impossible to generate the views presented to users ahead of time. Thus, the data set must be retrieved and rendered on the fly in a few hundred milliseconds. Read more...

Laurent DemaillySoftware engineer at Facebook

Wormhole pub/sub system: Moving data through space and time

Posted about 5 years ago
blog post · Data · Infra · Production Engineering · Caching

Over the last couple of years, we have built and deployed a reliable publish-subscribe system called Wormhole. Wormhole has become a critical part of Facebook's software infrastructure. At a high level, Wormhole propagates changes issued in one system to all systems that need to reflect those changes – within and across data centers. Read more...

Paul SaabEngineering at Facebook

Adding :face: to every IP: Celebrating IPv6's one-year anniversary

Posted about 5 years ago

One year ago, Facebook joined several other major Internet companies to adopt IPv6 in support of the World IPv6 Launch. This was a particularly big milestone for the Internet because without IPv6, the number of people and devices connecting to the Internet cannot continue to grow. By creating new addresses, IPv6 is helping us keep Facebook (and the Internet) fast, responsive, and reliable. Read more...

Wez FurlongEngineering

Watchman: Faster builds with large source trees

Posted about 5 years ago
blog post · Infra · Performance

Like with many modern and complex web applications, much of the code behind Facebook goes through a series of build steps to transform it from PHP source code and assets into the running application. These steps include identifying where source code classes live, mapping web controller paths, spriting images, using CSS and JavaScript to package it up, and more. Some of these steps are only necessary when we're prepping for one of our twice-daily release pushes, but the rest are necessary for our engineers to have a functioning development environment. Read more...

Stoyan StefanovEngineer at Facebook

Speeding up the Activity social plugin

Posted about 5 years ago
blog post · Web · Infra · Platform · Performance · Optimization · Testing · JavaScript · User Experience

Last week we launched a lighter and faster Activity social plugin that we rewrote from the ground up. This is yet another plugin relaunched with page-loading performance in mind, following our recent Send, Like, Likebox, Login, Facepile, and Recommendations plugin optimizations. Read more...

Ben HamiltonSoftware engineer at Facebook

Speaking a whole new language: DConf 2013 at Facebook

Posted about 5 years ago
blog post · Culture · Infra · Languages

Earlier this month, Facebook had the honor of hosting more than 60 engineers, thinkers, dreamers, and architects for three days at DConf 2013, the D Programming Language Conference. I've been to a good number of programming conferences, but DConf really opened my eyes to what happens when early adopters put their minds together to create a shared vision of the future. Read more...

Under the Hood: The natural language interface of Graph Search

Posted about 5 years ago
blog post · Infra · Web · Graph Search

Xiao Li is an engineering manager on the natural language team for Graph Search and Maxime Boucher is a research scientist for Graph Search. Read more...

Scaling memcache at Facebook

Posted about 5 years ago
blog post · Data · Infra · Caching · Production Engineering · Storage

Facebook started using memcached in August 2005 when Mark Zuckerberg downloaded it from the Internet and installed it on our Apache web servers. At that time, Facebook was starting to make increasingly sizable database queries on every page load, and page load times were significantly increasing. Providing a fast, snappy user experience has always been a high priority for Facebook, and memcached came to the rescue. Read more...

Tim ArmstrongEngineering

LinkBench: A database benchmark for the social graph

Posted about 5 years ago
blog post · Data · Infra · Graph · MySQL · Performance · Optimization · Open Source · Testing · Storage

MySQL offers a good mix of flexibility, performance, and administrative ease, but the database engineering team continues to explore alternatives to MySQL for storing social graph data. There are several generic open-source benchmarks that could provide a starting point for comparing database systems. However, the gold standard for database benchmarking is to test the performance of a system on the real production workload, since synthetic benchmarks often don't exercise systems in the same way. When making decisions about a significant component of Facebook's infrastructure, we need to understand how a database system will really perform in Facebook's production workload. Read more...

Andrei AlexandrescuResearch Scientist at Facebook

Three Optimization Tips for C++

Posted about 5 years ago
blog post · Infra · Languages · C++

This is an approximate transcript of my talk at Facebook NYC on December 4, 2012, which discusses optimization tips for C++ programs. The video of the talk is here and the accompanying slides are here. Read more...

Sriram SankarSoftware engineer at Facebook

Under the Hood: Indexing and ranking in Graph Search

Posted about 5 years ago
blog post · Data · Infra · Graph Search

Search Ranking.

Under the Hood: Building out the infrastructure for Graph Search

Posted about 5 years ago
blog post · Data · Infra · Graph Search

The Facebook graph is the collection of entities and their relationships on Facebook. The entities are the nodes and the relationships are the edges. One way to think of this is if the graph were represented by language, the nodes would be the nouns and the edges would be the verbs. Every user, page, place, photo, post, etc. are nodes in this graph. Edges between nodes represent friendships, check-ins, tags, relationships, ownership, attributes, etc. Read more...

Alex GartrellEngineering

McDipper: A key-value cache for Flash storage

Posted about 5 years ago
blog post · Infra · Data · Web · Storage · Caching · Performance · Server Infrastructure · Data Centers · Photos

Memcache has been used at Facebook for everything from a look-aside cache for MySQL to a semi-reliable data-store for ads impression data. Of course RAM is relatively expensive, and for working sets that had very large footprints but moderate to low request rates, we believed we could make Memcached much more efficient. Compared with memory, flash provides up to 20 times the capacity per server and still supports tens of thousands of operations per second, so it was the obvious answer to this problem. Read more...

David ReissEngineering

Under the Hood: Dalvik patch for Facebook for Android

Posted about 5 years ago
blog post · Mobile · Infra · Android

Facebook is one of the most feature-rich apps available for Android. With features like push notifications, news feed, and an embedded version of Facebook Messenger (a complete app in its own right) all working together in real-time, the complexity and volume of code creates technical challenges that few, if any, other Android developers face--especially on older versions of the platform. (Our latest apps support Android versions as old as Froyo--Android version 2.2--which is almost three years old.). Read more...

Celebrating a year of fighting email phishing with DMARC

Posted about 5 years ago
blog post · Infra · Security · Testing · Open Source · Messages · User Experience

A couple of years ago, Facebook joined a burgeoning alliance of major online services to support the development of DMARC, a protocol that seeks to augment new message authentication technologies with a strong policy layer focused on thwarting phishing attacks. Today, we’re celebrating the DMARC standard’s official one-year anniversary by announcing that DMARC now protects almost two-thirds of the world’s 3.3 billion consumer mailboxes, including 85% of Facebook’s user base. Read more...

Louis BrandySoftware engineer at Facebook

Fighting spam with pure functions

Posted about 5 years ago
blog post · Web · Infra · Data · Security · Language Tools

Like any popular Internet site, Facebook is a target for abuse. Our Site Integrity engineers rely on FXL, a domain-specific language forged in the fires of spam fighting at Facebook, to quash this abuse before it can affect our users. Feature eXtraction Language (FXL) evolved in response to our need for a fast, flexible, safe way to write rules for identifying spam. Read more...

Lars Eilstrup RasmussenDirector of Engineering at Facebook

Under the Hood: Building Graph Search Beta

Posted about 5 years ago
blog post · Infra · Data · Graph Search

This morning we announced the beta of Graph Search, a new product that lets you explore the content your friends and others have shared with you on Facebook in entirely new ways. With Graph Search, you simply enter phrases such as "My friends who live in San Francisco," "Photos of my family taken in Copenhagen," or "Dentists my friends like," and Facebook quickly displays a page of the content you've requested. Read more...

Eric BarrettData Plumber at Facebook

Under the Hood: Automated backups

Posted about 5 years ago
blog post · Web · Data · Infra · Production Engineering

Facebook has one of the largest MySQL installations in the world, with thousands of database servers in multiple regions, so it's no surprise that we have unique challenges when we take backups. Our job is to keep every piece of information you add safe, while ensuring that anything that's been deleted is purged in a timely manner. Read more...

Frank Qixing DUEngineering at Facebook

Under the Hood: Rebuilding Facebook for Android

Posted about 5 years ago
blog post · Mobile · Infra · Android

Over the last year, we've been retooling our mobile apps to make them faster, more reliable, and easier to use. Several months ago, we embarked on a major step change for iOS and shipped a native re-write of Facebook for iOS. With Android, we've moved to a fixed-date release cycle and have been steadily making improvements over time so that Facebook performs consistently across multiple platforms. Read more...

Stoyan StefanovEngineer at Facebook

Under the Hood: The JavaScript SDK – Truly Asynchronous Loading

Posted about 5 years ago
blog post · Infra · Platform · JavaScript · Front End

This post is part of a series that looks under the hood of our JavaScript SDK. Read more...

Pamela VagataSoftware developer at Facebook

Under the hood: Facebook Messenger for Firefox

Posted about 5 years ago
blog post · Web · Infra · Messages

Earlier this year, Mozilla reached out to Facebook with an exciting project they had been working on in Mozilla Labs. The concept was to build an API that would allow social mediums to integrate content directly with the browser. Facebook was a natural early partner, having a mature chat product as well as lots of dynamic content in the ticker and sidebar. Mozilla built out the SocialAPI to enable a series of new features to make the experience feel truly integrated, including embedded jewels, ticker stream flyout panels and browser-provided chat tabs. Read more...

Drew ParoskiSoftware Engineer at Facebook

Speeding up PHP-based development with HipHop VM

Posted about 5 years ago
blog post · Infra · HipHop · Open Source · PHP · Performance

Here at Facebook, the HipHop team constantly strives to improve the efficiency of PHP execution and increase productivity for our PHP developers. In late 2011 we announced that we were pursuing a just-in-time (JIT) compilation approach called HipHop VM (HHVM) as a successor to the HipHop PHP-to-C++ compiler (HPHPc). The goals of the HHVM project are two-fold: build a production-ready virtual machine that delivers superior performance, and unify our production and development environments. Read more...

Øyvind Sean KinseySoftware Engineer at Facebook

Under the Hood: The JavaScript SDK - The use of polyfills

Posted about 5 years ago
blog post · Infra · Platform · JavaScript · Front End

This installment is a part of a series of posts exploring the internal details of our JavaScript SDK. Our hope is that these posts will help developers debug any issues with our SDK and give us an opportunity to outline some best practices for JavaScript libraries in general. In this post, we're going to drill into how we use polyfills in our SDK. Read more...

Under the Hood: Integrating standalone mobile app features into Facebook for iOS

Posted about 5 years ago
blog post · Infra · Mobile · iOS

Earlier this week we rolled out an update to Facebook for iOS that more deeply integrates the best features from two of our standalone apps, Camera and Messenger, into the core app. With over 600 million people accessing Facebook on mobile devices every month, our engineers are dedicated to making the mobile Facebook experience as fast, reliable, and feature-rich as possible. Read more...

Under the Hood: Scheduling MapReduce jobs more efficiently with Corona

Posted about 5 years ago
blog post · Data · Infra · Open Source · Storage

Nearly every team at Facebook depends on our custom-built data infrastructure for warehousing and analytics, with roughly 1,000 people across the company – technical and non-technical – using these technologies every day. Over half a petabyte of new data arrives in the warehouse every 24 hours, and ad-hoc queries, data pipelines, and custom MapReduce jobs process this raw data around the clock to generate more meaningful features and aggregations. 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.

Facebook © 2018