Commit Graph

83513 Commits

Author SHA1 Message Date
alesapin
d7cae5ffb4 Fix build 2022-02-21 11:54:52 +03:00
alesapin
852757219f Make drop of alias column metadata only 2022-02-21 11:46:16 +03:00
alesapin
05571d6362
Merge pull request #34734 from ClickHouse/finally-enable-s3-async-writes
Enable async writes to S3.
2022-02-21 10:32:37 +03:00
alesapin
14c54c40f6
Merge pull request #34696 from kitaisreal/system-queries-on-cluster-fix
Fix system queries ON CLUSTER
2022-02-21 10:24:55 +03:00
Vitaly Baranov
6280efc0eb
Merge pull request #34782 from ClickHouse/revert-34596-allow-restrictive-without-permissive
Revert "Allow restrictive row policies without permissive"
2022-02-21 07:03:54 +03:00
Vitaly Baranov
7b97c986cb
Revert "Allow restrictive row policies without permissive" 2022-02-21 06:54:28 +03:00
Maksim Kita
883c7c21d1
Merge pull request #34690 from nvartolomei/nv/always-increment
Always update ProfileEvents (even on exceptions)
2022-02-21 00:03:44 +01:00
Maksim Kita
e049f6ada9
Update WriteBufferFromPocoSocket.cpp 2022-02-20 16:59:39 +01:00
Maksim Kita
d44f48fe1f
Update ReadBufferFromPocoSocket.cpp 2022-02-20 16:59:17 +01:00
alexey-milovidov
26d0e5438c
Merge pull request #33057 from azat/jemalloc-dev-branch
[RFC] Update jemalloc to 5.3RC
2022-02-20 14:19:41 +03:00
alexey-milovidov
a126ca7650
Merge pull request #34760 from Algunenano/any_performance
Improve the performance of the `ANY` aggregation function by acting over batches.
2022-02-20 13:58:41 +03:00
Vladimir C
5284083647
Merge pull request #34683 from vdimir/fix_aarch64/position_utf_8
Fix `positionUTF8` on aarch64
2022-02-20 11:35:40 +01:00
Raúl Marín
e0c6014ecd Mention scipy dep in performance bench README 2022-02-20 02:43:28 +01:00
Raúl Marín
8137f13fcd Improve ANY performance by acting over batches 2022-02-20 02:43:28 +01:00
alexey-milovidov
b75fbaa6a9
Merge pull request #34758 from ClickHouse/changelog-22.2
Changelog for version 22.2
2022-02-19 23:47:39 +03:00
Alexey Milovidov
ce56733e1a Update changelog 2022-02-19 21:47:17 +01:00
Alexey Milovidov
f07f8113d7 Editing the changelog 2022-02-19 21:00:58 +01:00
alexey-milovidov
73fe35e552
Update Volnitsky.h 2022-02-19 19:53:36 +03:00
alexey-milovidov
82728e03b5
Update Volnitsky.h 2022-02-19 19:52:38 +03:00
alexey-milovidov
25c75649fe
Update build.md 2022-02-19 19:20:47 +03:00
alexey-milovidov
d8af2dfba0
Update build.md 2022-02-19 19:19:34 +03:00
alexey-milovidov
42313befd3
Update build.md 2022-02-19 19:19:07 +03:00
Vitaly Baranov
874b2c8dcb
Merge pull request #34596 from vitlibar/allow-restrictive-without-permissive
Allow restrictive row policies without permissive
2022-02-19 21:45:28 +07:00
Nikolay Degterinsky
c3c1344f0b
Merge pull request #34718 from amosbird/logfilecmd
Allow only to specify --log-file without configuration
2022-02-19 16:11:27 +03:00
Maksim Kita
0bfac173f9
Merge pull request #34745 from bharatnc/ncb/fixes-to-s2
fix s2 functions having const columns
2022-02-19 12:20:25 +01:00
Alexey Milovidov
bb1e3ebba1 Fix year on the website, thanks Vova VG 2022-02-19 11:50:12 +01:00
Anton Popov
5ccee4e778
Merge pull request #34739 from azat/fix-fsync_part_directory
Fix ENOENT with fsync_part_directory and Vertical merge
2022-02-19 12:21:07 +03:00
Ilya Yatsishin
108e12b530
Merge pull request #34729 from vdimir/add-trusted-taiyang-li 2022-02-19 11:44:45 +03:00
bharatnc
233b4486ed add tests 2022-02-18 22:42:39 -08:00
bharatnc
b7678c1bc1 fix s2 functions having const columns 2022-02-18 22:42:27 -08:00
Azat Khuzhin
fef5f146e7 Fix ENOENT with fsync_part_directory and Vertical merge
fsync of the temporary part directory is superfluous anyway, and besides
that directory is not exists at that time, that will lead to ENOENT
error:

    2022.02.18 17:02:51.634565 [ 35639 ] {} <Error> void DB::MergeTreeBackgroundExecutor<DB::MergeMutateRuntimeQueue>::routine(DB::TaskRuntimeDataPtr) [Queue = DB::MergeMutateRuntimeQueue]: Code: 107. DB::ErrnoException: Cannot open file /var/lib/clickhouse/data/system/text_log/tmp_merge_202202_1864_3192_14/, errno: 2, strerror: No such file or directory. (FILE_DOESNT_EXIST), Stack trace (when copying this message, always include the lines below):

    0. DB::Exception::Exception() @ 0xb26ecfa in /usr/lib/debug/.build-id/01/8c328bd4858d67.debug
    1. DB::throwFromErrnoWithPath() @ 0xb2700ea in /usr/lib/debug/.build-id/01/8c328bd4858d67.debug
    2. DB::LocalDirectorySyncGuard::LocalDirectorySyncGuard() @ 0x14905531 in /usr/lib/debug/.build-id/01/8c328bd4858d67.debug
    3. DB::DiskLocal::getDirectorySyncGuard() const @ 0x148af3e3 in /usr/lib/debug/.build-id/01/8c328bd4858d67.debug
    4. DB::MergeTask::ExecuteAndFinalizeHorizontalPart::prepare() @ 0x157bef13 in /usr/lib/debug/.build-id/01/8c328bd4858d67.debug

Note, that IMergeTreeDataPart::renameTo() anyway will have fsync for the
directory.

Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-02-19 07:50:59 +03:00
alexey-milovidov
9630087131
Update app.py 2022-02-19 00:26:43 +03:00
alexey-milovidov
37fbf7c329
Merge branch 'master' into add-trusted-taiyang-li 2022-02-19 00:25:52 +03:00
Nikolai Kochetov
40a48c5670 Enable async writes to S3. 2022-02-18 18:32:04 +00:00
Nikolai Kochetov
e4d5db6161
Merge pull request #34717 from azat/merge-mutate-memory-tracker
Fix possible memory_tracker use-after-free (for async s3 writes) for merges/mutations
2022-02-18 19:28:43 +01:00
Maksim Kita
3dd6b91cbe
Merge pull request #34731 from kitaisreal/performance-tests-fix-h3
Performance tests fix H3
2022-02-18 19:21:38 +01:00
Vladimir C
fcec52f49c
Merge pull request #34612 from vdimir/fix_aarch64/01681_arg_min_max_if_fix
Adjust 01681_arg_min_max_if_fix
2022-02-18 18:35:52 +01:00
Vladimir C
9b7d011ee7
Merge pull request #34529 from vdimir/join-nullable-on-pipeline
Apply join_use_nulls on types before join
2022-02-18 18:34:44 +01:00
alexey-milovidov
b9a377c890
Update build.md 2022-02-18 20:01:44 +03:00
Maksim Kita
80b0efb367 Performance tests fix H3 2022-02-18 15:57:54 +00:00
Vladimir C
a249819c52
Merge pull request #34730 from ucasfl/name
rename name in ci check
2022-02-18 16:17:11 +01:00
Maksim Kita
187af5b8b9
Merge pull request #34699 from DevTeamBK/missing_noexcept
Adding noexcept for move constructor SharedContextHolder
2022-02-18 16:15:06 +01:00
vdimir
963e859f92
Ignore result in 01681_arg_min_max_if_fix 2022-02-18 14:10:06 +00:00
vdimir
7012489d97
Revert "Check float to integer overflow on aarch64"
This reverts commit 8a7100701b.
2022-02-18 14:07:35 +00:00
feng lv
3270e5f636 rename name in ci check 2022-02-18 14:06:16 +00:00
vdimir
6ca154858c
upd TableJoin::applyKeyConvertToTable 2022-02-18 13:40:57 +00:00
Azat Khuzhin
65e9b4879d Fix possible memory_tracker use-after-free for merges/mutations
There are two possible cases for execution merges/mutations:
1) from background thread
2) from OPTIMIZE TABLE query

1) is pretty simple, it's memory tracking structure is as follow:

    current_thread::memory_tracker = level=Thread / description="(for thread)" ==
      background_thread_memory_tracker = level=Thread / description="(for thread)"
    current_thread::memory_tracker.parent = level=Global / description="(total)"

  So as you can see it is pretty simple and MemoryTrackerThreadSwitcher
  does not do anything icky for this case.

2) is complex, it's memory tracking structure is as follow:

    current_thread::memory_tracker = level=Thread / description="(for thread)"
    current_thread::memory_tracker.parent = level=Process / description="(for query)" ==
      background_thread_memory_tracker = level=Process / description="(for query)"

  Before this patch to track memory (and related things, like sampling,
  profiling and so on) for OPTIMIZE TABLE query dirty hacks was done to
  do this, since current_thread memory_tracker was of Thread scope, that
  does not have any limits.

  And so if will change parent for it to Merge/Mutate memory tracker
  (which also does not have some of settings) it will not be correctly
  tracked.

  To address this Merge/Mutate was set as parent not to the
  current_thread memory_tracker but to it's parent, since it's scope is
  Process with all settings.

  But that parent's memory_tracker is the memory_tracker of the
  thread_group, and so if you will have nested ThreadPool inside
  merge/mutate (this is the case for s3 async writes, which has been
  added in #33291) you may get use-after-free of memory_tracker.

  Consider the following example:

    MemoryTrackerThreadSwitcher()
      thread_group.memory_tracker.parent = merge_list_entry->memory_tracker
      (see also background_thread_memory_tracker above)

    CurrentThread::attachTo()
      current_thread.memory_tracker.parent = thread_group.memory_tracker

    CurrentThread::detachQuery()
      current_thread.memory_tracker.parent = thread_group.memory_tracker.parent
      # and this is equal to merge_list_entry->memory_tracker

    ~MemoryTrackerThreadSwitcher()
      thread_group.memory_tracker = thread_group.memory_tracker.parent

  So after the following we will get incorrect memory_tracker (from the
  mege_list_entry) when the next job in that ThreadPool will not have
  thread_group, since in this case it will not try to update the
  current_thread.memory_tracker.parent and use-after-free will happens.

So to address the (2) issue, settings from the parent memory_tracker
should be copied to the merge_list_entry->memory_tracker, to avoid
playing with parent memory tracker.

Note, that settings from the query (OPTIMIZE TABLE) is not available at
that time, so it cannot be used (instead of parent's memory tracker
settings).

v2: remove memory_tracker.setOrRaiseHardLimit() from settings

Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-02-18 16:23:54 +03:00
vdimir
6eda8ef914
use isNullable function in join_common/convertTypeToNullable 2022-02-18 13:09:11 +00:00
vdimir
4ce64891f9
Add taiyang-li to trusted contributors 2022-02-18 13:59:47 +01:00
Maksim Kita
652980eec3
Merge pull request #34714 from azat/fix-custom_partitioning_local
Fix flaky 00502_custom_partitioning_local
2022-02-18 11:27:08 +01:00