* Use only |name_parts| as primary name source
* Restore legacy logic for table restoration
* Fix build
* Fix tests
* Add pytest server config
* Fix tests
* Fixes due to review
This should significantly reduce the MemoryTracking drift, test shows
that there is 0 drift after query storm (100 queries, via http/tcp/tcp
in one session).
TL;DR;
To track memory, clickhouse creates memory tracker object for each
thread **explicitly**, but until it is not created the memory
allocations are not under account.
There should not be lot of allocations w/o memory tracker, since most of
the time it is created early enough, but even this maybe enough to
trigger some problems.
Plus sometimes it is not possible to create it, for example some 3d
party library does not allow to do this explicitly:
- for example before #15740 allocations from librdkafka threads,
- or even worse, poco threads, they don't have any routines to do this.
This won't be a problem for `MemoryTracking` metric if the deallocation
will be done from the same thread w/o memory tracker (or vise versa),
but this is not always true.
NOTE, that this will slow down per-thread allocations w/o memory
tracker, since before this patch there were no memory tracking for them
while now they will be accounted in total_memory_tracker, and for
total_memory_tracker max_untracked_memory is always reached.
But this should not be significant.
jemalloc relies on working MADV_DONTNEED (that fact that after
madvise(MADV_DONTNEED) returns success, after subsequent access to those
pages they will be zeroed).
However qemu does not support this, yet [1], and you can get very tricky
assert if you will run clickhouse-server under qemu:
<jemalloc>: ../contrib/jemalloc/src/extent.c:1195: Failed assertion: "p[i] == 0"
[1]: https://patchwork.kernel.org/patch/10576637/
But after this patch you will get pretty error:
$ qemu-x86_64-static programs/clickhouse
MADV_DONTNEED does not zeroed page. jemalloc will be broken
* master: (279 commits)
Convert to python3 (#15007)
update en and ru docs: add 128/256 types (#15515)
Drop unused code for numeric_limits<int128> in MergeTreeDataSelectExecutor (#15519)
Fix comment
More defaults on defaults
Recursive defaults
Fix bash
Update ActionsVisitor.cpp
Don't add memcpy for sanitizers builds
Fix gRPC build scripts.
Neutrialize thinlto's memcpy libcall gen.
Revert "Add fno-builtin-memcpy"
Throw an error when a single parameter is passed to ReplicatedMergeTree instead of ignoring it
Update SECURITY.md
Update tsan_suppressions.txt
Update ActionsVisitor.cpp
remove unrelated changes
Update SECURITY.md
fixes
Update ActionsVisitor.cpp
...