Repository navigation
26.6.8.20001 Altinity Antalya
·
0 commits
to 8c18d725c36d5f3391fa01e1929816eb8f2aeacd
since this release
26.6.8.20001 Altinity Antalya (9af7dce) as compared to v26.6.4.20001.altinityantalya (2073b1f88dec885444fac97edb8179ad1753c1ad)
New Features
- Add support for iceberg compaction of manifest files using optimize command. (#2193 by @subkanthi)
- Export partition on plain merge tree. (#2290 by @arthurpassos)
- User facing & functional changes:
- Changes how replicated partition task keys are encoded on zookeeper - this is not backwards compatible
- Implements partition export for plain merge tree
- Stop shipping empty parquet files on zero rows exports
- New
system.partition_exportstable that covers both the previousreplicated_partition_exportsand the new one for plain merge tree
- User facing & functional changes:
- Iceberg v3 has two new fields in manifest file -
first_row_idandlast_seq_num. This PR allows to read them as virtual columns from system tables(system.iceberg_files) (ClickHouse#115603 by @scanhex12 via #2308) - Support for iceberg v3
unknowndatatype which is maps toNullable(Nothing)in Clickhouse. Read and write path(Parquet). (#2363 by @subkanthi) - Aggregate function, which states are compatible with apache data sketches HLL implementation (#2398 by @UnamedRus)
Performance Improvements
- Added cas_gc_io_concurrency to run blob deletes in the CAS GC pending_deletes phase in parallel. (#2351 by @k-morozov)
casdisk: loading a table no longer issues one object-store LIST per part file. Directory probes inside a part are answered from the part manifest, so a restart costs a fixed number of LISTs per table instead of one per file. (#2440 by @filimonov)- Removing a data part from a
casdisk writes one ref-log record instead of two manifests and six ref-log records. A create/insert/drop cycle issues 56% fewer PUT and 43% fewer GET requests and takes 44% less time. (#2452 by @filimonov) - More optimistic Parquet footer-size estimate instead of fixed 64 KiB, fetching the footer in one read instead of two and reducing footer-read latency. (ClickHouse#115686 by @UnamedRus via #2503)
- CAS GC drains a dropped table's reference stream in one round: dead stream keys are deleted in batches on the GC I/O pool, under a soft time budget instead of one page per round (#2483 by @filimonov)
Improvements
- Allow empty object storage cluster (#2221 by @ianton-ru)
- Supports
CREATE TABLE,CREATE TABLE … AS source, andDROP TABLEforDataLakeCatalog;DROP TABLEcan request catalog-side data purge via the newdata_lake_delete_data_on_dropsetting (ClickHouse#98670 by @zvonand via #2305) - MemoryWorker now corrects MemoryTracker using allocated memory from ASan/TSan/MSan instead of resident memory in sanitizer builds when cgroups are available, fixing inaccurate memory accounting in such builds. Closes #2299 (#2349 by @k-morozov)
- Add an Antalya-only protocol version advertised in the
ServerHello. (#2378 by @zvonand) - CAS on-store readers skip unknown optional fields in every object type, so later releases can add fields to
cas_run, fold seal,cas_ref_ckpt,cas_ref_catalogandcas_gc_maintenance_stateobjects without a format version bump. (#2455 by @filimonov) - Use Antalya protocol for Iceberg metadata instead of JSON (#2482 by @ianton-ru)
- CAS GC batch deletes respect the storage's batch-delete limit (
objects_chunk_size_to_deleteon S3), and S3 delete errors keep the store's error name. (#2484 by @filimonov) - Use Antalya protocol for
lock_object_storage_task_distribution_msinstead of JSON (#2489 by @ianton-ru)
Bug Fixes (user-visible misbehavior in an official stable release)
- Fixed an issue where Glue
DataLakeCatalogtables could retain stale schema metadata afterALTER TABLEoperations. #2085 (#2272 by @subkanthi) - Added support for the
FIRSTandAFTERclauses withALTER TABLE ADD COLUMNandALTER TABLE MODIFY COLUMNfor Iceberg tables (DataLakeCatalog). (#2289 by @subkanthi) - Fixed races in the CAS GC scheduler lifecycle and made SYSTEM CAS GC START recover safely from worker scheduling failures. (#2326 by @k-morozov)
- Object-storage listings no longer try to parse every listed key as a JSON swarm command; this removes one thrown-and-caught exception per listed key on every object storage and the ASan fake-stack leak that made the CAS-S3 sanitizer lane up to 100x slower. (#2393 by @filimonov)
- Fixed a server termination when a disk write of transaction metadata (part CSN or mutation CSN) failed inside the commit or rollback of a MergeTree transaction; such writes are now retried for a bounded time. Also fixed a termination when
KILL MUTATIONraced with the commit of a transactional mutation. (#2396 by @filimonov) - Fixed BACKUP of a table on a CAS disk to an S3(...) or Disk(...) destination on the same S3 endpoint as the pool. (#2415 by @k-morozov)
- Fixed
Expected UInt64 column for __grouping_set, got BLOBandColumnBLOB should be converted to a regular column before usagelogical errors on a distributed query executed on a shard withenable_parallel_blocks_marshalling(enabled by default), for example withGROUP BY GROUPING SETSover a cluster that has a local replica, or when reading aMergetable that spans a local and a distributed table.BlocksMarshallingStepis no longer added to plans whose blocks are consumed in the same process (ClickHouse#111997 by @groeneai via #2427) - Fix the CAS GC deleting the
.metacondemn marker of a later condemnation of a re-published blob; graduation now always reads the marker (with read-ahead undercas_gc_io_concurrency) and the delete job removes a marker only for the round that owns it. (#2463 by @filimonov) - Fix
UNIONof a local query andcluster()(or another cluster function) throwingNUMBER_OF_COLUMNS_DOESNT_MATCHorTHERE_IS_NO_COLUMNonGROUP BY hostName. A server constant built on the local branch was reused for the cluster branch and folded to the initiator value. Each scope now builds its own value, so shards report their ownhostName,serverUUID,tcpPort, and the other server constants. (#2471 by @ianton-ru)
Build/Testing/Packaging Improvements
- Add SBOM and license mapping to docker images (#2392 by @MyroTk)
- Run nightly checks on specified branches only if changes were added since previous run. Upload failed results to slack for easier monitoring. (#2445 by @MyroTk)
CI Fixes or Improvements
- CI: the test runner gives lldb 120 s instead of 30 s to collect stacks from debug and sanitizer servers, and a killed lldb no longer leaves the server wedged with
SIGTRAP: its JIT-loader breakpoint is kept out of the server. (#2385 by @filimonov) - Fix Inconsistent KeyCondition behavior for wider-typed key comparisons (ClickHouse#109023 by @groeneai via #2470)
Documentation
- Improve swarm documentation (#2346 by @ianton-ru)
- Remove the outdated set of documentation. The up-to-date Antalya documentation lives exclusively in docs/en/antalya from now on. (#2348 by @arthurpassos)
And ALL features from previous Antalya releases
Build report
Packages
Available for both AMD64 and Aarch64 from https://builds.altinity.cloud/#altinityantalya as either .deb, .rpm, or .tgz
Docker images
Available for both AMD64 and Aarch64: altinity/clickhouse-server:26.6.8.20001.altinityantalya
Full Changelog: 2073b1f...9af7dce