Note that HN, a top-1000 site in the US, runs on a single box via a single racket process. "The key to performance is elegance, not battalions of special cases."
Learn how to design large-scale systems
61–70 of 199 posts
Re: Learn how to design large-scale systems
#62Earlier quoted context omitted.
A single box?! Do we know its specs?
As of 2015: https://news.ycombinator.com/item?id=9222006 FreeBSD 10.1 Nginx 1.7.10 Racket 6.1.1 with some HN and FreeBSD specific patches. 2x 3GHz Intel Xeon-IvyBridge (E5-2690-V2-DecaCore) 8x16GB Kingston 16GB DDR3 2Rx4 SuperMicro X9DRI-LN4F+_R1.2A Adaptec 71605 9x 1000GB Western Digital WD RE4 2x 200GB Smart XceedIOPS SSD
Re: Learn how to design large-scale systems
#63Note that HN, a top-1000 site in the US, runs on a single box via a single racket process. "The key to performance is elegance, not battalions of special cases."
I guess the advantage of not relying on your site for profit is that you can afford to not worry about a bit of down time so much...
Re: Learn how to design large-scale systems
#64Earlier quoted context omitted.
As of 2015: https://news.ycombinator.com/item?id=9222006 FreeBSD 10.1 Nginx 1.7.10 Racket 6.1.1 with some HN and FreeBSD specific patches. 2x 3GHz Intel Xeon-IvyBridge (E5-2690-V2-DecaCore) 8x16GB Kingston 16GB DDR3 2Rx4 SuperMicro X9DRI-LN4F+_R1.2A Adaptec 71605 9x 1000GB Western Digital WD RE4 2x 200GB Smart XceedIOPS SSD
This "single box" has a lot of computing units as on AWS EC2.
Re: Learn how to design large-scale systems
#65Note that HN, a top-1000 site in the US, runs on a single box via a single racket process. "The key to performance is elegance, not battalions of special cases."
What would happen if the cleaner accidentally unplugged that box? Would it failover to a backup? I guess the advantage of not relying on your site for profit is that you can afford to not worry about a bit of down time so much...
Re: Learn how to design large-scale systems
#66Note that HN, a top-1000 site in the US, runs on a single box via a single racket process. "The key to performance is elegance, not battalions of special cases."
What would happen if the cleaner accidentally unplugged that box? Would it failover to a backup? I guess the advantage of not relying on your site for profit is that you can afford to not worry about a bit of down time so much...
Re: Learn how to design large-scale systems
#67Note that HN, a top-1000 site in the US, runs on a single box via a single racket process. "The key to performance is elegance, not battalions of special cases."
While I agree with you, a lack of knowledge about this stuff will unfortunately not help you pass any interviews.
Re: Learn how to design large-scale systems
#68I'd add a section on using TLA+ as a design tool. Diagrams and rules of thumb are useful but they don't catch errors or help you discover the correct architecture. See the Amazon paper [0] on their use of TLA+ in designing (and trouble-shooting) services. [0] https://lamport.azurewebsites.net/tla/formal-methods-amazon....
I feel TLA+ would be too much to ask in a system interview which is what this site is about. In case anybody is interested, there is a nice talk by Hillel Wayne on youtube ( https://www.youtube.com/watch?v=_9B__0S21y8 ) that provides a high-level overview on what TLA+ is about.
I feel TLA+ would be too much to ask
I think so too but I suggest putting it in an article like this because I think TLA+ will have wider industry adoption. If candidates know it they could be better equipped to ask more interesting questions of their interviewers even if the position doesn't require knowledge of TLA+. And as the industry does adopt such practices it would be great to be prepared!Re: Learn how to design large-scale systems
#69Earlier quoted context omitted.
I think it's due to the trend against hiring DBAs. Nobody wants to put so much work into their databases anymore. I feel like that was half of the NoSQL craze, let's stop thinking about how to use databases because it's a pain. After a while of slowly modifying and lumping more crap on a database, and it becomes a slow PITA that everyone is too afraid to touch, the usual result is to lift everything onto a new DB. DA…
Our DBAs loved the DAL. There is a trend today to let developers run all over production doing what they want and it has direct impact on systems. The complexity of the modern stack is ridiculous. You run java containers inside docker containers inside virtual machines and call it optimized.
Re: Learn how to design large-scale systems
#70Note that HN, a top-1000 site in the US, runs on a single box via a single racket process. "The key to performance is elegance, not battalions of special cases."
Elasticsearch - for searching/recommendations
Redis - hot data (certain data is only kept in redis)
Postgres - for the rest of data
Clickhouse - analytics
Most of the system is written in Go. Whole system was tuned for performance from day one. As to latency, data from the last 21 million requests today:
p99: 17.37 ms
p95: 6.86 ms
avg: 2.37 ms