News for hackers. Stuff that matters.
Re:Building a Cloud Database from Scratch: Why We Moved from... by jandrewrogers on Saturday May 28, 2022 @12:43AM (#31537671)
At a prior job (writing database kernels in C++), code commits were automatically rejected if any core operation had an observed tail latency of 1 millisecond under stress tests. Also a way to become unfortunately familiar with storage firmware behavior. A GC with a worst-case latency in low milliseconds is a big improvement over the bad old days I remember, but that is still too high for data infrastructure performance-engineering.

The effectiveness of some key optimizations were sensitive to how tight we could make tail latencies for important operations, so a GC always had an unacceptable cost to the extent it occasionally introduced a stall at an inopportune moment. If GC stalls were more like 10 microseconds, consistently, that would be much more viable. I have no idea if that is realistically achievable.

Re:Building a Cloud Database from Scratch: Why We Moved from... by kaba0 on Saturday May 28, 2022 @04:19AM (#31538580)
JVM’s ZGC promises sub-millisecond pauses regardless of heap size, so I’m fairly sure it is no longer applicable to say that GC’s are incompatible with this type of workload. Though of course where these things really matter one should also look at the underlying OS and at least pin the process to fixed cores, as the OS scheduler may cause bigger latencies than the GC.

Though for completeness’s sake I will add that in case of the JVM, variable tail latency still can be experienced due to the JIT compiler.

Re:Building a Cloud Database from Scratch: Why We Moved from... by pjmlp on Saturday May 28, 2022 @04:12AM (#31538534)
As usual, it depends.

GC's don't exist in abstract, and there are plenty of GC enabled languages that also have value types and manual memory management capabilities.

There is no need to throw everything away when the right GC enabled language is chosen in first place.

Re:Building a Cloud Database from Scratch: Why We Moved from... by lumost on Saturday May 28, 2022 @01:58AM (#31537971)
I don't see why a GC couldn't be told avoid stalling in critical code paths. From a practical standpoint, non-generational GCs have no hard requirement to ever stall.
Re:Building a Cloud Database from Scratch: Why We Moved from... by jcelerier on Saturday May 28, 2022 @02:27AM (#31538070)
But can them in practice, and ten years ago when $PROJECT was started and a tech stack had to be chosen ?
Re:Building a Cloud Database from Scratch: Why We Moved from... by pjmlp on Saturday May 28, 2022 @04:13AM (#31538544)
Given how long GC enabled languages with manual memory management capabilities do exist, 10 years ago there were already options available, D would have been an option.