• by Jason Sobel on Friday, December 21, 2007 at 1:01pm

      Almost two million new users from around the world sign up for Facebook each week—and we couldn't be happier. It's tremendously rewarding to see so many people find what we work on useful and fun. As we continue to add new users and features, however, the load on our thousands of servers continues to increase at a pretty astounding rate. A few weeks ago we reached full capacity in our California datacenters. In the past we handled this problem by purchasing a few dozen servers, hooking them up, and getting on with our lives, but this time we... didn't have it so easy. We'd actually run out of space in our datacenters for new machines.

      Fortunately we saw this problem coming a long time ago and started work on a new datacenter in Virginia. Now, we identify whether a user would be better off talking to the east coast datacenter or a west coast data center. For people in Europe and the eastern half of the US, it's noticeably faster to talk to a server in Virginia than in California. For these users we direct them to Virginia whenever they're browsing the site and not making any changes.

      Whenever that person goes to change some data—uploading a photo album, or changing profile info for example—we send them off to California so that all our modifying operations happen in the same location. This decision was made to prevent two or more modifications from conflicting with each other and messing up our data. It might sound like we're forcing our users to go to California a lot but only about 10% of our traffic causes a modifying operation. MySQL has a great replication feature that allows us to, in real time, stream all the modifications happening on a California MySQL server to another one in Virginia. Replication happens so fast, even across the country, that the Virginia servers are almost never more than one or two seconds behind the California servers.

      Even though all of the modification happens in California and streams instantly to Virginia, we were faced with another problem. Although Facebook's data is stored in MySQL database servers, we use a large number of memcached servers to store copies of the data. Memcached is much faster and able to keep up with requests quicker than the databases themselves can keep up. We had to figure out a way for memcached servers to replicate data concurrently with the MySQL databases. Because of various technical limitations of our architecture there was no easy way to do so.

      Fortunately MySQL is open source software, meaning we can actually change the way it works by modifying the code. We did just that—embedding extra information in to the MySQL replication stream that allows us to properly update memcached in Virginia. This ensures that the cache and the database are always in sync. Over the last seven months a great team of Facebook employees has been building new software and setting up new servers like I described above. Over Thanksgiving we finally flipped the switch and since then almost 30% of our traffic has been served from Virginia.

      The east coast datacenter is a great first step towards keeping Facebook fast and reliable as the site grows. Going forward we have lots of exciting plans to expand our infrastructure and improve performance so no user ever has to sit around waiting for a page to load.


      Jason, a Facebook engineer, is all about the east coast.

      See More
    • · Comment · Share
    • by Mark Slee on Wednesday, December 19, 2007 at 2:53am
      Good luck finding borders like this on the site today.
      When Facebook first launched in February 2004, there were three important things that you could do on the site. You could create a profile with your picture and information, view other people's profiles, and add people as friends. The site also featured ugly dotted borders and strangely aligned labels. Back then, the site was only available at Harvard, so "friends" was really something more like "friends currently attending Harvard."

      Pretty soon, more schools were added. So "friends" became "...friends at some colleges." Later, we added support for alumni email addresses and high schools, so "friends" became "friends that have something to do with some kind of school." After we had those up and running, we bought a bunch more servers, opened Facebook up to the world, and learned that buying servers is easier than finding a nice place to keep them what we refer to as, "not-on-fire."

      Today Facebook lets us connect and communicate with people that we are connected to in all kinds of ways — friends from school, family members, long-lost high school sweethearts of yesteryear, and weird people. They're all here.

      This all begs the question... what does being friends with someone on Facebook mean today? We pondered this for a while, played some Bogglific, lathered, rinsed, repeated, and then decided that there just wasn't any single right answer.

      What lists will *you* create?
      So instead, we've built and launched Friend Lists. The new Friends page lets you create named lists of friends that you can use to organize your relationships whichever way works best for you. These private lists can be used to message people, send group or event invitations, and to filter updates from certain groups of friends.

      This is just a start. Expect to see lots of new Friend Lists features in 2008 that will give you more control over the information you share on Facebook and who you share it with.


      Mark Slee, an Engineering Manager, is making a list, checking it twice...
      See More
    • · Comment · Share
    • by Carolyn Abram on Tuesday, December 18, 2007 at 9:52am

      Recently, chain letters have started to spread across Facebook with all sorts of misinformation. Let's get some information out there about how we communicate to you about Facebook. Right now, there are only four ways that we try to get information to users.

      1. Home Page Announcements: Home Page announcements are the big boxes that push down your News Feed. These announcements contain information that we really want you to see; changes to your account, big new products we think you might like, and any information that is required for you to use... Facebook effectively.

      2. Product Stories and the What's New page: You may occasionally see stories about Facebook inside your News Feed. These contain useful tips and fun information about Facebook, but are not of the same importance as Home page announcements.

      3. The Blog: Since you're here reading, you know what the blog is. This is a good place to get extended information about what's going on at Facebook.

      4. Through Pages and Updates: This is fairly new with the launch of Pages, but notice that these will appear in your "Updates" section of your Inbox, not mixed in with messages from friends. These should be few and far between—the Update you saw from any Politicians you support that came from Facebook is a one-time occurrence.

      We will never use any of the following methods to tell you information, or ask for you to take an action:
      • Your Wall
      • An inbox message from a friend—in other words, chain letters.
      • Messages spread through Applications—if an application is telling you that Facebook is about to shut down, report it.

      Since there's been a lot of wrong information about Facebook spreading around, we'd like to clarify a few things for the record:
      • We are not shutting down accounts that are not "active" enough.
      • We are not going to start charging you to use Facebook.
      • We will never ask you to send us your password or login information.
      • We will never put the responsibility on YOU to send information to your friends. If we have information we need to share, it's our job to get the word out.
      • When we do communicate to you about the site (with the exception of posts made on this blog) it will always be from a collective Facebook. You won't hear from me, personally, or from Mark, or from Dustin, or from any of the Facebook bloggers you've seen here.

      So the next time you see a chain letter, chain wall post, or chain anything, report it to our User Operations team, and tell all your friends to ignore it. We could make a joke here about passing this entry on to ten of your friends, but that's not cool.



      Carolyn is Facebook's resident blogger.
      See More
    • · Comment · Share
    • by Mark Zuckerberg on Wednesday, December 5, 2007 at 7:00am

      About a month ago, we released a new feature called Beacon to try to help people share information with their friends about things they do on the web. We've made a lot of mistakes building this feature, but we've made even more with how we've handled them. We simply did a bad job with this release, and I apologize for it. While I am disappointed with our mistakes, we appreciate all the feedback we have received from our users. I'd like to discuss what we have learned and how we have improved Beacon.

      When we first thought of Beacon, our goal was... to build a simple product to let people share information across sites with their friends. It had to be lightweight so it wouldn't get in people's way as they browsed the web, but also clear enough so people would be able to easily control what they shared. We were excited about Beacon because we believe a lot of information people want to share isn't on Facebook, and if we found the right balance, Beacon would give people an easy and controlled way to share more of that information with their friends.

      But we missed the right balance. At first we tried to make it very lightweight so people wouldn't have to touch it for it to work. The problem with our initial approach of making it an opt-out system instead of opt-in was that if someone forgot to decline to share something, Beacon still went ahead and shared it with their friends. It took us too long after people started contacting us to change the product so that users had to explicitly approve what they wanted to share. Instead of acting quickly, we took too long to decide on the right solution. I'm not proud of the way we've handled this situation and I know we can do better.

      Facebook has succeeded so far in part because it gives people control over what and how they share information. This is what makes Facebook a good utility, and in order to be a good feature, Beacon also needs to do the same. People need to be able to explicitly choose what they share, and they need to be able to turn Beacon off completely if they don't want to use it.

      This has been the philosophy behind our recent changes. Last week we changed Beacon to be an opt-in system, and today we're releasing a privacy control to turn off Beacon completely. You can find it here. If you select that you don't want to share some Beacon actions or if you turn off Beacon, then Facebook won't store those actions even when partners send them to Facebook.

      On behalf of everyone working at Facebook, I want to thank you for your feedback on Beacon over the past several weeks and hope that this new privacy control addresses any remaining issues we've heard about from you.

      Thanks for taking the time to read this.

      Mark

      See More
    • · Comment · Share

Most Popular Stories

Newsroom

Newsroom

Visit the newsroom for the latest updates from Facebook.

Facebook Favorites

Blog Archive

Looking for a specific post? Visit our full archive of blog posts sorted by categories and dates.