You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Apache Doris 4.0.8 is a maintenance release in the 4.0 series. It focuses on compute-storage decoupled deployments, load and transaction stability, File Cache behavior, security hardening of internal endpoints, and Lakehouse compatibility. All 4.0.x users are advised to upgrade.
Highlights of this release include:
Security hardening: authentication and a configuration gate for the BE _stream_load_forward endpoint, an internal auth token for FE meta-service HTTP calls, auth checks on manager REST APIs, and masking of Kafka Routine Load credentials.
Cloud enhancements: rendezvous hashing for colocate tablet placement, snapshot reads of the table version to avoid transaction conflicts, a bthread-aware tablet header lock, and a new mode that writes only index content into File Cache.
Upgrade behavior: clusters upgrading from 3.x now enable the Nereids distribute planner instead of silently keeping the legacy one.
Many correctness and stability fixes covering Group Commit, transactions, Routine Load, Paimon and Iceberg reads, File Cache, memory tracking, and several BE crash and deadlock paths.
Before upgrading, read the Behavior Changes section below.
Behavior Changes
Upgrading to 4.0 now enables the Nereids distribute planner. A cluster whose variable version is below 400 previously restored a persisted enable_nereids_distribute_planner=false from its image and kept using the legacy distribute planner after the upgrade; the variable-version-400 migration now enables it ([opt](planner) Enable Nereids distribute planner after upgrade #66604).
The BE _stream_load_forward endpoint is now registered only when the new BE configuration enable_group_commit_streamload_be_forward is enabled (default false), and it now requires authentication. Deployments that rely on Group Commit Stream Load forwarding must enable the configuration on both FE and BE ([fix](security) Add auth and config gate for _stream_load_forward endpoint #64935).
S3 SlowDown retry handling is configurable again and now differs by role: rate-limited retries remain enabled for BE clients and are disabled for the Recycler, refining the change made in 4.0.7 ([chore](s3) Adjust S3 SlowDown retry configurable #65508).
Support writing only index content into File Cache through the new BE configuration enable_file_cache_write_index_file_only (default false). Rowset writes and Compaction outputs then protect Inverted Index files and Segment index and footer ranges, instead of polluting a limited local cache with large data pages ([feature](cloud) Support file cache write index only #64995).
Optimize the information_schema.tables status scan for large OLAP tables: BE now passes the required columns to FE, so lightweight queries no longer pay for tablet-derived status fields ([opt](schema) Optimize tables schema scan status #64933).
Use a bthread-aware shared mutex for the tablet header lock. The write lock can be held across a suspending warm-up call, and a migrating bthread would otherwise unlock a pthread_rwlock_t from a different worker thread ([fix](cloud) Use bthread-aware shared mutex for tablet header lock #64574).
Preserve Paimon partition metadata across splits. Partition metadata was generated only when runtime partition pruning was enabled, so count, native and JNI splits reached BE without stable partition values, and the reused prune block was corrupted by inserted replacement columns (branch-4.0: [fix](paimon) preserve partition metadata across splits #65583).
These notes focus on user-visible and operations-visible changes. Test-only commits, CI adjustments, external Docker environment work, release version updates, and purely internal changes without external symptoms are omitted. Refer to the complete 4.0.7 to 4.0.8-rc02 comparison for the full commit history.
Acknowledgments
Thanks to all contributors whose pull requests are included in this release:
4.0.8 Release Notes
4.0.7 Release Notes: #65399
Apache Doris 4.0.8 is a maintenance release in the 4.0 series. It focuses on compute-storage decoupled deployments, load and transaction stability, File Cache behavior, security hardening of internal endpoints, and Lakehouse compatibility. All 4.0.x users are advised to upgrade.
Highlights of this release include:
_stream_load_forwardendpoint, an internal auth token for FE meta-service HTTP calls, auth checks on manager REST APIs, and masking of Kafka Routine Load credentials.Behavior Changes
enable_nereids_distribute_planner=falsefrom its image and kept using the legacy distribute planner after the upgrade; the variable-version-400 migration now enables it ([opt](planner) Enable Nereids distribute planner after upgrade #66604)._stream_load_forwardendpoint is now registered only when the new BE configurationenable_group_commit_streamload_be_forwardis enabled (defaultfalse), and it now requires authentication. Deployments that rely on Group Commit Stream Load forwarding must enable the configuration on both FE and BE ([fix](security) Add auth and config gate for _stream_load_forward endpoint #64935).autobucket_min_bucketsnow defaults to 3 instead of 1, so the auto bucket strategy no longer computes a bucket count too small for reasonable parallelism and data distribution ([fix](bucket) Raise autobucket_min_buckets default from 1 to 3 #63729).enable_mark_delete_rowset_before_recycleorenable_abort_txn_and_job_for_delete_rowset_before_recycleby default, because the feature currently carries a performance cost ([chore](recycler) Disableenable_mark_delete_rowset_before_recycleandenable_abort_txn_and_job_for_delete_rowset_before_recyclefor recycler #66150).SlowDownretry handling is configurable again and now differs by role: rate-limited retries remain enabled for BE clients and are disabled for the Recycler, refining the change made in 4.0.7 ([chore](s3) Adjust S3 SlowDown retry configurable #65508).plan_nereids_dumphas been removed. It only applied to minidump replay and is now an internal flag set byMinidumpUtils, soPLAY '<dumpfile>'continues to work ([chore](session-variable) remove the unused session variable plan_nereids_dump #66371).SHOW TABLETSandinformation_schema.partitionsno longer diverge frominformation_schema.backend_tablets([fix] (cloud) Fix local/remote tablet size semantics in schema views #60887).SHOW PROC '/colocation_group/{GroupId}'now reportsReplicaAllocationasNULL, andSHOW PROC '/cluster_health/tablet_health'no longer reportsUNRECOVERABLEbecause of local-mode health checks ([fix](cloud) Align colocate proc output and tablet health in cloud mode #60944).New Features & Improvements
Compute-Storage Decoupling
enable_file_cache_write_index_file_only(defaultfalse). Rowset writes and Compaction outputs then protect Inverted Index files and Segment index and footer ranges, instead of polluting a limited local cache with large data pages ([feature](cloud) Support file cache write index only #64995).commit_txn,commit_partition,commit_indexanddrop_partition, removing the read-conflict range that made concurrent commits on the same table fail withKV_TXN_CONFLICT([fix](cloud) use snapshot read for table version to avoid txn conflict #64647).start.sh([opt](cloud) Support multiple config files in start.sh #63924).Security & Access Control
fe_meta_auth_tokenfor FE meta-service internal HTTP authentication ([improvement](fe) add fe_meta_auth_token for FE meta-service internal HTTP auth #65551).skipAuthon allINSERT OVERWRITEexit paths ([fix](insert) reset skipAuth on all INSERT OVERWRITE exit paths #66383).Observability & Operations
Self-suppression not permittedmessage (branch-4.0: [fix](docker)(case) Fix the remaining 4 external regression failures: kerberos HDFS SASL, Paimon fixture, file cache flakiness #66417).Performance
information_schema.tablesstatus scan for large OLAP tables: BE now passes the required columns to FE, so lightweight queries no longer pay for tablet-derived status fields ([opt](schema) Optimize tables schema scan status #64933).ConfigurationAWSCredentialsProviderfor Glue catalogs ([fix](glue) cache credentials provider in ConfigurationAWSCredentialsProvider #65165).PolicyRefresherthreads ([fix](fe) Reuse Ranger Doris access controller #65570).Important Bug Fixes
Query Result Correctness
SimplifyAggGroupByrewrites aGROUP BYexpression ([fix](simplify agg) SimplifyAggGroupBy should verify injectivity #64335).PullUpJoinFromUnionAll([fix](rewrite rule) Reject mismatched compare plan in PullUpJoinFromUnionAll #65472).UniqueFunctionin the filter and TopN pushdown rules ([fix](nereids) Guard UniqueFunction in multiple filter/topn pushdown rules #62742).from_base64andto_base64output buffer sizing and invalid input handling ([fix](function) size from_base64/to_base64 output buffer correctly on branch-4.1 #65141).Load & Transactions
load_id([fix](group commit) fix lost row when prepared stmt reused plan shares one load_id #64362).Compute-Storage Decoupling
pthread_rwlock_tfrom a different worker thread ([fix](cloud) Use bthread-aware shared mutex for tablet header lock #64574).version_cache_ttlto 0 when retrying a query that failed with -230 ([fix](fe) set cloud version_cache_ttl to 0 temporarily if retry a query with -230 #63721).CloudUpgradeMgrwaits ([fix](cloud) CloudUpgradeMgr inspect and abort failed conflict txns while waiting #60830).requestTimeoutMson the Recycler S3 client to avoid curl-28 errors on slowDeleteObjectscalls ([fix](cloud) set recycler S3 client requestTimeoutMs to avoid curl-28 on slow DeleteObjects (mirror #49315) #64758).default.replication_numin table metadata and makeSHOW CREATE TABLEreport the wrong default allocation ([fix](replica) Resolve conflicting default replica properties #65836).SchemaVariablesScannercrash caused by an incomplete FE response ([fix](cloud) Fix SchemaVariablesScanner crash due to incomplete FE response #65994).File Cache & Storage
Lakehouse & External Data Sources
Memory & Stability
brpc::Servershutdown ([fix](brpc) Make secondary package aliases non-owning #65777).Protocol & Observability
VectorSchemaRootincreatePreparedStatement([fix](arrow-flight-sql) Close temporary VectorSchemaRoot in createPreparedStatement to fix FE direct memory leak #65311), fix the remaining off-heap leaks ([bugfix](arrowflight) fix some off heap memory leak on FE #66437), and keep the coordinator alive acrossGetFlightInfoandDoGetfor external table scans ([fix](arrow-flight) Keep coordinator alive across GetFlightInfo/DoGet for external table scan #64799).information_schema.routine_load_jobsfrom the master FE, soFIRST_ERROR_MSGandERROR_LOG_URLSare no longer empty when the query lands on a non-master FE (branch-4.0: [fix] fix routine_load_jobs first_error_msg on non-master FE and flaky ann_index_basic #65942).-parameterserror thrown by the node action REST API, caused by aPathVariableannotation without a declared value ([Fix](restapi) fix node action restapi throw '-parameters' error because of PathVariable annotation without value declaration #59708).Acknowledgments
Thanks to all contributors whose pull requests are included in this release:
@0AyanamiRei @924060929 @BiteTheDDDDt @bobhan1 @CalvinKirs @deardeng @freemandealer @Gabriel39 @gavinchou @GJ100 @heguanhui @hello-stephen @hubgeter @jacktengg @JNSimba @Jungzhang @liaoxin01 @luwei16 @morningman @Mryange @mymeiyi @shuke987 @sollhui @stevenpall @suxiaogang223 @w41ter @wyxxxcat @xylaaaaa @yiguolei @yujun777 @zgxme @zhangstar333