Azat Khuzhin
4bc90d1dd7
Fix data-race between flush() and startup() in StorageBuffer
...
Stress tests found [1], TSan report:
==================
WARNING: ThreadSanitizer: data race (pid=485)
Read of size 8 at 0x7b5001280bd8 by thread T567 (mutexes: write M612061890855345680):
1 std::__1::shared_ptr<DB::BackgroundSchedulePoolTaskInfo>::operator bool() const obj-x86_64-linux-gnu/../contrib/libcxx/include/memory:2851:62 (clickhouse+0x159140a6)
2 bool std::__1::operator!=<DB::BackgroundSchedulePoolTaskInfo>() obj-x86_64-linux-gnu/../contrib/libcxx/include/memory:3447:30 (clickhouse+0x159140a6)
3 DB::BackgroundSchedulePoolTaskHolder::operator bool() const obj-x86_64-linux-gnu/../src/Core/BackgroundSchedulePool.h:164:46 (clickhouse+0x159140a6)
4 DB::StorageBuffer::flush() obj-x86_64-linux-gnu/../src/Storages/StorageBuffer.cpp:675:10 (clickhouse+0x159140a6)
Previous write of size 8 at 0x7b5001280bd8 by thread T586 (mutexes: write M191819750614415520):
2 std::__1::shared_ptr<DB::BackgroundSchedulePoolTaskInfo>::operator=(std::__1::shared_ptr<DB::BackgroundSchedulePoolTaskInfo>&&) obj-x86_64-linux-gnu/../contrib/libcxx/include/memory:3243:34 (clickhouse+0x15913e22)
3 DB::BackgroundSchedulePoolTaskHolder::operator=() obj-x86_64-linux-gnu/../src/Core/BackgroundSchedulePool.h:156:110 (clickhouse+0x15913e22)
4 DB::StorageBuffer::startup() obj-x86_64-linux-gnu/../src/Storages/StorageBuffer.cpp:668:18 (clickhouse+0x15913e22)
5 DB::InterpreterCreateQuery::doCreateTable() obj-x86_64-linux-gnu/../src/Interpreters/InterpreterCreateQuery.cpp:1092:10 (clickhouse+0x149bef7b)
6 DB::InterpreterCreateQuery::createTable() obj-x86_64-linux-gnu/../src/Interpreters/InterpreterCreateQuery.cpp:952:20 (clickhouse+0x149ba9f5)
7 DB::InterpreterCreateQuery::execute() obj-x86_64-linux-gnu/../src/Interpreters/InterpreterCreateQuery.cpp:1302:16 (clickhouse+0x149c1086)
[1]: https://clickhouse-test-reports.s3.yandex.net/0/1c9778603ff49563d1d3d0d357de0608167e504d/stress_test_(thread).html
Fixes : #29416
2021-10-10 04:03:36 +03:00
Alexey Milovidov
fe6b7c77c7
Rename "common" to "base"
2021-10-02 10:13:14 +03:00
Nikolai Kochetov
a790d391c0
Merge branch 'master' into rewrite-pushing-to-views
2021-09-20 19:43:15 +03:00
Anton Popov
1c80a95b36
slightly better code near reading of subcolumns
2021-09-18 22:34:54 +03:00
Nikolai Kochetov
341553febd
Fix build.
2021-09-16 20:40:42 +03:00
Nikolai Kochetov
0e267c50b4
Merge branch 'master' into rewrite-pushing-to-views
2021-09-14 16:13:54 +03:00
Nikolai Kochetov
999a4fe831
Fix other tests.
2021-09-08 21:29:38 +03:00
Mike Kot
8e9aacadd1
Initial: replacing hardcoded toString for enums with magic_enum
2021-09-06 16:24:03 +02:00
Nikolai Kochetov
66a76ab70f
Rewrite PushingToViewsBlockOutputStream part 6
2021-09-03 20:29:36 +03:00
Nikolai Kochetov
9c92f43359
Update storages.
2021-07-23 22:33:59 +03:00
Nikolai Kochetov
2dc5c89b66
Update Storage::write
2021-07-23 17:25:35 +03:00
Alexey Milovidov
261a220227
Remove some code
2021-07-17 21:06:46 +03:00
Anton Popov
9e3af27f40
better performance of getSampleBlockForColumns
2021-07-15 20:36:48 +03:00
Anton Popov
5f71a6f5bb
improve performance of getting columns list
2021-07-15 16:29:01 +03:00
Nikolai Kochetov
6bc0a628cd
Remove PrewhereDAGInfo.
2021-06-25 17:49:28 +03:00
Maksim Kita
67e9b85951
Merge ext into common
2021-06-16 23:28:41 +03:00
Alexey Milovidov
447d7bb8cd
Minor changes
2021-06-14 07:13:35 +03:00
Dmitrii Kovalkov
a4d1b9b07d
Fix
2021-05-24 16:55:05 +03:00
Azat Khuzhin
f20799f683
Destroy Buffer() tables before others (within one database)
...
This will reduce amount of data that may be lost at shutdown.
v2: replace dynamic_cast with IStorage::isBuffer (@kitaisreal)
v3: replace IStorage::isBuffer with IStorage::flush (@alexey-milovidov)
v4: flush() for StorageProxy/StorageTableFunction
2021-05-16 13:23:53 +03:00
Kseniia Sumarokova
99e2f83c69
Merge pull request #23548 from ucasFL/table-comment
...
Implement table comments
2021-05-15 19:56:16 +03:00
Maksim Kita
f3ee14d24a
Merge pull request #24066 from azat/buffer-total-lock-contention
...
Do not acquire lock for total_bytes/total_rows for Buffer engine
2021-05-13 11:15:06 +03:00
feng lv
c6f8ab9826
fix
2021-05-13 02:05:53 +00:00
Azat Khuzhin
074b57fe82
Do not acquire lock for total_bytes/total_rows for Buffer engine
...
When Buffer() is under preassure, acquiring per-layer lock may take
significant time. And so the following query may take significant amount of time:
SELECT total_bytes, total_rows FROM system.tables WHERE engine='Buffer'
2021-05-12 23:38:00 +03:00
feng lv
9035e3a643
fix test and conflict
2021-05-11 16:22:24 +00:00
Amos Bird
cd6414639e
add metadata_snapshot to getQueryProcessingStage
2021-05-11 18:12:26 +08:00
Alexey Milovidov
8d62c42eb9
A bunch of changes for PVS-Studio
2021-05-08 19:11:50 +03:00
feng lv
39f68bf5ff
fix conflict
2021-05-02 16:33:45 +00:00
feng lv
aed2f337e9
Fix CLEAR COLUMN does not work after #21303
2021-04-30 05:02:32 +00:00
feng lv
4ffe199d39
Implement table comments
2021-04-23 12:18:23 +00:00
alexey-milovidov
74a0ac6917
Merge pull request #23160 from azat/logging-v2
...
[RFC] Change logging from trace to debug for messages with rows/bytes
2021-04-16 21:18:32 +03:00
Azat Khuzhin
19e0439629
Add ability to flush buffer only in background for StorageBuffer
...
Add 3 new engine arguments:
- flush_time
- flush_rows
- flush_bytes
That will be checked only for background flush, this maybe useful if
INSERT latency is "crucial".
2021-04-15 21:22:13 +03:00
Azat Khuzhin
d2cf03ea41
Change logging from trace to debug for messages with rows/bytes
2021-04-15 21:00:16 +03:00
Ivan
495c6e03aa
Replace all Context references with std::weak_ptr ( #22297 )
...
* Replace all Context references with std::weak_ptr
* Fix shared context captured by value
* Fix build
* Fix Context with named sessions
* Fix copy context
* Fix gcc build
* Merge with master and fix build
* Fix gcc-9 build
2021-04-11 02:33:54 +03:00
Nikolai Kochetov
28ca191102
Merge pull request #22087 from ClickHouse/better-filter-push-down
...
Better filter push down
2021-04-09 10:22:17 +03:00
Azat Khuzhin
c4a7e81287
Add metric to track how much time is spend during waiting for Buffer layer lock
...
It uses very fast CLOCK_MONOTONIC_COARSE, so this should not be a
problem.
Also note that there is no sense in using microseconds/nanoseconds since
accuracy of CLOCK_MONOTONIC_COARSE usually milliseconds.
2021-04-06 21:13:24 +03:00
Nikolai Kochetov
0e2f52518f
Extract converting from UnionStep.
2021-03-25 12:57:14 +03:00
Nikolai Kochetov
a669f7d641
Merge branch 'master' into refactor-actions-dag
2021-03-05 18:21:14 +03:00
Nikolai Kochetov
9a39459888
Refactor ActionsDAG
2021-03-04 20:38:12 +03:00
Nikolai Kochetov
15921fbfcb
Remove index by name from ActionsDAG
2021-03-03 23:01:07 +03:00
Anton Popov
a4c00ab5dc
Merge pull request #21303 from ucasFL/forbid
...
Forbid to drop a column if it's referenced by materialized view
2021-03-03 02:55:06 +03:00
Nikolai Kochetov
ffbea93b10
Merge pull request #19576 from traceon/row-policy-with-prewhere
...
Allow row policies with PREWHERE
2021-03-02 13:51:37 +03:00
feng lv
a26c9e64a9
fix
...
fix
2021-03-02 03:20:03 +00:00
feng lv
51021c1164
forbid to drop a column if it's referenced by materialized view
2021-02-28 05:24:39 +00:00
Nikolai Kochetov
d328bfa41f
Review fixes. Add setting max_optimizations_to_apply.
2021-02-26 19:29:56 +03:00
Nikolai Kochetov
ae73600fb0
Refactor row level security actions.
2021-02-15 22:48:06 +03:00
Denis Glazachev
45e90961f7
Store and process alias_actions in FilterInfo
2021-02-14 21:16:40 +04:00
Denis Glazachev
99a04b6c64
Merge branch 'master' into row-policy-with-prewhere
...
* master: (759 commits)
Suppress UBSan report in Decimal comparison
Suppress UBSan report in Decimal comparison
Fix UBSan report in arrayDifference
Update README.md
Non significant change in AggregationCommon
Print stack trace on SIGTRAP
Fix dependent test
Fix tests for better parallel run
Add test for already working code
Revert "Fix access control manager destruction order"
Update index.md
Update index.md
Update index.md
Bit more complicated example for isIPv4String - ru
Bit more complicated example for isIPv4String
cleanup
Replace database with ordinary
Added comments
Split tests to make them stable
Fixes
...
# Conflicts:
# src/Storages/MergeTree/MergeTreeRangeReader.cpp
2021-02-14 02:24:00 +04:00
Denis Glazachev
79592b73f8
Store filter info in prewhere info instead of multiple prewheres
...
Some cleanups
2021-02-14 02:07:13 +04:00
alexey-milovidov
2fe2190a20
Merge pull request #19721 from azat/buffer-profile
...
Add separate config directive for Buffer profile
2021-02-13 02:43:41 +03:00
Azat Khuzhin
935870b2c2
Add separate config directive for Buffer profile
...
If you push data via Buffer engine then all your queries will be done
from one user, however this is not always desired behavior, since this
will not allow to limit queries with max_concurrent_queries_for_user and
similar.
2021-02-10 21:40:26 +03:00