Next Generation Out of Band Garbage Collection
railsatscale.com
Next Generation Out of Band Garbage Collection
1–10 of 87 posts
Re: Next Generation Out of Band Garbage Collection
#2Re: Next Generation Out of Band Garbage Collection
#3Re: Next Generation Out of Band Garbage Collection
#4Re: Next Generation Out of Band Garbage Collection
#5This is one of those areas where out of process caching wins. In process caching has a nasty habit of putting freshly created objects into collections that have survived for days or hours, creating writes in the old generation and back references from old to new.
Going out of process makes it someone else’s problem. And if it’s a compiled language with no or a better GC, all the better.
Re: Next Generation Out of Band Garbage Collection
#6Re: Next Generation Out of Band Garbage Collection
#7This is from several years ago (2017), but this has very similar vibe as Instagram disabling Python GC - https://instagram-engineering.com/dismissing-python-garbage-...
Re: Next Generation Out of Band Garbage Collection
#8They built a large codebase on a language that doesn't let you control memory, because that makes you "more productive". So just having Rails allocate a per-request arena that is asynchronously freed which would force the programmer not to have any objects that outlive the request, or just pre-allocating memory for a fixed amount of request handling per server instance, or whatever allocation behavior you want to do…
Re: Next Generation Out of Band Garbage Collection
#9> Ideally in a web application, aside from some in-memory caches, no object allocated as part of a request should survive longer than the request itself. This is one of those areas where out of process caching wins. In process caching has a nasty habit of putting freshly created objects into collections that have survived for days or hours, creating writes in the old generation and back references from old to new. Go…
Agreed. We have some facility for out of process caching (node local memcached), and I frequently have to argue with colleagues that it's generally preferable to in-process caching.
Re: Next Generation Out of Band Garbage Collection
#10They built a large codebase on a language that doesn't let you control memory, because that makes you "more productive". So just having Rails allocate a per-request arena that is asynchronously freed which would force the programmer not to have any objects that outlive the request, or just pre-allocating memory for a fixed amount of request handling per server instance, or whatever allocation behavior you want to do…
I do want to pick on this specifically - people can and should be patching open source projects they depend on and deploying them to production (exactly as described in the article). Something being in the language vs in “user” code should be no barrier to improving it.