Skip to content

Releases: aiven/inkless

Inkless 0.38

07 May 09:37
d3e8a41

Choose a tag to compare

Inkless version 0.38

Docker Images

docker pull ghcr.io/aiven/inkless:0.38
docker pull ghcr.io/aiven/inkless:latest

Kafka Versions

What's Changed

  • feat(inkless:config): Enforce diskless.allow.from.classic.enable by @giuseppelillo in #546
  • feat(inkless): Parse request and response of InitDisklessLog by @giuseppelillo in #545
  • feat(inkless): Orchestrate classic-to-diskless migration by @giuseppelillo in #536
  • feat(inkless:metadata): Remove topic already diskless from InitDisklessLog Controller API by @giuseppelillo in #547
  • MINOR: update Kafka version variables to 4.2.0-inkless-SNAPSHOT by @giuseppelillo in #548
  • refactor(inkless): Refactor InitDisklessLog flow and add integration tests by @giuseppelillo in #549
  • fix(inkless:metrics): Fix double-counting of diskless topic and partition metrics by @jeqo in #552
  • fix(inkless:consume): handle error path in lastOffsetForLeaderEpoch by @jeqo in #554
  • fix(inkless:migration): bypass diskless/remote-storage mutual exclusion for classic-to-diskless migration by @jeqo in #555
  • feat(inkless): allow reading from UnifiedLog for diskless topics by @giuseppelillo in #553
  • fix(inkless:migration): fix classic-to-diskless migration validation by @jeqo in #558
  • feat(inkless:docker): add diskless tiered storage unification demo by @jeqo in #559
  • feat(inkless:config): enforce diskless feature flag dependency chain by @jeqo in #560
  • feat(inkless): POD-2386 Allow remote.storage.enabled when diskless is enabled by @viktorsomogyi in #556
  • refactor(inkless): Split InitDisklessLogManager logic into separate components by @giuseppelillo in #561
  • MINOR: Fix potential leak when closing resources by @jlprat in #565
  • fix(inkless:migration): Fix InitDisklessLogManager gaps during partition registration by @giuseppelillo in #566
  • fix(inkless): Add InitDisklessLog JSON conversion to RequestConvertToson by @giuseppelillo in #570
  • feat(inkless): Init diskless log on Control Plane by @giuseppelillo in #563
  • refactor(inkless): Rename disklessStartOffset to classicToDisklessStartOffset by @giuseppelillo in #572
  • feat(inkless:consume): Add time-to-first-byte (TTFB) metric for storage reads by @jeqo in #575
  • feat(inkless): POD-2392 Implement consolidating partition tracking by @viktorsomogyi in #567
  • feat(inkless): Abort transactions on partition sealing by @giuseppelillo in #573
  • fix(inkless:migration): Avoid deadlock in InitDisklessLogBatchQueue by @giuseppelillo in #578
  • fix(inkless): Create Partition object even when diskless is enabled by @giuseppelillo in #574
  • feat(inkless): Set migrating partitions in KRaft metadata by @giuseppelillo in #580
  • fix(cache): respect max-idle=-1 (disable idle eviction) by @AnatolyPopov in #470
  • feat(inkless): POD-2393 Add DisklessLeaderEndPoint to handle fetch requests by @viktorsomogyi in #568
  • feat(inkless): POD-2398 Integration test for consolidation produce path by @viktorsomogyi in #569
  • feat(inkless): Support basic ListOffset for hybrid topics by @giuseppelillo in #577
  • fix(inkless): Stop replicating after migration to diskless is completed by @giuseppelillo in #585
  • feat(inkless): POD-2394 Implement read path for consolidated logs by @viktorsomogyi in #583
  • feat(inkless): Support ListOffsets for all cases of diskless partitions by @giuseppelillo in #584

New Contributors

Full Changelog: inkless-release-0.37...inkless-release-0.38

Inkless 0.37

23 Mar 19:37
069cce8

Choose a tag to compare

Inkless version 0.37

Docker Images

docker pull ghcr.io/aiven/inkless:0.37
docker pull ghcr.io/aiven/inkless:latest

Kafka Versions

What's Changed

Some important refactoring and bug-fixes where introduced:

  • feat(produce): optimize AppendCompleter to complete futures first by @Mwea in #529
  • refactor(inkless): cache LogConfig in InklessMetadataView by @jeqo in #474
  • refactor(inkless): improve thread pool lifecycle management by @jeqo in #475
  • feat(inkless): add bytes limit to cache by @jeqo in #544
  • refactor(inkless:consume): replace ByteRange.coalesce with BoundingRangeAlignment strategy by @jeqo in #532

Ongoing development of classic-to-diskless topic switcher feature has been merged:

  • feat(storage:inkless): InitDisklessLog Diskless Controller API by @giuseppelillo in #528
  • feat(metadata:diskless): implement managed replicas for diskless topics by @jeqo in #492
  • feat(metadata:diskless): add controller metrics for diskless topics by @jeqo in #503
  • feat(inkless): implement InitDisklessLog Controller API by @giuseppelillo in #531
  • feat(inkless): Seal the local log when a topic is migrated from classic to diskless by @giuseppelillo in #533
  • feat(diskless): add managed replicas routing to metadata transformer by @jeqo in #504
  • feat(inkless): Add metrics for sealed partitions by @giuseppelillo in #534
  • feat(storage:inkless): add control plane method for getting the producer states by @giuseppelillo in #530
  • refactor(metadata:diskless): preserve leader epoch in metadata by @jeqo in #539
  • feat(controller:diskless): enable immediate partition reassignment by @jeqo in #537
  • feat(controller:diskless): add partitions support for diskless topics by @jeqo in #540
  • feat(inkless): Expose InitDisklessLog controller API by @giuseppelillo in #541
  • test(metadata:diskless): add integration tests for managed replicas by @jeqo in #542
  • docs(docker:inkless): add managed replicas demo with test procedure by @jeqo in #543
  • docs(inkless): add managed replicas documentation by @jeqo in #535

Tooling for our releases and upstream sync procedures have been merged as well:

  • feat(inkless:sync): add upstream sync tooling and documentation by @jeqo in #498

New Contributors

  • @Mwea made their first contribution in #529

Full Changelog: inkless-release-0.36...inkless-release-0.37

Release 0.36

03 Mar 16:28
3b80522

Choose a tag to compare

What's Changed

  • fix(inkless): Fix error message when diskless.enable and remote.stora… by @giuseppelillo in #516
  • chore(build): Set Docker API version 1.44 in Gradle config by @giuseppelillo in #519
  • fix(inkless:test): Fix KafkaConfigTest for CLASSIC_REMOTE_STORAGE_FORCE_EXCLUDE_TOPIC_REGEXES_CONFIG by @giuseppelillo in #521
  • feat(inkless:config): disallow setting diskless.enable if diskless storage system is disabled by @giuseppelillo in #520

Full Changelog: inkless-release-0.35...inkless-release-0.36

Docker Images

docker pull ghcr.io/aiven/inkless:0.36
docker pull ghcr.io/aiven/inkless:latest

Kafka Versions

Release 0.35

18 Feb 15:40
ed30ea3

Choose a tag to compare

What's Changed

  • chore(inkless:release): add gh workflows to release inkless artifacts by @jeqo in #489
  • chore(inkless): Update demo and documentation for GHCR images by @jeqo in #497
  • chore(inkless:sync): upstream Apache Kafka 2025-11-21 (before 4.3.0-SNAPSHOT) by @jeqo in #499
  • chore(ci): replace usage of JDK 23 with 25 by @giuseppelillo in #502
  • chore(ci): use Docker API version 1.44 by @giuseppelillo in #509
  • Disallow setting remote.storage.enable when diskless.enable is set to true by @giuseppelillo in #513
  • feat(metadata): Introduce ClassicTopicRemoteStorageForcePolicy by @giuseppelillo in #514
  • storage: add metrics constructor to InMemoryStorage by @jjaakola-aiven in #510

Full Changelog: inkless-release-0.34...inkless-release-0.35

Kafka-base tags

Docker images

docker pull ghcr.io/aiven/inkless:4.1.1-0.35
docker pull ghcr.io/aiven/inkless:4.0.0-0.35

Release 0.34

28 Jan 09:26
cf8dd0a

Choose a tag to compare

What's Changed

  • docs(inkless): add az-alignment feature documentation by @jeqo in #481
  • docs(inkless): fix relation with kips on client-az awareness by @jeqo in #485
  • docs(inkless): fix performance docs by @jeqo in #482
  • docs(inkless): update readme with new sections and glossary by @jeqo in #483
  • docs(inkless): update architecture diagram by @jeqo in #487
  • refactor(metadata:diskless): fail on topic creation with replica assignment by @jeqo in #488
  • chore(storage:inkless): add jooq classes by @jeqo in #490
  • fix(storage:metrics): eagerly initialize meters with only topicType tag by @jeqo in #493
  • Allow switching diskless.enable from false to true by @giuseppelillo in #486

Full Changelog: inkless-release-0.33...inkless-release-0.34

Kafka-base tags

Docker images

docker pull ghcr.io/aiven/inkless:4.1.1-0.34
docker pull ghcr.io/aiven/inkless:4.0.0-0.34

Release 0.33

16 Jan 15:04
9d5edf4

Choose a tag to compare

What's Changed

  • refactor(inkless:metrics): only add topic-type tag on all topic stats by @jeqo in #472
  • docs(inkless): add versioning strategy by @jeqo in #479

Full Changelog: inkless-release-0.32...inkless-release-0.33

Kafka-base tags

Docker images

docker pull ghcr.io/aiven/inkless:4.1.1-0.33
docker pull ghcr.io/aiven/inkless:4.0.0-0.33

Release 0.32

16 Jan 13:48
d6c4996

Choose a tag to compare

Inkless Release 0.32

This release marks the transition to a new versioning strategy for Inkless. Going forward, versions use a global iteration counter that
is comparable across Kafka base branches. See versioning strategy for details.

Versioning change

Previous format: inkless-<kafka-version>-rc<N> (per-branch counters)

New format: inkless-<kafka-version>-<inkless-version> (global counter)

This makes it clear when different Kafka-based builds contain the same Inkless features.

Kafka-base tags

Changes since inkless-4.0.0-rc31 (636a1ea)

  • Rate-limited fetch for lagging consumers (#467)
  • Non-blocking fetch completion (#464)
  • Remote fetches run only on data executor (#466)

Baseline

Based on commit d6c49967b15c. Subsequent releases will increment from 0.33.

4.0.0-inkless-rc32

16 Jan 13:31
d523782

Choose a tag to compare

4.0.0-inkless-rc32 Pre-release
Pre-release
inkless-4.0.0-rc32

feat(inkless:consume): add rate-limited fetch for lagging consumers (…

v4.1.0-inkless-SNAPSHOT 2025-06-02 1748876737

02 Jun 15:09
58b8a3a

Choose a tag to compare

fix(inkless): measure commit wait from submission (#311)

Instead of measuring the uncovered "wait for upload", start measuring
the time since submission, to account for the wait time on the single
threaded pool.

4.0.0-inkless

31 Mar 18:48
ae64c6f

Choose a tag to compare

chore(inkless): add jooq classes