Skip to content

Releases: OpenHFT/Chronicle-Map

Chronicle Map 3.13.0

27 Feb 03:52
Compare
Choose a tag to compare

Changes since 3.12.0:

  • Added a beta interface for listening for recovery events: see ChronicleHashCorruption, it fixes #82.
  • Update to the latest Chronicle Values, which includes a fix for the #110 bug, and experimental off-heap Pointer support.
  • With Chronicle Map 3.12.0 and earlier versions, when a persisted ChronicleMap or ChronicleSet with java.lang.Integer key (this particular type of key) is recovered, the recovery procedure incorrectly considers all entries with negative integer keys corrupt and purges them from the persisted Chronicle Map (or ChronicleSet). This bug is fixed in 3.13.0. It's ok to open or recover an existing persisted Chronicle Maps (created with Chronicle Map library 3.12.0 or an earlier version) with Chronicle Map library 3.13.0, via recoverPersistedTo(persistenceFile, false) or createOrRecoverPersistedTo(persistenceFile, false) call. Note that the second parameter should be false, because the library version has changed (it's true not only for 3.12.0 -> 3.13.0, but for any Chronicle Map 3.x version transition).
  • Internal recovery improvements.
  • Updated to the latest chronicle-bom: 1.13.44 -> 1.13.59.

Minor version number (3.12 -> 3.13) is updated because a new API is added (ChronicleHashCorruption) and dependencies are updated. The Chronicle Map data structure specification is still in the revision 1. The data format hasn't changed.

Download JAR: https://oss.sonatype.org/content/groups/public/net/openhft/chronicle-map/3.13.0/chronicle-map-3.13.0.jar

Chronicle Map 3.12.0

07 Jan 13:38
Compare
Choose a tag to compare

Changes since 3.11.0:

  • Improved resource management for the case of relatively short-living Chronicle Maps.
  • Prevented memory leaks under failure conditions: when exceptions are thrown in the context of ongoing operation with Chronicle Map, in case of OutOfMemoryError, etc.
  • Update to the latest chronicle-bom: 1.13.34 -> 1.13.44
  • If you don't use so-called "value interfaces" as keys or values of Chronicle Maps, usage in Java EE / OSGi / modules environment should be simplified. The same change as described in this blog post is made, but within the library.

Minor version number (3.11 -> 3.12) is updated because of the updated dependencies. The Chronicle Map data structure specification is still in the revision 1. The data format hasn't changed.

Download JAR: https://oss.sonatype.org/content/groups/public/net/openhft/chronicle-map/3.12.0/chronicle-map-3.12.0.jar

Chronicle Map 3.11.0

21 Nov 03:07
Compare
Choose a tag to compare

Chronicle Map 3.11.0 brings improvements to stability and manageability of Chronicle Map, especially in use cases when ChronicleMaps are small and/or short-living, and/or there are many of them in the JVM.

Changes since 3.10.1:

  • Update to chronicle-bom 1.13.34.
  • Added shutdown hook, which prevents leaving shared Chronicle Map's memory in inconsistent state on System.exit(), interrupting the JVM via kill -SIGINT or the system user logoff, of the system shutdown.
  • Fix memory leak, which prevented the Chronicle Map's direct memory (either shared or not) to be released, if the ChronicleMap is not manually closed, and the thread(s) from which the ChronicleMap was accessed is alive.
  • Added offHeapMemoryUsed() methods to ChronicleHash interface (i. e. ChronicleMap and ChronicleSet) which allows to monitor off-heap memory usage by the given ChronicleMap in the JVM.
  • Added ChronicleHashBuilder.name() configuration and ChronicleHash.toIdentityString() for easier identification of ChronicleMaps during error handling, debugging, logging, etc. This is also used inside Chronicle Map library itself, the identification string is added to messages of most Exceptions, thrown within the library.
  • Revised Exception throwing throughout the library, throwing specific InterProcessDeadLockException when Chronicle Maps thinks it encounters an inter-process deadlock condition.
  • Make the default key/value marshallers for many types (including String, CharSequence, Serializable, BytesMarshallable, etc.) much leaner on resource consumption, in particular they no don't allocate direct memory themselves, unless the serialized key or value is bigger than 2 GB.
  • The file passed to ChronicleHashBuilder.createPersistedTo(), recoverPersistedTo() and similar methods is not canonicalized, which prevents potential race conditions between ChronicleMaps in the JVM, trying to open the same persistence file via different symbolic links.
  • Smaller fixes and improvements.

Non-source code changes:

  • Clarified Chronicle Map license conditions. Chronicle Map is LGPL v3. Preparing a build under different license is possible, contact the copyright holders if you are interested.

Minor version number (3.10 -> 3.11) is updated because of the updated dependencies. The Chronicle Map data structure specification is still in the revision 1. The data format hasn't changed.

Download the JAR: https://oss.sonatype.org/content/groups/public/net/openhft/chronicle-map/3.11.0/chronicle-map-3.11.0.jar

Chronicle Map 3.10.1

21 Aug 12:53
Compare
Choose a tag to compare

Changes since 3.10.0:

  • Fixed #96, and potentially some similar issues, related to inability to close or iterate Chronicle Maps after recovery.

Download the JAR: https://oss.sonatype.org/content/groups/public/net/openhft/chronicle-map/3.10.1/chronicle-map-3.10.1.jar

Chronicle Map 3.10.0

07 Aug 08:49
Compare
Choose a tag to compare

Changes since 3.9.1:

  • Updated Chronicle dependencies (chronicle-bom 1.12.26 -> 1.13.12)
  • Made ChronicleMap and ChronicleSet methods calls after close() to always throw a special ChronicleHashClosedException (a subclass of IllegalStateException). Before, such method calls threw either generic IllegalStateException or AssertionError.
  • Optimized ChronicleMap.size().

Minor version number (3.9 -> 3.10) is updated because of the updated dependencies. The Chronicle Map data structure specification is still in the revision 1. The data format hasn't changed.

Download the JAR: https://oss.sonatype.org/content/groups/public/net/openhft/chronicle-map/3.10.0/chronicle-map-3.10.0.jar

Chronicle Map 3.9.1

17 Jul 17:25
Compare
Choose a tag to compare

Changes since 3.9.0:

  • The ChronicleMap.close() method made safer (now it waits until concurrent accessors complete)
  • Significant performance improvements, especially of ChronicleMap.get() and getUsing() methods. Improvements are achieved not by updating Chronicle Map's off-heap structure, it wasn't changed at all. Improvements are achieved by doing less unnecessary "Java on-heap work" around off-heap data structure.

Download the JAR: https://oss.sonatype.org/content/groups/public/net/openhft/chronicle-map/3.9.1/chronicle-map-3.9.1.jar

Chronicle Map 3.9.0

24 Jun 12:34
Compare
Choose a tag to compare

Changes since 3.8.0:

  • Updated Chronicle Core, Bytes & Wire to the latest released versions, making possible to use Chronicle Map 3 along with newest versions of Chronicle Queue and Engine without hassle.

Potentially breaking change: if you used to implement custom marshallers for Chronicle Map's keys/values as Java enums, it might not work anymore, and you need to make your marshallers ordinary java classes with static final INSTANCE constant. See the updated version of the custom serialization checklist, item 2.

Minor version number (3.8.0 -> 3.9.0) is updated because of updated dependencies. The Chronicle Map data structure specification is still in the version 1. The data format hasn't changed.

Download the JAR: https://oss.sonatype.org/content/groups/public/net/openhft/chronicle-map/3.9.0/chronicle-map-3.9.0.jar

Chronicle Map 3.8.0

23 Mar 13:59
Compare
Choose a tag to compare

The first production release in 3.x branch!

See difference between Chronicle Map 2 and 3.

Changes since 3.7.0 RC:

  • Improved documentation (tutorial, Javadocs)
  • Added default dataToString() method to Data interface

Minor version number is updated (3.7.0 -> 3.8.0) because of updated dependency and a method added to Data interface, but the data store specification has not changed (still revision 1).

Download the JAR: https://oss.sonatype.org/content/groups/public/net/openhft/chronicle-map/3.8.0/chronicle-map-3.8.0.jar

Chronicle Map 3.7.0 Release Candidate

12 Mar 15:45
Compare
Choose a tag to compare
  • Updated Chronicle-Values dependency addressing issues with runtime code generation in enterprise environments
  • Optimizations

Minor version number is updated (3.6.0 -> 3.7.0) because of updated dependency, but the data store specification has not changed (still revision 1).

Download the JAR: https://oss.sonatype.org/content/groups/public/net/openhft/chronicle-map/3.7.0-rc/chronicle-map-3.7.0-rc.jar

Chronicle Map 3.6.0 Release Candidate

08 Mar 14:40
Compare
Choose a tag to compare
  • Updated dependencies
  • Bug fixes and optimizations

Minor version number is updated (3.5.0 -> 3.6.0) because of updated dependencies, but the data store specification has not changed (still revision 1), so persisted Chronicle Maps created by 3.5.0 are acessible by 3.6.0. See persistence file binary form compatibility.

Download the JAR: https://oss.sonatype.org/content/groups/public/net/openhft/chronicle-map/3.6.0-rc/chronicle-map-3.6.0-rc.jar