Skip to content

Latest commit

 

History

History
62 lines (42 loc) · 2.49 KB

File metadata and controls

62 lines (42 loc) · 2.49 KB

Updates included in Chronicle Map 3

Changes between Chronicle Map 3 and the previous Chronicle Map version are detailed below:

Functional changes

  • Chronicle Map 3 has a formal data store specification that specifies the guarantees that the data store provides, and gives a way to verify those guarantees.

  • Added support for multi-key queries.

  • "Listeners" mechanism fully reworked; see Behaviour Customisation. This has a number of important consequences, most notable is that it is now possible to define "eventual-consistency" replication strategy, different from "last write wins"; any state-based CRDT.

  • "Stateless clients" functionality (remote calls) has been removed. Contact sales@chronicle.software if you need help with this.

  • Replication is performed using Chronicle Queue Enterprise.

  • Earlier versions of Chronicle Map had hard creation-time limits on the number of entries storable in a Chronicle Map. If the size exceeded this limit, an exception was thrown.
    In Chronicle Map 3, this limitation is removed. The number of entries still has to be configured when the Chronicle Map is created, Exceeding this configured limit is possible, but discouraged.
    For more information, see Configure entries.

  • Chronicle Map 3 supports entry checksums that enables detection of data corruption, providing additional safety.

  • Chronicle Map 3 allows recovery after failures and corruptions.

  • Minor improvements and fixes.

Non-functional changes

  • Chronicle Map 3 requires Java version 8, or later.

  • Chronicle Map 3 has versioning and compatibility policies.

  • Generic type parameters on public interfaces were renamed to follow Java conventions (single-letter names). This is a source-compatible change but is visible in Javadoc and IDE inlay hints:

    Type Before After

    ChronicleHash

    <K, E, SC, EQC>

    <K, E, S, Q>

    VanillaChronicleHash

    <K, C, SC, ECQ>

    <K, C, S, Q>

    ChronicleHashBuilderPrivateAPI

    <K, RO>

    <K, R>