Live data from Hacker News

History of massive-scale sorting experiments at Google

cloud.google.com

11–20 of 82 posts

Re: History of massive-scale sorting experiments at Google

#11
post #10
post #7

I'm sure they're asking about this in interviews now. My experience with Google interviews was that the interviewers were very keen on proving that they knew more theoretical CS than I did vs talking about what the actual work would require or entail.

You may well be asked how a distributed sort would work in principle, and be asked to code a small part of it. Any reasonable answer that shows you can think on your feet would be evidence in favor of hiring. It sounds like you didn't get hired, and I'm sorry about that. Interviewers' preferences are of course diverse, but for at least the last 5 years, probably 10, Google interviews favor practical solutions to prob…

Lol normal Google arrogance. Yea they only seem to ask theoretical questions basically out of that famous book

Re: History of massive-scale sorting experiments at Google

#12
post #6

"To reduce the impact of stragglers, we used a dynamic sharding technique called reduce subsharding. This is the precursor to fully dynamic sharding used in Dataflow." Fun ways in which internal Google tech makes its way to Google Cloud services.

I want to learn more about dynamic sharding. Will be great, if people can help me out here. I get the feeling "my googling" skills will fail me.

Re: History of massive-scale sorting experiments at Google

#13
post #5
post #3

Earlier quoted context omitted.

I wonder how fast this could do it: http://www.lanl.gov/projects/trinity/specifications.php They're claiming 87.0 TB/min on an 80PB filesystem, relative to Google's 36.2 TB/min.

That just their I/O bandwidth. There is computing overhead in actually doing the sort. Also google was using redundant persistence.

To add to this, Google's results were in 2012.

Re: History of massive-scale sorting experiments at Google

#14
post #10
post #7

I'm sure they're asking about this in interviews now. My experience with Google interviews was that the interviewers were very keen on proving that they knew more theoretical CS than I did vs talking about what the actual work would require or entail.

You may well be asked how a distributed sort would work in principle, and be asked to code a small part of it. Any reasonable answer that shows you can think on your feet would be evidence in favor of hiring. It sounds like you didn't get hired, and I'm sorry about that. Interviewers' preferences are of course diverse, but for at least the last 5 years, probably 10, Google interviews favor practical solutions to prob…

As a datapoint, a while back I was asked (for a G interview within the last 10 years) to code an RB tree from start to finish. I'll admit I was a little miffed at how distanced this seemed from anything I would potentially do; I was not interviewing for a high theory/deep algorithms group. That being said, in my other experience with a G interview, the entire process was much more mundane and as expected. For the record, I have both been hired and not hired by G and not necessarily paired with the above interviews as you'd expect.

I mention this instance largely because my friends at the big G tell me such a question is generally frowned upon, and not part of standard practice, (So I don't feel bad speaking openly about it) but more importantly it gives me a way to see how people can get a skewed perspective on a company given a... unique interview question when the overall guidance within the corp wouldn't align to asking that.

Re: History of massive-scale sorting experiments at Google

#15
post #10

Earlier quoted context omitted.

You may well be asked how a distributed sort would work in principle, and be asked to code a small part of it. Any reasonable answer that shows you can think on your feet would be evidence in favor of hiring. It sounds like you didn't get hired, and I'm sorry about that. Interviewers' preferences are of course diverse, but for at least the last 5 years, probably 10, Google interviews favor practical solutions to prob…

Lol normal Google arrogance. Yea they only seem to ask theoretical questions basically out of that famous book

Maybe, maybe not. Most people's surface area of problems don't even approach Google's problems. The kind of things most companies aspire to solve, Google automated a decade ago. So, this esoteric CS theory may be more practical inside Google than your external vantage point can consider.

Re: History of massive-scale sorting experiments at Google

#17
post #4

Note that this sort [in 2012] was 500 times larger than the GraySort large-scale requirement and twice as fast in throughput as the **current 2015** official GraySort winner. (emphasis mine)

It had to feel fucking amazing to be an engineer that was part of that at the time. To know (even if it was publicly unknown) that you were able to so massively destroy a record which still stands 4 years later.

Re: History of massive-scale sorting experiments at Google

#18
post #10

Earlier quoted context omitted.

You may well be asked how a distributed sort would work in principle, and be asked to code a small part of it. Any reasonable answer that shows you can think on your feet would be evidence in favor of hiring. It sounds like you didn't get hired, and I'm sorry about that. Interviewers' preferences are of course diverse, but for at least the last 5 years, probably 10, Google interviews favor practical solutions to prob…

Lol normal Google arrogance. Yea they only seem to ask theoretical questions basically out of that famous book

I think it more likely you have a bad grasp on what is and isn't theoretical for Google.

Re: History of massive-scale sorting experiments at Google

#19
post #7

I'm sure they're asking about this in interviews now. My experience with Google interviews was that the interviewers were very keen on proving that they knew more theoretical CS than I did vs talking about what the actual work would require or entail.

I worked at Google, and performed quite a few interviews. At least at that time, the interviewer had no idea where in the company the software engineer would go. The people who got hired would go into a pool, and the managers who needed staff would then horse-trade for them. They needed to hire people who could be plugged in to tons of different positions, including some that genuinely had tough problems where if they accidentally did something in O(N^2), their half-day compute job would suddenly literally take centuries to complete.

Also, part of the point of a Google style interview is to keep pushing you to the point where your ability fails, then push in another direction to the point your ability fails. That way, they get an idea of the dimensions of your skillset. The vast majority of the people I recommended hiring didn't answer the questions perfectly.

Or, someone could not quite put enough thought into the integer encoding for Protocol Buffers. The encoding actually used is that the first bit of every byte is a flag for if there's a next byte, for a maximum of 10 bytes. The only advantage to this over encoding the length of the integer as the number of leading ones in the first byte (like UTF-8) is if they want the option to have the option later of a forward-compatible encoding for longer integer types, without just supporting multi-precision integers as byte arrays. If you slide all of those flag bits to the first byte, you don't have any more or any fewer flag bits, so it takes as much space, but you can use a jump table and the ability to use native 8-byte and 4-byte simple loads instead of many more masking operations and conditional branches. Giving up on anything longer than int64_t means that the maximum encoding length becomes 9 bytes instead of 10.

One day, the speed of the indexing system just dropped in half. It turns out that someone wrote a job that used machine learning to generate a bunch of regexes for some signal. They were recompiling the regexes for every page in the index. Google really needs most of their engineers that will naturally spot this kind of thing in code reviews, because if every engineer on the indexing team made a mistake like that once a year, the indexing system would always run at half speed, sometimes even 1/3 or 1/4 speed.

The indexing system uses as much electricity as a small town. The tiniest of improvements can mean thousands of dollars per year in savings.

Re: History of massive-scale sorting experiments at Google

#20
post #9

We haven’t found a single use case for the problem as stated. Impressive nonetheless.

This is my favorite part! There's so much and learning to be had in engineering solving problems with no real practical use. I don't consider it a waste of time at all and I'm glad they went ahead with their experiment.
Post reply on HN