Improved sharing via Google+

A few weeks ago Larry mentioned that we’d start shipping the Google part of Google+. The Android team then launched Ice Cream Sandwich, with a focus on improved sharing via Google+. And today we’re rolling out two more Google+ features that integrate with two more Google products: YouTube and Chrome.

YouTube

It’s no secret that YouTube is filled with tons of great content (from inspiring speeches to music videos to honey badgers). We wanted to bring YouTube directly into Google+—as well as make it easier to watch and share your favorites—so we’re launching a YouTube “slider” in the stream. Here’s how it works:

  • Mouse over the new YouTube icon at the top right of Google+
  • It’ll slide out and ask, “What would you like to play”?
  • Enter whatever you’re in the mood for (like a topic or a musical artist)

Sharing YouTube videos with your circles also works (of course), but there’s a nice little twist: the people you share with can open a related playlist directly from your post! Last but not least, we’re starting to include YouTube playlists in Google+ search results.

YouTube video in the stream (left), YouTube playlist in Google+ search results (right)

Chrome

We’re also rolling out two new Google+ Chrome extensions:

  • +1 button: +1 any webpage and share it with your circles
  • Notifications: check your Google+ notifications while you browse the web

Of course, if you don’t use Chrome, then you can use Google Toolbar for Internet Explorer. The new version—also rolling out today—includes these same sharing and notification features.

Google+ Chrome extensions: +1 button (left), notifications (right)

We’ve got lots more planned for Google+, YouTube and Chrome (and all the other Google products you already use). But we hope you enjoy today’s small taste of shipping the Google in Google+.

The Time Protocols

Have you ever had a watch that ran slow or fast, and that you’d correct every morning off your bedside clock? Computers have that same problem. Many computers, including some desktop and laptop computers, use a service called the “Network Time Protocol” (NTP), which does something very similar—it periodically checks the computers’ time against a more accurate server, which may be connected to an external source of time, such as an atomic clock. NTP also takes into account variable factors like how long the NTP server takes to reply, or the speed of the network between you and the server when setting a to-the-second or better time on the computer you’re using.

Soon after the advent of ticking clocks, scientists observed that the time told by them (and now, much more accurate clocks), and the time told by the Earth’s position were rarely exactly the same. It turns out that being on a revolving imperfect sphere floating in space, being reshaped by earthquakes and volcanic eruptions, and being dragged around by gravitational forces makes your rotation somewhat irregular. Who knew?

These fluctuations in Earth’s rotational speed mean that even very accurate clocks, like the atomic clocks used by global timekeeping services, occasionally have to be adjusted slightly to bring them in line with “solar time.” There have been 24 such adjustments, called “leap seconds,” since they were introduced in 1972. Their effect on technology has become more and more profound as people come to rely on fast, accurate and reliable technology.

Why time matters at Google

Having accurate time is critical to everything we do at Google. Keeping replicas of data up to date, correctly reporting the order of searches and clicks, and determining which data-affecting operation came last are all examples of why accurate time is crucial to our products and to our ability to keep your data safe.

Very large-scale distributed systems, like ours, demand that time be well-synchronized and expect that time always moves forwards. Computers traditionally accommodate leap seconds by setting their clock backwards by one second at the very end of the day. But this “repeated” second can be a problem. For example, what happens to write operations that happen during that second? Does email that comes in during that second get stored correctly? What about all the unforeseen problems that may come up with the massive number of systems and servers that we run? Our systems are engineered for data integrity, and some will refuse to work if their time is sufficiently “wrong.” We saw some of our clustered systems stop accepting work on a small scale during the leap second in 2005, and while it didn’t affect the site or any of our data, we wanted to fix such issues once and for all.

This was the problem that a group of our engineers identified during 2008, with a leap second scheduled for December 31. Given our observations in 2005, we wanted to be ready this time, and in the future. How could we make sure everything at Google stays running as if nothing happened, when all our server clocks suddenly see the same second happening twice? Also, how could we make this solution scale? Would we need to audit every line of code that cares about the time? (That’s a lot of code!)

The solution we came up with came to be known as the “leap smear.” We modified our internal NTP servers to gradually add a couple of milliseconds to every update, varying over a time window before the moment when the leap second actually happens. This meant that when it became time to add an extra second at midnight, our clocks had already taken this into account, by skewing the time over the course of the day. All of our servers were then able to continue as normal with the new year, blissfully unaware that a leap second had just occurred. We plan to use this “leap smear” technique again in the future, when new leap seconds are announced by the IERS.

Here’s the science bit

Usually when a leap second is almost due, the NTP protocol says a server must indicate this to its clients by setting the “Leap Indicator” (LI) field in its response. This indicates that the last minute of that day will have 61 seconds, or 59 seconds. (Leap seconds can, in theory, be used to shorten a day too, although that hasn’t happened to date.) Rather than doing this, we applied a patch to the NTP server software on our internal Stratum 2 NTP servers to not set LI, and tell a small “lie” about the time, modulating this “lie” over a time window w before midnight:

lie(t) = (1.0 – cos(pi * t / w)) / 2.0

What this did was make sure that the “lie” we were telling our servers about the time wouldn’t trigger any undesirable behavior in the NTP clients, such as causing them to suspect the time servers to be wrong and applying local corrections themselves. It also made sure the updates were sufficiently small so that any software running on the servers that were doing synchronization actions or had Chubby locks wouldn’t lose those locks or abandon any operations. It also meant this software didn’t necessarily have to be aware of or resilient to the leap second.

In an experiment, we performed two smears—one negative then one positive—and tested this setup using about 10,000 servers. We’d previously added monitoring to plot the skew between atomic time, our Stratum 2 servers and all those NTP clients, allowing us to constantly evaluate the performance of our time infrastructure. We were excited to see monitoring showing plots of those servers’ clocks tracking our model’s predictions, and that we were continuing to serve users’ requests without errors.

Following the successful test, we reconfigured all our production Stratum 2 NTP servers with details of the actual leap second, ready for New Year’s Eve, when they would automatically activate the smear for all production machines, without any further human intervention required. We had a “big red button” opt-out that allowed us to stop the smear in case anything went wrong.

What we learned

The leap smear is talked about internally in the Site Reliability Engineering group as one of our coolest workarounds, that took a lot of experimentation and verification, but paid off by ultimately saving us massive amounts of time and energy in inspecting and refactoring code. It meant that we didn’t have to sweep our entire (large) codebase, and Google engineers developing code don’t have to worry about leap seconds. The team involved in solving this issue was a handful of people, distributed around the world, who were able to work together without restriction in order to solve this problem.

The solution to this challenge drove a lot of thinking to develop better ways to implement locking and consistency, and synchronizing units of work between servers across the world. It also meant we thought more about the precision of our time systems, which have a knock-on effect on our ability to minimize resource wastage and run greener data centers by reducing the amount of time we must spend waiting for responses and rarely doing excess work.

By anticipating potential problems and developing solutions like these, the Site Reliability Engineering group informs and inspires the development of new technology for distributed systems—the systems that you use every day in Google’s products.

Mapping the football searches

Fall means lots of things in the United States: leaves changing colors, apple picking, back to school and…football. This weekend, the National Football League (NFL) starts its season with a bang, with 15 games on Sunday and Monday. College and high school football are already underway and fans all across the country are tuning in, getting excited and rooting for their teams—in person, on television and online. As a Notre Dame alum (class of ‘87), the ups (and the recent downs) of Fighting Irish football are always a big part of my fall weekends. Regardless of your alma mater or hometown team, one thing is certain: American football is a big deal across the United States. Ahead of most of this week’s kickoffs, we thought it would be fun to take a peek at some of the football search trends from around the country.

There’s some debate as to what is more popular: professional (NFL) football or college football. Search queries make it clear that in spite of the [nfl lockout], the pro game and [nfl] is consistently more popular for U.S. searchers than all of [college football].

That doesn’t mean that the college game isn’t extraordinarily popular. Right now, we’re seeing the highest level of search queries for [college football] since 2004. In certain regions, college football appears to be king over even the NFL. The states with the most searches for [college football] are mostly in the southern part of the country, with the notable exception of the rabid fans of the Nebraska Cornhuskers. That’s no wonder—on Saturdays, when the Huskers are playing at home, their Memorial Stadium becomes the third largest “city” in the state.

We can also conduct a little popularity contest among players in college football. The Heisman Trophy, awarded annually to the top college player, is usually correlated to spikes in search query volume. This year, the early favorites for the Heisman are beginning to take shape. Stanford’s quarterback [andrew luck], who opted to play his senior year in college instead of heading to the pros, is out front in terms of searches, but fans should also watch out for Robert Griffin III from the Baylor Bears program. [rg3], as he’s known, had the game of his career in week one and might be the national breakout star of the first few weeks of the season.

Over on the NFL side, it appears that winning the big game has little relation to how often people search for their favorite player. In the past month, the most searched for player in the NFL is [peyton manning] of the Indianapolis Colts, who last won the Super Bowl in 2007. He’s currently sidelined with a neck injury, so his status is likely driving much of the current search queries. Meanwhile, the quarterbacks from the past two Super Bowl winners, [drew brees] from the New Orleans Saints and [aaron rodgers] of the Green Bay Packers, come in behind a player who isn’t even his team’s starter: Denver Broncos QB and former Florida Gators star [tim tebow].

The old saying goes, “on any given Sunday,” meaning that every team has a chance to win each time they hit the field. The adage manifests itself in typically balanced standings that last throughout the season and into the playoffs. But when it comes to search, we’re not quite so fair and balanced. In fact, there’s a clear favorite, and by this measure they really are “America’s Team”: the [dallas cowboys]. In the U.S., the Cowboys lead all other teams in search query volume, followed by the [chicago bears] and the [green bay packers].

No examination of football search trends would be complete without mentioning Fantasy Football. Millions of fans participate in their own drafts and watch their league’s waiver wires as they serve as coach and general manager for their own fantasy team. The enthusiasm is so fevered that, in the U.S. right now, more people are interested in [fantasy football] than President [obama].

Finally, for spectators, football isn’t just about teams and players. It’s also about the game day food. [Tailgating] searches peak every fall as folks turn to the web to discover new recipes and ideas for pre-game parking lot cookouts. The Super Bowl in February really drives gameday recipe searches, but tailgating staples like [guacamole], [wings] and [brats] all rank high in terms of search quantity every fall, with the king of all tailgating recipe-related searches being [dip].

Whether you’re an NFL fan, an NCAA nut or just someone who likes hot wings, here’s to a great season.