Hacker News new | ask | show | jobs
by sgmansfield 3679 days ago
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.

1 comments

Cool, thanks for the insight! I love reading the thinking process behind design decisions.

On the subject of Azul's price: I think they would give you a high volume discount, but even half the price (1750) per server would be pretty outrageous for your use case.

For my use case I'm going with Apache Ignite right now for tiered off heap caching, but I'm not sure it would work for you guys. Might be worth a look though.

I admire Netflix OSS ecosystem. Thanks for the great work you guys do!

Just curious, is that 3500 per server per year? Or 3500 for the lifetime of the server?
Here's how they word it on the informational page for Zing:

“Zing® is priced on a subscription basis per server (physical or virtual). With per-server pricing, you don’t need to worry about core counts, memory size, or number of instances deployed per server. The single license annual subscription price for Zing is $3500 USD per physical server, with significantly lower prices for higher volumes and longer-term subscriptions. Please contact us to learn about the special pricing available for start-ups and companies with $25 million or less in annual revenue, and for ISVs and manufacturers looking to embed/integrate Zing with their products.”

Seen here: https://www.azul.com/products/zing/