3 ms·
Agree, Rust seems like a good choice but I'm curious why they needed to replace Go. GC pause time is mostly due to the amount of pointer-containing heap memory.
by hedgehog 6y ago
Agree, Rust seems like a good choice but I'm curious why they needed to replace Go. GC pause time is mostly due to the amount of pointer-containing heap memory. Moving the the cache storage to slabs of pointer-free "dumb" slices should pretty much avoid the problem so long as you force GC frequently (large heap will confuse the heuristic). Shard the slabs across a handful of goroutines, one channel each to handle locking, and that should perform fine compared to an equivalently complex Rust implementation.
- ctvo 6y agoThe article lays out the points as if they exhausted all their Go options and ran into some deep language problem. I agree with you that this isn't a huge deal in Go, and could have been solved without a language, tooling, etc. change. It reads like a tool (Rust) looking for a problem.
- alexfwulf 6y agoHow could that have been solved?