-
Notifications
You must be signed in to change notification settings - Fork 3.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Draft] 0.23.0 Release notes #12510
Comments
Waiting too long for this release |
@dungdm93 - Yes. 0.23.0 got delayed. We will definitely stick to a quarterly release schedule going forward |
Any Tentative date for this release is really appreciated! |
Web console release notes (draft)Just went over the changes and collected down the more notable changes
|
I have created a new branch for collaborating on release notes. Here is the link to the release notes file - https://github.com/apache/druid/blob/release-notes-023/druid-0.23-release-notes.md. Please create a PR against this branch for adding/editing release notes. |
@gt-28 - I don't have a tentative date yet. Most likely, we should have the release out sometime this month. |
Hi, do we have any update on the release date? Thanks! |
We discovered some bugs and backported the fix last week. One more (#12552) needs to go in. |
I'm impatiently waiting for new release :), Does new release support Java v8 higher versions? |
Even the previous version can already run on Java 11 and 17. It’s just not
mentioned in the website.
…On Tue, May 31, 2022 at 7:22 AM Navid ***@***.***> wrote:
I'm impatiently waiting for new release :), Does new release support Java
v8 higher versions?
—
Reply to this email directly, view it on GitHub
<#12510 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAARZVR6QB7HPCPZYEU7B3LVMYODHANCNFSM5VUH2VGA>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
I have started the voting thread - https://lists.apache.org/thread/sz8w75r7ddvk7rqwfwnsj8x2lqd889oh |
"You can now configure automatic compaction to calculate the ratio of slots available for compaction tasks from maximum slots, including autoscaler maximum worker nodes (#12263)" is a duplicate in the release note |
The release is done. Please see the announcement here - https://lists.apache.org/thread/5grfgjh60z3kyqyrh21jsoz5o5p8n87q |
Apache Druid 0.23.0 contains over 450 new features, bug fixes, performance enhancements, documentation improvements, and additional test coverage from 81 contributors. See the complete set of changes for additional details.
# New Features
# Query engine
# Grouping on arrays without exploding the arrays
You can now group on a multi-value dimension as an array. For a datasource named "test":
The following query:
Returns the following:
(#12078)
(#12253)
# Specify a column other than __time column for row comparison in first/last aggregators
You can pass time column in
*first
/*last
aggregators by usingLATEST_BY
/EARLIEST_BY
SQL functions. This provides support for cases where the time is stored as a part of a column different than "__time". You can also specify another logical time column.(#11949)
(#12145)
# Improvements to querying user experience
This release includes several improvements for querying:
SegmentMetadata
query (Implement configurable internally generated query context #11429)DruidSchema
to fallback to segment metadata 'type' if 'typeSignature' is null #12016)druid.query.groupBy.maxSelectorDictionarySize
when grouping on string or array-valued expressions that do not have pre-existing dictionaries.useNativeQueryExplain
to true in query context (Improve the output of SQL explain message #11908)druid.broker.segment.ignoredTiers
#11766) (Add Broker configdruid.broker.segment.watchRealtimeNodes
#11732)# Streaming Ingestion
# Kafka input format for parsing headers and key
We've introduced a Kafka input format so you can ingest header data in addition to the message contents. For example:
(#11630)
# Kinesis ingestion - Improvements
We have made following improvements in kinesis ingestion
skipIgnorableShards
totrue
in kinesis ingestion tuning config to ignore such shards. (Optimize kinesis ingestion task assignment after resharding #12235)DescribeStream
to fetch the list of shards. This call is deprecated and slower. In this release, you can switch to a newer APIlistShards
by settinguseListShards
totrue
in kinesis ingestion tuning config. (Mitigate Kinesis stream LimitExceededException by using listShards API #12161)# Native Batch Ingestion
# Multi-dimension range partitioning
Multi-dimension range partitioning allows users to partition their data on the ranges of any number of dimensions. It develops further on the concepts behind "single-dim" partitioning and is now arguably the most preferable secondary partitioning, both for query performance and storage efficiency.
(#11848)
(#11973)
# Improved replace data behavior
In previous versions of Druid, if ingested data with
dropExisting
flag to replace data, Druid would retain the existing data for a time chunk if there was no new data to replace it. Now, if you setdropExisting
totrue
in yourioSpec
and ingest data for a time range that includes a time chunk with no data, Druid uses a tombstone to overshadow the existing data in the empty time chunk.(#12137)
This release includes several improvements for native batch ingestion:
segmentAvailabilityWaitTimeMs
, the duration in milliseconds that a task waited for its segments to be handed off to Historical nodes, toIngestionStatsAndErrorsTaskReportData
(Add handoff wait time to IngestionStatsAndErrorsTaskReportData #11090)RowStats
indruid/indexer/v1/task/{task_id}/reports
API for multi-phase parallel indexing task (RowStats for multiphase parallel indexing task #12280)# Improvements to ingestion in general
This release includes several improvements for ingestion in general:
IncrementalIndex<AggregatorType>
because it is no longer requiredJsonPath
functions inJsonPath
expressions during ingestion (Support JsonPath functions in JsonPath expressions #11722)IndexSpec
to the main "merge" method inIndexMerger
(Use intermediate-persist IndexSpec during multiphase merge. #11940)Granularity.granularitiesFinerThan
now returns ALL if you pass in ALL (Enable allocating segments at ALL granularity. #12003)SchemaRegistryBasedAvroBytesDecoder
now throws aParseException
instead of RE when it fails to retrieve a schema (Throw parse exceptions on schema get errors for SchemaRegistryBasedAvroBytesDecoder #12080)includeAllDimensions
todimensionsSpec
to put all explicit dimensions first inInputRow
and subsequently any other dimensions found in input data (A new includeAllDimension flag for dimensionsSpec #12276)# Compaction
This release includes several improvements for compaction:
# SQL
# Human-readable and actionable SQL error messages
Until version 0.22.1, if you issued an unsupported SQL query, Druid would throw very cryptic and unhelpful error messages. With this change, error messages include exactly the part of the SQL query that is not supported in Druid. For example, if you run a scan query that is ordered on a dimension other than the time column.
(#11911)
# Cancel API for SQL queries
We've added a new API to cancel SQL queries, so you can now cancel SQL queries just like you can cancel native queries. You can use the API from the web console. In previous versions, cancellation from the console only closed the client connection while the SQL query kept running on Druid.
(#11643)
(#11738)
(#11710)
# Improved SQL compatibility
We have made changes to expressions that make expression evaluation more SQL compliant. This new behaviour is disabled by default. It can be enabled by setting
druid.expressions.useStrictBooleans
totrue
. We recommend enabling this behaviour since it is also more performant in some cases.(#11184)
# Improvements to SQL user experience
This release includes several additional improvements for SQL:
/
for JDBC connections to Druid (support jdbc even if trailing / is missing #11737)DruidRexExecutor
handles numeric arrays (Improve the DruidRexExecutor w.r.t handling of numeric arrays #11968)# Coordinator/Overlord
druid.global.http.eagerInitialization
tofalse
in common runtime properties.# Web console
Segment size
(in bytes) column to the Datasources view (Web console: Add segment size in bytes column and hide it by default #11797)# Metrics
# Query metrics now also set the
vectorized
dimension by default. This can be helpful in understanding performance profile of queries.12464
# Auto-compaction duty also report duty metrics now. A dimension to indicate the duty group has also been added.
12352
This release includes several additional improvements for metrics:
prometheus-emitter
to distribution #11812)conversionFactor
in Prometheus emitter (12338)ingest/events/messageGap
metric (fix messageGap metric #12337)Cpu
andCpuSet
tojava.util.metrics.cgroups
,ProcFsUtil
forprocfs
info, andCgroupCpuMonitor
andCgroupCpuSetMonitor
(Add cpu/cpuset cgroup and procfs data gathering #11763)partitioningType
dimension tosegment/added/bytes
metric to track usage of different partitioning schemes (Add dimension partitioningType to metrics to track usage of different partitioning schemes #11902)# Cloud integrations
# Allow authenticating via Shared access resource for azure storage
12266
# Other changes
BalanceSegments#balanceServers
now exits early when there is no balancing work to do (refactor BalanceSegments#balanceServers to exit early if there is no work to be done #11768)DimensionHandler
now allows you to define aDimensionSpec
appropriate for the type of dimension to handle (use correct DimensionSpec with for column value selectors created from dictionary encoded column indexers #11873)# Security fixes
# Support for access control on setting query contexts
Today, any context params are allowed to users. This can cause 1) a bad UX if the context param is not matured yet or 2) even query failure or system fault in the worst case if a sensitive param is abused, ex) maxSubqueryRows. Druid now has an ability to limit context params per user role. That means, a query will fail if you have a context param set in the query that is not allowed to you.
The context parameter authorization can be enabled using Druid.
auth.authorizeQueryContextParam
s. This is disabled by default to enable a smoother upgrade experience.(#12396)
# Other security improvements
This release includes several additional improvements for security:
# Performance improvements
# Ingestion
# SQL
inSubQueryThreshold
in SQL query context. (Convert inQueryThreshold into query context parameter. #12357)time_shift
is now vectorized (Adding vectorized time_shift #12254)# Bug fixes
Druid 0.23.0 contains over 68 bug fixes. You can find the complete list here
# Upgrading to 0.23.0
Consider the following changes and updates when upgrading from Druid 0.22.x to 0.23.0. If you're updating from an earlier version than 0.22.1, see the release notes of the relevant intermediate versions.
# Auto-killing of segments
In
0.23.0
, Auto killing of segments is now enabled by default (#12187). The new defaults should kill all unused segments older than 90 days. If users do not want this behavior on an upgrade, they should explicitly disable the behavior. This is a risky change since depending on the interval, segments will be killed immediately after being marked unused. this behavior will be reverted or changed in the next druid release. Please see (#12693) for more details.# Other changes
listShards
API access on the stream.3.0.0
(Update Apache Kafka client libraries to 3.0.0 #11735)# Developer notices
# updated airline dependency to 2.x
https://github.com/airlift/airline is no longer maintained and so druid has upgraded to https://github.com/rvesse/airline (Airline 2) to use an actively
maintained version, while minimizing breaking changes.
This is a backwards incompatible change, and custom extensions relying on the CliCommandCreator extension point will also need to be updated.
12270
# Return 404 instead of 400 for unknown supervisors or tasks
Earlier supervisor/task endpoint return 400 when a supervisor or a task is not found. This status code is not friendly and confusing for the 3rd system. And according to the definition of HTTP status code, 404 is right code for such case. So we have changed the status code from 400 to 404 to eliminate the ambigiuty. Any clients of these endpoints should change the response code handling accordingly.
11724
# Return 400 instead of 500 when SQL query cannot be planned
Any SQL query that cannot be planned by Druid is not considered a bad request. For such queries, we now return 400. Developers using SQL API should change the response code handling if needed.
12033
# ResponseContext refactoring
0.23.0
changes the theResponseContext
and it's keys in a breaking way. The prior version of the response context suggested that keys be defined in an enum, then registered. This version suggests that keys be defined as objects, then registered. See theResponseContext
class itself for the details.(#11828)
# Other changes
SingleServerInventoryView
has been removed. (Better serverView exec name; remove SingleServerInventoryView #11770)LocalInputSource
does not allow ingesting same file multiple times. (Harmonize local input sources; fix batch index integration test. #11965)getType()
inPostAggregator
is deprecated in favour ofgetType(ColumnInspector)
(add output type information to ExpressionPostAggregator #11818)# Known issues
For a full list of open issues, please see Bug .
# Credits
Thanks to everyone who contributed to this release!
@2bethere
@317brian
@a2l007
@abhishekagarwal87
@adarshsanjeev
@aggarwalakshay
@AlexanderSaydakov
@AmatyaAvadhanula
@andreacyc
@ApoorvGuptaAi
@arunramani
@asdf2014
@AshishKapoor
@benkrug
@capistrant
@Caroline1000
@cheddar
@chenhuiyeh
@churromorales
@clintropolis
@cryptoe
@davidferlay
@dbardbar
@dependabot[bot]
@didip
@dkoepke
@dungdm93
@ektravel
@emirot
@FrankChen021
@gianm
@hqx871
@iMichka
@imply-cheddar
@isandeep41
@IvanVan
@jacobtolar
@jasonk000
@jgoz
@jihoonson
@jon-wei
@josephglanville
@joyking7
@kfaraz
@klarose
@LakshSingla
@liran-funaro
@lokesh-lingarajan
@loquisgon
@mark-imply
@maytasm
@mchades
@nikhil-ddu
@paul-rogers
@petermarshallio
@pjain1
@pjfanning
@rohangarg
@samarthjain
@sergioferragut
@shallada
@somu-imply
@sthetland
@suneet-s
@syacobovitz
@Tassatux
@techdocsmith
@tejaswini-imply
@themarcelor
@TSFenwick
@uschindler
@v-vishwa
@Vespira
@vogievetsky
@vtlim
@wangxiaobaidu11
@williamhyun
@wjhypo
@xvrl
@yuanlihan
@zachjsh
The text was updated successfully, but these errors were encountered: