Skip to content

Releases: chrisvest/stormpot

Stormpot 3.1

17 Jun 21:02
Compare
Choose a tag to compare

Stormpot 3.1 is fully backwards compatible with 3.0, but adds a number of new features:

  • It is now possible to create pools with a size of zero, and to change the target size of a pool to be zero. Such pools will behave as if they are perpetually depleted, that is, as if all of their objects have been claimed. These empty pools can still have their target size increased at any later time.
  • A new “inline” pool mode has been added. In this mode there is no background thread, and thus none of the background services are available. Object allocation and deallocation instead occur inline with the claim calls, hence the name. This means that these pools are lighter on CPU and memory resources.

Stormpot 3.0.1

15 May 12:00
stormpot-3.0.1
Compare
Choose a tag to compare

This is a patch-release that fixes a bug where explicitly expired objects would not get to be deallocated by the configured allocator, when the pool was shut down. #135

Stormpot 2.4.2

15 May 12:00
Compare
Choose a tag to compare

This is a patch-release that fixes a bug where explicitly expired objects would not get to be deallocated by the configured allocator, when the BlazePool was shut down. #135

Stormpot 3.0

10 Nov 09:49
Compare
Choose a tag to compare

Major release.

  • Java 11 is now the minimum required version.
  • Updated, modern, and ergonomic APIs.
  • Pools are now created with Pool.from(allocator).build().
  • There is only a single pool implementation now.
  • New Pool.of(...) API to create a pool with pre-allocated objects, and no background thread.
  • Improved handling of prolonged allocation failures.
  • Lower idle CPU usage.

Stormpot 2.4.1

01 Jun 20:56
Compare
Choose a tag to compare

This is a bug-fix release, that fixes a couple of cases where the background thread could get stuck at 100% CPU usage when objects are explicitly expired, or the pool is shrunk while there are poisoned slots.

Stormpot 2.4

06 Sep 13:04
Compare
Choose a tag to compare

Performance release.

  • Improved performance of Slot.release in the BlazePool implementation, by making it do a lazySet of the slot status, instead of a compareAndSet.
  • Claimed objects can now be explicitly expired with the Slot.expire method, if they are discovered to have expired after they were claimed.
  • New CompoundExpiration that can combine two expiration policies.

Stormpot 2.3

22 Nov 15:52
Compare
Choose a tag to compare

Feature release:

  • A new ManagedPool interface exposes a pool as an MXBean for management with JMX.
  • It is now possible to enable background expiration checking, which helps reduce tail latency and prevents reallocation storms after prolonged periods of inactivity.
  • It is now possible to supply a custom ThreadFactory that the pool can use for creating its background allocation thread.
  • A precise object leak detection mechanism has been added, and is enabled by default. It can detect when a program leaks claimed objects by losing the references to them.
  • All the documentation is now formatted with AsciiDoctor.
  • Stormpot now builds on Java 8.
  • The pool no longer shuts down when an InterruptedException is thrown from the allocators allocate() or reallocate() methods.

Stormpot 2.2

14 Mar 19:30
Compare
Choose a tag to compare

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.

Stormpot 2.1

02 Jul 19:38
Compare
Choose a tag to compare

New and very fast BlazePool implementation.

Details: http://chrisvest.name/released-stormpot-21.html