HN user

sgmansfield

178 karma

[ my public key: https://keybase.io/paintballbob; my proof: https://keybase.io/paintballbob/sigs/8dngTxemmp2BUW3l6lOcEGUuxSbLxo-Fmy5qD8M3-gI ]

Posts12
Comments17
View on HN
Elf Hello World 9 years ago

Fantastic article. I noticed a couple of TODO's around, though. Does this hint at a second installment? :)

This was probably not explained well. The compilation failed with an error saying that I was basically trying to do something that was not allowed.

For your second question: I don't believe there is a way to use a separate assembler.

Caching at Reddit 10 years ago

client-side compression works out better for a couple of reasons:

1. You use less bandwidth in/out of the box. This matters in AWS because your bandwidth is (relatively) limited.

2. Your CPU usage to (de)compress is distributed over a larger fleet. The clients spend the CPU time, not the cache servers.

Caching at Reddit 10 years ago

Yeah it absolutely is. In fact, there's been tons of large improvements as of late, with more coming.

I was just about to post this exact same thing. Now there's an introduction of ranges and another API that is necessary to understand in order to grok this code. Bit twiddling, ANDing, and ORing are specific and absolute.

For example, what happens when I specify a range of 0..100 for a 32 bit int? what if the value is too big for the range? APIs around small operations like this introduce ambiguity that wasn't present before.

Author here (of both Rend and the post).

We really are looking for raw performance, but not at any cost. I spent a bunch of time, and continue to do so, to eliminate extra work, indirection, and garbage.

Efficiency of runtime and development is a careful balance that Go fits well. Rust is immature. C is difficult for people who haven't been writing it professionally. Java (less Zing or other special cases) is too latent, even if it's very fast when it's running because of HotSpot optimizations. The list goes on, but I didn't see a reason to choose the others over Go, nor have I found something yet that beats it for our use case.

Really, Java just wasn't the language for the job. Go has a lower level and simpler interface, simpler runtime (with less indirection), and better model for concurrency. Yes, it's a new language for us, but it was the right tool for the job. Our garbage collection pauses are mostly under a millisecond, so they aren't really an issue.

Zing never really was on my radar. Looking at it now I shudder to think of the licensing costs, especially since we run tens of thousands of cache instances. We already pay enough just to run these servers. It's also a new Java runtime which very few people know about, and probably nobody at Netflix has used. I would have had to learn it all independently and continue to be on my own from then on. The Go slack team and community in general are very helpful and supportive, and I would speculate that the same level of support isn't available for Zing without paying.

Sorry, not sure what's wrong. I tested in the latest firefox, safari, opera, and chrome and it works for me.

Edit: blogger doesn't do SSL on custom domains. Sorry =/