I think the high bit here is that the Go community is very aggressive about 
GC latency. Go has large
users with large heaps, lots of goroutines, and SLOs similar to those being 
discussed here. When 
they run into GC related latency problems the Go team works with them to 
root cause and address
the problem. It has been a very successful collaboration. 

Stepping back, work on large heaps is being motivated by the fact that RAM 
hardware, due to its
thermal characteristics, is still doubling byte/$ every 2 years or so. As 
heaps grow GC latency needs
to be independent of heap size if Go is going to continue to scale over the 
next decade. The Go 
team is well aware of this, is motivated by it, and continues to design a 
GC to address this trend. 

On Sunday, July 31, 2016 at 9:26:13 AM UTC-4, almeida....@gmail.com wrote:
>
> I'm starting a proof of concept project to the company i work. The project 
> is a http proxy with a smart layer of cache (Varnish, Nginx and others 
> don't work because we have business rules on cache invalidation) for a very 
> big microservice architecture (300+ services).
>
> We have 2x128GB machines available today for this project. 
> I don't have any doubt that Go has amazing performance, used in other 
> projects, and they are rock solid, very fast and consuming very little 
> memory.
> But i'm afraid to use Go at this project because of the GC. I'm planning 
> to use all the available memory on cache. Isn't all this memory on heap be 
> a problem?
>
> It's a new area to me, store tons of GB in a GC language.
> What is my options? Use a []byte and or mmap to stay out of GC?
> Lots and lots of code to reimplement this datastructures on top of slices 
> just to avoid the GC, not counting all the encoding/decoding to get/set the 
> values.
>
> Stick with the raw slices?
> Didn't used Cgo before, but it is a viable option? 
> Or should i go 100% offheap with something like Rust or C?
>
> I hope to add as little overhead as possible.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to