Commit Graph

727 Commits

Author SHA1 Message Date
Raúl Marín
48ab0721a8 Unify lightweight mutation control 2024-04-02 11:52:14 +02:00
kssenii
e3d2fb28cf Merge remote-tracking branch 'origin/master' into revert-refert-of-broken-projections-handling 2024-03-25 13:54:39 +01:00
Alexey Milovidov
9210712f4f
Merge pull request #60112 from Unalian/feat-59377
[feature]: allow to attach parts from a different disk
2024-03-24 23:12:43 +03:00
unashi
adc964568c [update] Merge the on same disk and on another disk scenarios into cloneAndLoadDataPart; remove the try catch; instead of obtaining the copied destination hard disk through traversal, the destination hard disk is obtained through reservation. 2024-03-21 15:44:27 +08:00
Robert Schulze
c17536c3b3
Enable clang-tidy in headers 2024-03-18 08:00:09 +00:00
unashi
c78224c2ff Merge branch 'master' into feat-59377 2024-03-13 11:24:00 +08:00
Kseniia Sumarokova
7e7fc4127d
Merge branch 'master' into revert-refert-of-broken-projections-handling 2024-03-10 10:01:34 +01:00
Alexey Milovidov
d337379385 Remove in-memory data parts, step 2 2024-03-10 06:44:26 +01:00
Anton Popov
f582797b36 Merge remote-tracking branch 'upstream/master' into HEAD 2024-03-06 14:14:42 +00:00
Anton Popov
95611889dc fix tests 2024-03-01 18:44:33 +00:00
Robert Schulze
4ee1aa8c7c
Fixing more headers 2024-02-29 15:40:30 +00:00
Anton Popov
0ceeb13b7f refactoring of virtual columns 2024-02-28 19:58:55 +00:00
Anton Popov
9f8ac76345 Merge remote-tracking branch 'upstream/master' into HEAD 2024-02-28 14:42:37 +00:00
kssenii
7ac453ab4c Revert "Merge pull request #60436 from nickitat/revert_56864"
This reverts commit 8719a601fa, reversing
changes made to 657857f982.
2024-02-27 23:06:14 +08:00
Nikita Mikhaylov
8719a601fa
Merge pull request #60436 from nickitat/revert_56864
Revert "Merge pull request #56864 from ClickHouse/broken-projections-better-handling"
2024-02-27 15:25:15 +01:00
Nikita Taranov
854f1b064b Revert "Merge pull request #56864 from ClickHouse/broken-projections-better-handling"
This reverts commit caaafbcedb, reversing
changes made to d45b248f96.
2024-02-27 00:13:28 +01:00
Amos Bird
07a0adceb9
Only use query_info.filter_actions_dag for key analysis 2024-02-26 02:31:55 +08:00
Alexander Tokmakov
ef3b19167f
Merge pull request #58036 from MikhailBurdukov/backoff_for_failed_mutations
Backoff policy for failed mutation.
2024-02-23 15:27:41 +01:00
Alexander Tokmakov
32607cc796
Merge pull request #60159 from ClickHouse/fix_create_replica
Skip sanity checks on secondary CREATE query
2024-02-23 13:53:47 +01:00
Sergei Trifonov
2c766cf75f
Merge pull request #59507 from ClickHouse/alter-table-forget-partition
Add `FORGET PARTITION` query to remove old partition nodes from ZooKeeper
2024-02-23 12:55:08 +01:00
Azat Khuzhin
a4f765cae7
Improve performance of SELECTs with active mutations (#59531)
* Configure keeper for perf tests

Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>

* Improve performance of SELECTs with active mutations

getAlterMutationCommandsForPart() can be a hot path for query execution
when there are pending mutations.

- LOG_TEST - it is not only check one bool, but actually a bunch of
  atomics as well.

- Return std::vector over std::map (map is not required there) - no
  changes in performance.

- Copy only RENAME_COLUMN (since only this mutation is required by
  AlterConversions).

And here are results:

run|result
-|-
SELECT w/o ALTER|queries: 1565, QPS: 355.259, RPS: 355.259
SELECT w/ ALTER unpatched|queries: 2099, QPS: 220.623, RPS: 220.623
SELECT w/ ALTER and w/o LOG_TEST|queries: 2730, QPS: 235.859, RPS: 235.859
SELECT w/ ALTER and w/o LOG_TEST and w/ RENAME_COLUMN only|queries: 2995, QPS: 290.982, RPS: 290.982

But there are still room for improvements, at least MergeTree engines
could implement getStorageSnapshotForQuery().

Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>

* Add AlterConversions::supportsMutationCommandType(), flatten vector<vector<MutationCommand>>

* Work around what appears to be a clang static analysis bug

---------

Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
Co-authored-by: Michael Kolupaev <michael.kolupaev@clickhouse.com>
2024-02-22 08:51:10 +00:00
Anton Popov
23f300b581 refactoring of virtual columns 2024-02-21 00:57:35 +00:00
Alexander Tokmakov
ec0986af0b skip sanity checks on secondary create query 2024-02-20 21:59:28 +01:00
Sergei Trifonov
d2aebe2c9a
Merge branch 'master' into alter-table-forget-partition 2024-02-20 13:56:50 +01:00
MikhailBurdukov
c2d641c658
Merge branch 'master' into backoff_for_failed_mutations 2024-02-20 11:48:59 +03:00
unashi
8de4a9dbfd [fix] delete trailing whitespaces 2024-02-20 11:42:40 +08:00
unashi
f62ccc75ec [merge] solve 2024-02-19 19:28:16 +08:00
MikhailBurdukov
c3ab9071fc
Merge branch 'master' into backoff_for_failed_mutations 2024-02-18 17:48:11 +03:00
MikhailBurdukov
b227e5dd3f Review changes 2024-02-18 13:37:12 +00:00
unashi
1549725edd [feature]: allow to attach parts from a different disk 2024-02-18 19:26:12 +08:00
Vitaly Baranov
3323d5ce81 Move threadPoolCallbackRunner to the "Common" folder. 2024-02-17 21:59:51 +01:00
Alexander Tokmakov
77e4b0c8d9 Revert "Merge pull request #59122 from arthurpassos/bring_back_attach_partition_pr"
This reverts commit ac90637170, reversing
changes made to fe2b5cde05.
2024-02-07 02:52:43 +01:00
MikhailBurdukov
b90a5b94a8 Move setting to mergetree 2024-02-04 11:24:26 +00:00
serxa
1d31ac2a0c add FORGET PARTITION query to remove old parition nodes from ZooKeeper 2024-02-02 10:03:31 +00:00
MikhailBurdukov
778efb8953
Merge branch 'master' into backoff_for_failed_mutations 2024-01-30 16:08:52 +03:00
MikhailBurdukov
5e845172da Enable per query setting 2024-01-30 12:42:03 +00:00
Kseniia Sumarokova
e16aaa8d81
Merge branch 'master' into broken-projections-better-handling 2024-01-30 10:54:22 +01:00
Arthur Passos
15d04d0a78
Merge branch 'master' into bring_back_attach_partition_pr 2024-01-29 15:16:49 -03:00
Maksim Kita
07750ee949 Added AtomicLogger 2024-01-28 13:55:44 +03:00
Kseniia Sumarokova
99653fc778
Merge branch 'master' into broken-projections-better-handling 2024-01-26 16:27:23 +01:00
Arthur Passos
ce6877cbb6
Merge branch 'ClickHouse:master' into bring_back_attach_partition_pr 2024-01-26 10:57:11 -03:00
Maksim Kita
2a327107b6 Updated implementation 2024-01-25 14:31:49 +03:00
Maksim Kita
42029f42e7 Table CREATE DROP Poco::Logger memory leak fix 2024-01-25 14:31:18 +03:00
Arthur Passos
799a94081b Revert "Revert "Allow to attach partition from table with different partition expression when destination partition expression doesn't re-partition""
This reverts commit a1c83e2f51.
2024-01-23 11:40:42 -03:00
Robert Schulze
a1c83e2f51
Revert "Allow to attach partition from table with different partition expression when destination partition expression doesn't re-partition" 2024-01-23 15:26:04 +01:00
kssenii
b76630c955 Merge remote-tracking branch 'origin/master' into broken-projections-better-handling 2024-01-23 11:34:58 +01:00
Arthur Passos
24b8bbe9fa
Allow to attach partition from table with different partition expression when destination partition expression doesn't re-partition (#39507)
* temp commit

* temp commit

* draft impl for feedback

* fix weird style changes

* fix weird style changes

* fix weird style changes

* fix weird style changes

* fix weird style changes

* aa

* aa

* Add integ tests and remove partition key restriction

* fix small incosistency in partition id

* style fix

* style fix

* style fix

* use existing DataPartStorageBuilder instead of new one

* Refactor part clone to make it more readable and maintainable

* Add MergeTreeDataPartCloner docs

* define ErrorCodes::BAD_ARGUMENTS

* Rebase

* camel case methods

* address some comments

* yet another rebase?

* Move from integ tests to stateless tests

* address more comments

* add finalize on min_max_idx files

* Add sync option to DistinctPartitionExpCloner

* just a temp test

* revert temp change

* Use echoOn to distinguish test queries

* remove comment

* fix build issue during rebase

* atempt to fix build after rebase

* finally fix build

* clear minmaxidx hyperrectangle before loading it

* Fix error on min_max files deletion where it was being assumed that partition expression contained all columns

* get it to the state it was previously

* add missing include

* getting functional?

* refactoring and renaming

* some more refactoring

* extern bad arguments

* try to fix style

* improvements and docs

* remove duplicate includes

* fix crash

* make tests more stable by ordering

* rebase once again..

* fix

* make ci happy?

* fix rebase issues

* docs

* rebase, but prolly needs to be improved

* refactor out from nasty inheritance to static methods

* fix style

* work around optional

* refactor & integrate some changes

* update column_type

* add tests by dencrane

* set utc

* fix ref file

* fix tests

* use MergeTree instead of SummingMergeTree

* mark MergeTreeDataPart::getBlock as const

* address a few comments

* compute module function name size at compile time

* simplify branching in getPartitionAstFieldsCount

* remove column_indexes argument

* merge getBlock with buildBlock

* add some const specifiers

* small adjustments

* remove no longer needed isNull check

* use std::min and max to update global min max idx

* add some assertions

* forward declare some symbols

* fix grammar

* forward decl

* try to fix build..

* remove IFunction forward decl

* Revert "use std::min and max to update global min max idx"

This reverts commit b2fe79dda7.

* Revert "remove no longer needed isNull check"

This reverts commit 129db2610f.

* Revert "Revert "remove no longer needed isNull check""

This reverts commit 9416087dd8.

* Revert "Revert "use std::min and max to update global min max idx""

This reverts commit 20246d4416.

* remove some comments

* partial use of MonotonicityCheckMatcher

* ranges

* remove KeyDescriptionMonotonicityChecker

* remove duplication of applyfunction

* move functions to anonymous namespace

* move functions to cpp

* Relax partition compatibility requirements by accepting subset, add tests from partitioned to unpartitioned

* updte reference file

* Support for partition by a, b, c to partition by a, b

* refactoring part 1

* refactoring part 2, use hyperrectangle, still not complete

* refactoring part 3, build hyperrectangle with intersection of source & destination min max columns

* Support attaching to table with partition expression of multiple expressions

* add tests

* rename method

* remove some code duplication

* draft impl for replicatedmergetree, need to dive deeper

* ship ref file

* fix impl for replicatedmergetree..

* forbid attach empty partition replicatedmergetree

* Add replicated merge tree integration tests

* add test missing files

* fix black

* do not check for monotonicity of empty partition

* add empty tests & fix replicated

* remove no longer needed buildBlockWithMinMaxINdexes

* remove column logic in buildHyperrectangle

* simplify implementation by using existing methods

* further simplify implementation

* move all MergeTreeDataPartClone private methods to .cpp file

* decrease decomposition

* use different namespaces

* reduce code duplication

* fix style

* address a few comments

* add chassert to assert arguments size on MonotonicityCheckVisitor

* remove deleteMinMaxFiles method

* remove useless checks from sanitycheck

* add tests for attach partition (not id)

* Remove sanityCheckASTPartition and bring back conditional getPartitionIDFromQuery

* remove empty block comment

* small fixes

* fix formatting

* add missing include

* remove duplicate iuncludes

* trigger ci

* reduce some code duplication

* use updated partition id on replicatedmergetree

* fix build

* fix build

* small refactor

* do not use insert increment on fetch part

* remove duplicate includes

* add one more integ test

* black

* black

* rely on partition exp instead of partition id on replicated part fetch to decide if it is a different partition exp

* add one more integ test

* add order by clause

* fix black

---------

Co-authored-by: Alexey Milovidov <milovidov@clickhouse.com>
2024-01-22 21:00:04 +01:00
MikhailBurdukov
97e0e5fc9c typo 2024-01-18 15:43:43 +00:00
MikhailBurdukov
be58c1fe44 Fix style 2024-01-18 15:43:43 +00:00
MikhailBurdukov
f6fb20d6cf Backoff policy for failed mutation. 2024-01-18 15:43:43 +00:00