With a naive implementation, our benchmarks were showing GC pauses on the order of seconds for heavy (but realistic) workloads. By using the
unsafe package and a few simple tricks we were able to reduce worst case GC pauses to a couple dozen milliseconds. GC pauses are now also totally independent of the size of the cache!
I've posted my slides here.