This might be fairly easy to achieve, host System/GCs on a timer. Before doing so, it writes out to ZooKeeper that it's GC'ing (maybe to secondary log since this data is very transitory). If peers pick it at random and there are other peers, then write out to the other peers at this time.
Obviously grouping tasks would just have to wait.
This could really help latency, while allowing us to keep the default Java8 garbage collector that has better throughput but can stop the world for 1+ seconds (unlike the G1GC that will be the default in Java9).
See paper at http://blog.acolyer.org/2015/05/06/blade-a-data-center-garbage-collector/
This might be fairly easy to achieve, host System/GCs on a timer. Before doing so, it writes out to ZooKeeper that it's GC'ing (maybe to secondary log since this data is very transitory). If peers pick it at random and there are other peers, then write out to the other peers at this time.
Obviously grouping tasks would just have to wait.
This could really help latency, while allowing us to keep the default Java8 garbage collector that has better throughput but can stop the world for 1+ seconds (unlike the G1GC that will be the default in Java9).