Skip to content

doc: druid 37 release notes#19287

Merged
cecemei merged 27 commits into
apache:37.0.0from
317brian:37-rn
May 8, 2026
Merged

doc: druid 37 release notes#19287
cecemei merged 27 commits into
apache:37.0.0from
317brian:37-rn

Conversation

@317brian
Copy link
Copy Markdown
Contributor

@317brian 317brian commented Apr 9, 2026

Fixes #XXXX.

Description

Fixed the bug ...

Renamed the class ...

Added a forbidden-apis entry ...

Release note


Key changed/added classes in this PR
  • MyFoo
  • OurBar
  • TheirBaz

This PR has:

  • been self-reviewed.
  • added documentation for new or modified features or behaviors.
  • a release note entry in the PR description.
  • added Javadocs for most classes and all non-trivial methods. Linked related entities via Javadoc links.
  • added or updated version, license, or notice information in licenses.yaml
  • added comments explaining the "why" and the intent of the code wherever would not be obvious for an unfamiliar reader.
  • added unit tests or modified existing tests to cover new code paths, ensuring the threshold for code coverage is met.
  • added integration tests.
  • been tested in a test Druid cluster.

@317brian 317brian changed the title docs: druid 37 release notes doc: druid 37 release notes Apr 10, 2026
@317brian 317brian added this to the 37.0.0 milestone Apr 10, 2026
Copy link
Copy Markdown
Contributor

@techdocsmith techdocsmith left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is looking good. all my suggestions are stylistic

Comment thread docs/release-info/release-notes.md Outdated
Comment thread docs/release-info/release-notes.md Outdated
Comment thread docs/release-info/release-notes.md Outdated
Comment thread docs/release-info/release-notes.md Outdated
Comment thread docs/release-info/release-notes.md Outdated
Comment thread docs/release-info/release-notes.md Outdated
Comment thread docs/release-info/release-notes.md Outdated
Comment thread docs/release-info/release-notes.md Outdated
Comment thread docs/release-info/release-notes.md Outdated
Comment thread docs/release-info/release-notes.md Outdated
Copy link
Copy Markdown
Contributor

@cecemei cecemei left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

request some change regarding incremental metadata cache and supervisor based compaction, we made several changes so some notes are outdated in the same release.

Comment thread docs/release-info/release-notes.md Outdated
Comment thread docs/release-info/release-notes.md
Comment thread docs/release-info/release-notes.md Outdated
Comment thread docs/release-info/release-notes.md Outdated
Comment thread docs/release-info/release-notes.md Outdated

#### Segment locking

Segment locking and `NumberedOverwriteShardSpec` are deprecated and will be removed in a future release. Use time chunk locking instead. You can make sure only time chunk locking is used by setting `druid.indexer.tasklock.forceTimeChunkLock` to `true`.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe worth mentioning druid.indexer.tasklock.forceTimeChunkLock is true by default, i guess we should have deprecate segment locking long long time ago, cc: @clintropolis .

Comment thread docs/release-info/release-notes.md Outdated
Copy link
Copy Markdown
Contributor

@cecemei cecemei left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

overall lgtm, left a few minor comments

Comment thread docs/release-info/release-notes.md Outdated
Comment thread docs/release-info/release-notes.md Outdated
Comment thread docs/release-info/release-notes.md
Comment on lines +211 to +219
#### Changed storage column displays

- Improved the compaction config view to
- Renamed **Current size** to **Assigned size**.
- Renamed **Max size** to **Effective size**. It now displays the smaller value between `max_size` and `storage_size`. The max size is still shown as a tooltip.
- Changed usage calculation to use `effective_size`

[#19007](https://github.com/apache/druid/pull/19007)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this part doesnt read smooth to me, this is part of showing storage metric for data nodes i believe, this change is also related with vsf, do you mind take a look at this, @clintropolis ?

Copy link
Copy Markdown
Member

@clintropolis clintropolis Apr 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yea, this is related to vsf mode where the actual size disk size is separate from the amount of data the node is responsible for, so we updated this UI to be able to show the ratio of assigned segment size to actual disk size. No real change other than labels if not vsf mode

Comment thread docs/release-info/release-notes.md Outdated

### Query blocklist

You can now use the using the `/druid/coordinator/v1/config/broker` API to create a query blocklist to dynamically block queries by datasource, query type, or query context. The blocklist takes effect without a restarting Druid. Block rules use `AND` logic, which means all criteria must match.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can now use the using the ...

this seems to be missing something

Comment thread docs/release-info/release-notes.md Outdated

### Thrift input format

As part of the Thrift contributor extension, Druid now supports Thrift-encoded data for Kafka and Kinesis streaming ingestion.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

technically we already supported it before, but only when using the deprecated parser/parsespec stuff that has been removed in this release, so the new thing is that it supports the modern InputFormat stuff

Comment thread docs/release-info/release-notes.md Outdated

- Added the `druid.storage.transfer.asyncHttpClientType` config that specifies which async HTTP client to use for S3 transfers: `crt` for Amazon CRT or `netty` for Netty NIO [#19249](https://github.com/apache/druid/pull/19249)
- Added a mechanism to automatically clean up intermediary files on HDFS storage [#19187](https://github.com/apache/druid/pull/19187)
- Changed the default value for `druid.indexing.formats.maxStringLength` to null from 0 [#19198](https://github.com/apache/druid/pull/19198)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this probably doesn't need documented separately from columnFormatSpec on the string column since it is related to that

Comment thread docs/release-info/release-notes.md Outdated

### Ingestion

- Added the `maxStringLength` configuration for string dimensions that truncates values exceeding the specified length during ingestion. You can set the length globally using `druid.indexing.formats.maxStringLength` or per-dimension in the ingestion spec [#19146](https://github.com/apache/druid/pull/19146)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this was refactored into columnFormatSpec on the string column in #19258, this and the other related bullet should all be combined


### Incompatible changes

#### Removed `ParseSpec` and deprecated parsers
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this should be combined or at least next to the Parsers section since it is related (also related to hadoop removal since hadoop ingestion only supported parser/parseSpec which is why we had to drag them around for so long)

Comment thread docs/release-info/release-notes.md Outdated

### Tombstones

Tombstones for JSON-based native batch ingestion (the `dropExisting` flag for `ioConfig`) are now generally available.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this should probably indicate that this was more of an oversight/mistake of not updating docs than really anything changing since these have been used in production for quite a long time, and are not even optional in msq

Comment thread docs/release-info/release-notes.md Outdated
- `bytebuddy` from `1.18.3` to `1.18.5` [#19145](https://github.com/apache/druid/pull/19145)
- Added `objenesis` `3.5` [#19145](https://github.com/apache/druid/pull/19145)
- `org.apache.zookeeper` from 3.8.4 to 3.8.6 [#19135](https://github.com/apache/druid/pull/19135)
- Added AWS SDK `2.40.0` [#18891](https://github.com/apache/druid/pull/18891)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is a pretty big update to aws sdk libraries going from 1.x to 2.x, maybe deserves more callout

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 IMHO, we should call this out in upgrade notes.


[#18966](https://github.com/apache/druid/pull/18966)

#### Other metrics and monitoring improvements
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is worth calling out as an experimental perf feature for task init speedup:
#19022

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do you mean a different PR? #19022 is not merged


Added `segment/schemaCache/rowSignature/changed` and `segment/schemaCache/rowSignature/column/count` metrics to expose events when the Broker initializes and updates the row signature in the the segment metadata cache for each datasource.

[#18966](https://github.com/apache/druid/pull/18966)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug fix #19162 appears to be missing from the release notes

I can’t recall whether both a “Release note” section in the PR summary and a release note GitHub label are required for changes to appear in the release notes docs

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We typically don't include bug fixes in the release notes unless requested. I'm not sure why historically, but that's been the process since I've worked on Druid

Comment thread docs/release-info/release-notes.md Outdated

#### Other cluster management improvements

- Added a `ReadOnly` authorizer that allows all READ operations but denies any other operation, such as WRITE [#19243](https://github.com/apache/druid/pull/19243)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@aho135 @317brian what do you think about adding a brief note linking #19272 for the read only authorizer (as a fix to an issue), since the fix isn’t included in 37.0.0?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I probably should have included it in rc2, maybe we could add this:

This is the first read-only authorizer in Druid, it enforces a global restriction by denying all non-READ operations, but also means API-level permission misconfigurations cannot be corrected via access configuration alone (e.g., GET /druid/indexer/v1/supervisor endpoint incorrectly requiring WRITE access, which is fixed in PR #19272 but not included in this release).

Comment thread docs/release-info/release-notes.md
Comment thread docs/release-info/release-notes.md Outdated
Comment thread docs/release-info/release-notes.md Outdated
Comment thread docs/release-info/release-notes.md
317brian and others added 4 commits April 22, 2026 14:08
Co-authored-by: Cece Mei <yingqian.mei@gmail.com>
Co-authored-by: Abhishek Radhakrishnan <abhishek.rb19@gmail.com>
317brian and others added 3 commits April 23, 2026 09:44
Co-authored-by: Abhishek Radhakrishnan <abhishek.rb19@gmail.com>
Comment thread docs/release-info/release-notes.md Outdated

#### Filtering metrics

Operators can set `druid.emitter.logging.shouldFilterMetrics=true` to limit which metrics the logging emitter writes. Optionally, they can set `druid.emitter.logging.allowedMetricsPath` to a JSON object file where the keys are metric names. A missing custom file results in a warning and use of the bundled `defaultMetrics.json`. Alerts and other non-metric events are always logged.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

defaultMetrics.json has been renamed to loggingEmitterAllowedMetrics.json in #19359. Backport PR: #19371

@317brian 317brian marked this pull request as ready for review May 6, 2026 19:44
Copy link
Copy Markdown
Contributor

@cecemei cecemei left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

minor comment

Comment thread docs/release-info/release-notes.md Outdated
- Added compaction mode to the `compact/task/count` metric [#19151](https://github.com/apache/druid/pull/19151)
- Added support for logging and emitting SQL dynamic parameter values [#19067](https://github.com/apache/druid/pull/19067)
- Added `ingest/rows/published`, which all task types emit to denote the total row count of successfully published segments [#19177](https://github.com/apache/druid/pull/19177)
- Added `queries` and `totalQueries` counters, which reflect queries made to realtime servers to retrieve realtime data
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is from #19196?

Comment thread docs/release-info/release-notes.md Outdated

#### Other cluster management improvements

- Added a `ReadOnly` authorizer that allows all READ operations but denies any other operation, such as WRITE [#19243](https://github.com/apache/druid/pull/19243)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I probably should have included it in rc2, maybe we could add this:

This is the first read-only authorizer in Druid, it enforces a global restriction by denying all non-READ operations, but also means API-level permission misconfigurations cannot be corrected via access configuration alone (e.g., GET /druid/indexer/v1/supervisor endpoint incorrectly requiring WRITE access, which is fixed in PR #19272 but not included in this release).


[#18966](https://github.com/apache/druid/pull/18966)

#### Other metrics and monitoring improvements
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do you mean a different PR? #19022 is not merged

@cecemei cecemei merged commit 7168f3f into apache:37.0.0 May 8, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants