--
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...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
-j
On Sun, Jul 31, 2016 at 5:44 PM Brad Fitzpatrick <brad...@golang.org> wrote:
> You should expect at most 10ms pauses for large heaps as of Go 1.6, and especially in Go 1.7.I'm assuming those 10ms are valid for most/typical programs and that the worst case of some, still perfectly reasonable programs[0], cannot be guaranteed to be on average that low[1]. Is that assumption correct?
You may use other in-memory database for data, running on a same machine. I recomend Tarantool: http://tarantool.org - it is capable to handle hundreds of thousands (up to million) requests per second on just one CPU core. If you need more, then you may consider sharding. If you need no persistency, you may disable logging.
The nature of the cache is very important. It is easy to create and manage your own memory arena if that is a comfortable solution. (As in, do you want/need full Go GC generality in the cache contents? If so, the Go overhead may be best for that task--it is very good--but if not, say 100M 1k byte slots, then rolling your own would be easy and optimal. This last way gives you all of Go's magic plus any application-driven special efficiencies.
It's a new area to me, store tons of GB in a GC language.
Instead, if you ran something like 10x instances of the same program, you'll end up using the same resources, but will get much better performance, and your code will be much simpler.