Skip to content

Stormpot 2.2

Compare
Choose a tag to compare
@chrisvest chrisvest released this 14 Mar 19:30
· 475 commits to main since this release

Lots of incremental improvements:

  • False sharing has been reduced in the BlazePool implementation, improving performance.
  • Numerous adjustments to the BlazePool implementation to improve inlining and optimisation behaviour, improving performance.
  • Fix a bug in BlazePool where the exception in a poisoned slot could bubble out through claim() calls more than once.
  • Fix a bug where the Allocator could eat the interrupt that was meant to signal to the allocation thread that it should begin shutting down. This signal is now no longer missed.
  • Poisoned slots are now proactively reallocated, if possible. This way, a temporary outage that then resolves itself, won't leave the pool full of poisoned slots that each have to bubble up through a claim() call before they can be reallocated.
  • Expiration.hasExpired() is now allowed to throw exceptions.
  • A new Reallocator API has been added. It can potentially reduce old-gen garbage accretion, in cases where Poolable instances can be reused across deallocate/allocate calls.
  • A new TimeSpreadExpiration has been added and made the default Expiration. It prevents all slots in the pool from expiring all at once.
  • Tons of fuzzing and stress testing have been performed. No released bugs found, though.