From b0b865c32e5a0396e5b91df9e16db824351dc9e4 Mon Sep 17 00:00:00 2001 From: kssenii Date: Tue, 7 Feb 2023 18:50:31 +0100 Subject: [PATCH] Resubmit prefetches --- src/Common/ElapsedTimeProfileEventIncrement.h | 21 +- src/Common/ProfileEvents.cpp | 3 + src/Common/Stopwatch.h | 3 +- src/Common/SystemLogBase.cpp | 1 + src/Common/SystemLogBase.h | 1 + .../CachedCompressedReadBuffer.cpp | 4 +- src/Compression/CachedCompressedReadBuffer.h | 2 +- .../CompressedReadBufferFromFile.cpp | 4 +- .../CompressedReadBufferFromFile.h | 2 +- src/Core/Settings.h | 9 + ...chronousReadIndirectBufferFromRemoteFS.cpp | 64 +- ...ynchronousReadIndirectBufferFromRemoteFS.h | 27 +- .../IO/CachedOnDiskReadBufferFromFile.cpp | 2 +- src/Disks/IO/ReadBufferFromRemoteFSGather.cpp | 26 +- src/Disks/IO/ReadBufferFromRemoteFSGather.h | 7 +- .../IO/ReadIndirectBufferFromRemoteFS.cpp | 2 +- src/Disks/IO/ThreadPoolReader.cpp | 4 +- src/Disks/IO/ThreadPoolRemoteFSReader.cpp | 43 +- src/Disks/ObjectStorages/StoredObject.cpp | 2 +- src/Disks/ObjectStorages/StoredObject.h | 2 + src/IO/AsyncReadCounters.cpp | 37 ++ src/IO/AsyncReadCounters.h | 31 + ...ynchronousReadBufferFromFileDescriptor.cpp | 13 +- ...AsynchronousReadBufferFromFileDescriptor.h | 6 +- src/IO/AsynchronousReader.h | 3 + src/IO/CompressedReadBufferWrapper.h | 2 +- src/IO/PeekableReadBuffer.h | 2 +- src/IO/ReadBuffer.h | 6 +- src/IO/ReadBufferFromFileDescriptor.cpp | 2 +- src/IO/ReadBufferFromFileDescriptor.h | 2 +- src/IO/ReadBufferFromS3.cpp | 3 + src/IO/ReadSettings.h | 2 + src/IO/SeekAvoidingReadBuffer.h | 2 +- src/Interpreters/Context.cpp | 92 ++- src/Interpreters/Context.h | 16 + .../FilesystemReadPrefetchesLog.cpp | 61 ++ .../FilesystemReadPrefetchesLog.h | 48 ++ src/Interpreters/QueryLog.cpp | 7 + src/Interpreters/QueryLog.h | 2 + src/Interpreters/SystemLog.cpp | 15 +- src/Interpreters/SystemLog.h | 4 +- src/Interpreters/executeQuery.cpp | 2 + .../QueryPlan/ReadFromMergeTree.cpp | 45 +- .../HDFS/AsynchronousReadBufferFromHDFS.cpp | 17 +- .../HDFS/AsynchronousReadBufferFromHDFS.h | 9 +- src/Storages/HDFS/ReadBufferFromHDFS.cpp | 4 +- src/Storages/HDFS/ReadBufferFromHDFS.h | 1 - src/Storages/Hive/StorageHive.cpp | 2 +- src/Storages/MergeTree/IMergeTreeReader.h | 2 + .../MergeTreeBaseSelectProcessor.cpp | 92 ++- .../MergeTree/MergeTreeBaseSelectProcessor.h | 24 +- .../MergeTree/MergeTreeBlockReadUtils.cpp | 10 +- .../MergeTree/MergeTreeBlockReadUtils.h | 17 +- src/Storages/MergeTree/MergeTreeIOSettings.h | 2 + .../MergeTree/MergeTreePrefetchedReadPool.cpp | 612 ++++++++++++++++++ .../MergeTree/MergeTreePrefetchedReadPool.h | 128 ++++ src/Storages/MergeTree/MergeTreeReadPool.cpp | 4 +- src/Storages/MergeTree/MergeTreeReadPool.h | 37 +- .../MergeTree/MergeTreeReaderWide.cpp | 114 +++- src/Storages/MergeTree/MergeTreeReaderWide.h | 14 +- .../MergeTree/MergeTreeSelectProcessor.cpp | 4 +- .../MergeTreeThreadSelectProcessor.cpp | 16 +- .../MergeTreeThreadSelectProcessor.cpp.rej | 55 ++ src/Storages/StorageS3.cpp | 2 +- tests/clickhouse-test.rej | 9 + tests/config/install.sh | 1 + tests/config/install.sh.rej | 9 + tests/config/users.d/prefetch_settings.xml | 9 + .../test_profile_events_s3/test.py | 1 + .../test_ttl_move_memory_usage.py | 25 +- ...test_fix_extra_seek_on_compressed_cache.sh | 3 +- .../01045_order_by_pk_special_storages.sh | 4 +- .../01045_order_by_pk_special_storages.sh.rej | 10 + .../0_stateless/01293_show_settings.reference | 1 + .../01339_client_unrecognized_option.sh | 4 +- ...adaptive_granularity_block_borders.sql.rej | 8 + ...cache_on_write_with_small_segment_size.sql | 6 + utils/debug_remote_fs_performance/debug.sh | 58 ++ 78 files changed, 1731 insertions(+), 215 deletions(-) create mode 100644 src/IO/AsyncReadCounters.cpp create mode 100644 src/IO/AsyncReadCounters.h create mode 100644 src/Interpreters/FilesystemReadPrefetchesLog.cpp create mode 100644 src/Interpreters/FilesystemReadPrefetchesLog.h create mode 100644 src/Storages/MergeTree/MergeTreePrefetchedReadPool.cpp create mode 100644 src/Storages/MergeTree/MergeTreePrefetchedReadPool.h create mode 100644 src/Storages/MergeTree/MergeTreeThreadSelectProcessor.cpp.rej create mode 100644 tests/clickhouse-test.rej create mode 100644 tests/config/install.sh.rej create mode 100644 tests/config/users.d/prefetch_settings.xml create mode 100644 tests/queries/0_stateless/01045_order_by_pk_special_storages.sh.rej create mode 100644 tests/queries/0_stateless/01605_adaptive_granularity_block_borders.sql.rej create mode 100644 tests/queries/0_stateless/02503_cache_on_write_with_small_segment_size.sql create mode 100755 utils/debug_remote_fs_performance/debug.sh diff --git a/src/Common/ElapsedTimeProfileEventIncrement.h b/src/Common/ElapsedTimeProfileEventIncrement.h index 5b4c532f2e1..b30afd24a4c 100644 --- a/src/Common/ElapsedTimeProfileEventIncrement.h +++ b/src/Common/ElapsedTimeProfileEventIncrement.h @@ -20,17 +20,22 @@ struct ProfileEventTimeIncrement explicit ProfileEventTimeIncrement