HN user

alexgartrell

2,930 karma

SWE @ Thinking Machines Previously Operating Systems, etc @ Meta

Computers are cool

Posts17
Comments534
View on HN
developers.facebook.com 4y ago

Below: A time travelling resource monitoring tool

alexgartrell
26pts2
www.eecs.berkeley.edu 14y ago

What's Wrong with Amazon's DynamoDB Pricing?

alexgartrell
1pts0
www.msri.org 14y ago

Unexpected Depths In Airfare Search Problem [pdf] [2002]

alexgartrell
1pts0
www.circlehack.com 15y ago

Google Plus's Circles For Facebook

alexgartrell
3pts1
github.com 15y ago

Mongrel2 is now officially on Github

alexgartrell
29pts19
www.codinghorror.com 15y ago

Who Needs a Sound Card, Anyway?

alexgartrell
17pts10
edition.cnn.com 15y ago

Activist Wael Ghonim credits Facebook for starting the Egyptian revolution

alexgartrell
1pts0
github.com 15y ago

Show HN: A [pretty fast] static web server in the spirit of Facebook's Haystack

alexgartrell
5pts0
www.cia.gov 15y ago

Cia.gov uses HTTPS by default

alexgartrell
1pts0
news.ycombinator.com 15y ago

Ask HN: Is a Ph.D. in CS worth it?

alexgartrell
37pts39
feedproxy.google.com 15y ago

Elitism and Xenophobia in the Community

alexgartrell
1pts0
1-800-magic.blogspot.com 16y ago

Back to Microsoft (Leaving Google) [2008]

alexgartrell
7pts1
news.ycombinator.com 16y ago

Ask HN: Any Open Source Projects Looking for help from College Students?

alexgartrell
23pts14
www.crn.com 17y ago

Lack Of Cybersecurity Talent Could Leave U.S. Vulnerable

alexgartrell
1pts1
www.cnbc.com 17y ago

Cisco cutting up to 2,000 jobs

alexgartrell
1pts1
www.wired.com 17y ago

Bill Would Ban Unfair Data Plans, Even for Mobiles

alexgartrell
3pts0
news.ycombinator.com 17y ago

Ask HN: Shipping a Computer Cross Country

alexgartrell
1pts0

The linked article says they decided to do CD in 2016 fwiw so that's not inconsistent with what I said.

You reduced the number of patches a lot and also pushed very hard to get us to 3.0 after we sat on 2.6.38 ~forever. Which was very appreciated, btw. We built the whole plan going forward based on this work.

I'm not arguing that anyone should be nice to anyone or not (it's a waste of breath when it comes to Linux). I'm just saying that the benchmarking was thorough and that contemporary 2014 hardware could zero pages fast.

For the peanut gallery more: I worked with both of these guys at Meta on this.

The "servers are only on for a few hours" thing was like never true so I have no idea where that claim is coming from. The web performance test took more than a few hours to run alone and we had way more aggressive soaks for other workloads.

My recollection was that "write zeroes" just became a cheaper operation between '12 and '14.

A fun fact to distract from the awkwardness: a lot of the kernel work done in the early days was exceedingly scrappy. The port mapping stuff for memcached UDP before SO_REUSEPORT for example. FB binaries couldn't even run on vanilla linux a lot of the time. Over the next several years we put a TON of effort in getting as close to mainline as possible and now Meta is one of the biggest drivers of Linux development.

The thing that we need in order for your dream to become a reality is excellent user space frameworks, so I encourage you (and anyone else) to go build one or (better) find one you like and contribute.

File IO is perhaps the best example of this (at least on Linux). To handle such cases, languages must provide some sort of alternative strategy such as performing the work in a dedicated pool of OS threads.

AIO has existed for a long time. A lot longer than io_uring.

I think the thing that the author misses here is that the majority of IO that happens is actually interrupt driven in the first place, so async io is always going to be the more efficient approach.

The author also misses that scheduling threads efficiently from a kernel context is really hard. Async io also confers a benefit in terms of “data scheduling.” This is more relevant for workloads like memcached.

The core framework (sched_ext) was written for general workloads and can quite beneficial. It lowers the costs of creating and iterating on schedulers quite a bit.

To be honest, when they started working on it I don’t think any of us expected for it to be a source of collaboration with gaming companies :)

(I’m a middle manager at Meta)

A professor actually told us that freeing prior to exit was harmful, because you may spend all of that time resurrecting swapped pages for no real benefit.

Counterpoint is that debugging leaks is ~hopeless unless you have the ability to prune “intentional leaks” at exit

I still remember when I came to you with my “attachments shouldn’t live in the mssql database” plan and you said “yeah, probably, but doing it any other way would be a million times harder to maintain.” You were 100% right and I think of it often when I encounter someone who is about to do a similar dumb thing for “the right reasons.”

It was a joy to work with you as well :)

It's a bit harsh but I always feel like Fog Creek might be the cautionary tale in "what happens if you over hire for capability vs. your requirements?" I think that a less capable team would have never landed on the "let's maintain our own programming language" approach w.r.t. Wasabi.

As an aside, I do think that targeting Mono was the right thing to do for the universe, as it butterfly-effected tedu into writing weird and wonderful technical blog posts for the next ten years :p

I had an internship at Fog Creek and would add that it was probably the most friendly and harmonious place I worked, which made it very reality-show-incompatible (and very 21-year-old-me incompatible, I wasn't asked back lol). Certainly the representation of you as an asshole was ridiculous IMO.

(Since you're answering arbitrary Fog Creek questions) In retrospect, do you think it was a mistake to make kiln hg-centric at first?

Mark Zuckerberg justified the move in a Facebook post: “Open source drives innovation because it enables many more developers to build with new technology. It also improves safety and security because when software is open, more people can scrutinize it to identify and fix potential issues.” [0]

I don't work in the space so I can't comment much, but my team (Server Operating Systems and similar) has been working with Linux, Systemd, Centos, etc for years for essentially the same reason. Working with the community forces you to build better stuff, because, in a healthy community, no one cares that a "Director from Meta wants it" which is the kind of thing that kills proprietary projects in the cradle all the time.

[0] https://www.vox.com/future-perfect/23817060/meta-open-source...

The person to whom you are replying clearly meant (IMO) that you shouldn’t ask for more compensation or you will make people act defensive. Frankly, your reply reads a little defensive so maybe that’s not awful advice?

It also seems like this was a spontaneous initial conversation and not part of the process, so I’m not sure why you are suggesting that they made it up.

I actually disagree that this is the reason for the aversion. Instead I think it comes down to a couple of things:

1. Containers are commodity. For commodities, price wins first, then marketing. Docker is equally free (as in beer) and is far better marketed 2. There are a very low number of people working on systemd-nspawn and a very high number of people working on docker (and the ecosystem). 3. Dockerfiles and images are ubiquitous. They're easy to support from other run times, but if you're already in the ecosystem, what's the incentive to change?

It's also worth noting that io_uring has had at most 10-15 engineer-years worth of performance tuning vs. the many (?) hundreds of years that epoll has received. I work with Jens, Pavel, and others and can confidently say that low-queue-depth perf parity with epoll is an important goal to the effort

As an aside, it's great to see high praise from an spdk maintainer. One of the big reasons for doing io_uring in the first place was that it was impossible to compete in terms of performance with total bypass unless you changed the syscall approach.

I think people dramatically overestimate the value of CMU social connections. The value of a CMU Comp Sci degree is that you've proven (to yourself and everyone else) that you can get one. The program is essentially one "weeder" course after another to identify the people who don't belong (21-127 Concepts of Mathematics, 15-251 Great Theoretical Ideas of Computer Science, 15-213 Introduction to Compute Systems, 15-410 Operating Systems, 15-451 Design and Analysis of Algorithms). Every course is the "hard" version of ever other course (e.g. "Welcome to Operating Systems, you'll be writing a kernel that runs on an X86_64 processor. Your hint is 'pusha/popa.' Go."). While it was horrifying the whole way through, I think that it built a resiliency in me that wouldn't exist otherwise. It's incredibly hard to replicate that through online classes.