Live data from Hacker News

How we keep GitHub fast

github.com

81–90 of 124 posts

Re: How we keep GitHub fast

#81

Is it me or the new feature that hasn't shipped they mentioned is the source code search input box next to the download button?

If so, that would be incredible. More than once I've found myself wanting to search a repository for a specific word or variable without downloading it and acking through it.

Re: How we keep GitHub fast

#82
post #2

Should I feel bad knowing that if I were project manager, I'd feel like someone wasted valuable time making the dashboard look so pretty? Am I an idiot just for assuming that was done in house? Edit: I'm not trying to make a case either way, but I look at the color scheme, specific typography decisions, and other small things that would have taken a non-trivial amount of time to work on or think about (ie, more than…

I see your point. But, if you don't care about what you are doing it will show. If you care and allow your developers to care about what they are doing, you will breed a culture that people want to be a part of. Sure it's lost money in the short term but that's short term thinking. It's better to let developers be happy and passionate about their work than to complain about the bottom line. In the long run you will extract far more value from a passionate dev over a burned out one.

Re: How we keep GitHub fast

#83
post #78
post #50

Earlier quoted context omitted.

For what it's worth, if you were working for me, you would be instantly fired. This is exactly the kind of opinion that perpetuates the mass of low quality crap in the world. It's an example of cutting corners, and long-term, it ends up costing so much more than it saves.

Wow, you would instantly fire somebody for raising the question? My goodness.

You're fired too.

Re: How we keep GitHub fast

#84
post #58

Earlier quoted context omitted.

Upon further investigation, it's not just the API, it's the entire site. A significant cause of the issue is their SSL implementation. Specifically it negotiates a new connection every time instead of resuming the session, eek! http://security.stackexchange.com/questions/5511/ssl-session... https://www.ssllabs.com/ssltest/analyze.html?d=github%2ecom&...

Is this a problem with the default setup of Nginx out of the box, or has GitHub intentionally disabled session resumption?

Haven't tried the latest nginx install, but according to the wiki, ssl_session_cache controls this, and is set to 'none' by default.

http://wiki.nginx.org/HttpSslModule

As for Github, could just be a misconfiguration, or perhaps they had some more deliberate reason in mind.

Good news is I just received confirmation from one of the ops guys. He says they know about it, and are working on a fix. :)

Re: How we keep GitHub fast

#85
post #84

Earlier quoted context omitted.

Is this a problem with the default setup of Nginx out of the box, or has GitHub intentionally disabled session resumption?

Haven't tried the latest nginx install, but according to the wiki, ssl_session_cache controls this, and is set to 'none' by default. http://wiki.nginx.org/HttpSslModule As for Github, could just be a misconfiguration, or perhaps they had some more deliberate reason in mind. Good news is I just received confirmation from one of the ops guys. He says they know about it, and are working on a fix. :)

Awesome, GitHub ops on it. :) Curious if there will be a speed improvement once they enable session resumption.

Any idea why the default in nginx is: none. Soft off: nginx says to a client that session can be resued, but nginx actually never reuses them. Seems like a bad default to not cache.

Re: How we keep GitHub fast

#86

Earlier quoted context omitted.

That's the difference between Ikea and a company like http://www.urbancase.com/ . Craftsmen don't think that way.

Craftsmen absolutely think about what's stronger and more durable, not just what's nicest looking (especially for non-visible parts!). I've got a few pieces of pretty decent antique furniture that's made its way down to me in my family (stuff made by craftsmen, not by mass production), and the hidden pieces aren't finished or styled to the same degree as the front ones. The purpose of the back and other non-visible p…

It's pretty universal.

We have some amazing antique Persian and Korean chests in the house. Hand carved and split grain matched fronts and maybe sides, but the backs are plain and/or rough hewn. These pre-date plywood, but the same goes - don't waste effort on parts that will never be seen, just build them to do their job.

Re: How we keep GitHub fast

#87

Earlier quoted context omitted.

Plenty of tools get by being ugly, but that's not the point. Github is killing it right now, and they're killing it by having a very well designed product that developers really like to use. Thinking of your (team's) effort as a zero sum equation can get you in to trouble. Yes, you only have limited time and effort, but on the flip side, all the time you spend doing something, you're training. By building ugly things…

I very much agree. I'm a (grad student) statistician and most of my time is spent developing models, running simulations, etc.. But once I have all the results, I need to find a way to present them in a way that is both informative, and inviting. So I had to learn how to make beautiful plots. I used to be terrible at it, but one of my supervisors was very strict about plots: he would literally refuse to read reports…

Is any of your work available to the public?

Re: How we keep GitHub fast

#88
post #31

Github is generally pretty nippy for me, and it's a pleasure to work with. Just 2 performance concerns I've noticed: 1. The network graph / /network" rel="nofollow">https://github.com/ / /network seems very sluggish to render 2. The API is slower than normal for HTTPS Usage: $> time curl -i /" rel="nofollow">https:// / For comparison (2nd request's): * https://www.googleapis.com/ 187ms * https://graph.facebook.com/ 1…

That's easy: googleapis.com and facebook.com use 1024 bit RSA keys, github uses 2048 bit. So the initial handshake is slower and the performance on your end is probably the main bottleneck. (by the way, RSA labs deprecated the use of 1024 bit keys in 2003(!), so one could say that googleapis and fb use snake oil rather than ssl ...)

Key size of 1024 vs. 2048 bits should not account for 225 ms of latency. Here's the result of "openssl speed rsa" on a mid-grade desktop computer.

                    sign    verify    sign/s verify/s
  rsa  512 bits 0.000217s 0.000014s   4608.1  72363.4
  rsa 1024 bits 0.000711s 0.000032s   1406.0  30788.2
  rsa 2048 bits 0.003630s 0.000092s    275.5  10825.0
  rsa 4096 bits 0.021180s 0.000299s     47.2   3349.2
In other words, the difference between 1024 and 2048 bits for the server is 2.9 milliseconds, two orders of magnitude less than the latency the parent comment posted.

Second, it has nothing to do with the "performance on your end" (the client).

The client side of SSL is limited to public key operations only (cert verification, encrypted the pre-master secret). These are 40x faster than private key ops, key length being constant. You're talking a difference of 60 microseconds on the client.

Re: How we keep GitHub fast

#90

Is it me or the new feature that hasn't shipped they mentioned is the source code search input box next to the download button?

I believe GitHub admins have that little search bar on every repo, while regular joes can only search private repos.
Post reply on HN