Skip to content

Commit e127d27

Browse files
committed
Disable using fs cache for backup/restore #2.
1 parent f427c77 commit e127d27

15 files changed

Lines changed: 40 additions & 19 deletions

src/Backups/BackupEntriesCollector.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,10 +77,12 @@ BackupEntriesCollector::BackupEntriesCollector(
7777
const ASTBackupQuery::Elements & backup_query_elements_,
7878
const BackupSettings & backup_settings_,
7979
std::shared_ptr<IBackupCoordination> backup_coordination_,
80+
const ReadSettings & read_settings_,
8081
const ContextPtr & context_)
8182
: backup_query_elements(backup_query_elements_)
8283
, backup_settings(backup_settings_)
8384
, backup_coordination(backup_coordination_)
85+
, read_settings(read_settings_)
8486
, context(context_)
8587
, on_cluster_first_sync_timeout(context->getConfigRef().getUInt64("backups.on_cluster_first_sync_timeout", 180000))
8688
, consistent_metadata_snapshot_timeout(context->getConfigRef().getUInt64("backups.consistent_metadata_snapshot_timeout", 600000))

src/Backups/BackupEntriesCollector.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ class BackupEntriesCollector : private boost::noncopyable
3030
BackupEntriesCollector(const ASTBackupQuery::Elements & backup_query_elements_,
3131
const BackupSettings & backup_settings_,
3232
std::shared_ptr<IBackupCoordination> backup_coordination_,
33+
const ReadSettings & read_settings_,
3334
const ContextPtr & context_);
3435
~BackupEntriesCollector();
3536

@@ -40,6 +41,7 @@ class BackupEntriesCollector : private boost::noncopyable
4041

4142
const BackupSettings & getBackupSettings() const { return backup_settings; }
4243
std::shared_ptr<IBackupCoordination> getBackupCoordination() const { return backup_coordination; }
44+
const ReadSettings & getReadSettings() const { return read_settings; }
4345
ContextPtr getContext() const { return context; }
4446

4547
/// Adds a backup entry which will be later returned by run().
@@ -93,6 +95,7 @@ class BackupEntriesCollector : private boost::noncopyable
9395
const ASTBackupQuery::Elements backup_query_elements;
9496
const BackupSettings backup_settings;
9597
std::shared_ptr<IBackupCoordination> backup_coordination;
98+
const ReadSettings read_settings;
9699
ContextPtr context;
97100
std::chrono::milliseconds on_cluster_first_sync_timeout;
98101
std::chrono::milliseconds consistent_metadata_snapshot_timeout;

src/Backups/BackupEntryFromSmallFile.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,37 +11,37 @@ namespace DB
1111
{
1212
namespace
1313
{
14-
String readFile(const String & file_path)
14+
String readFile(const String & file_path, const ReadSettings & read_settings)
1515
{
16-
auto buf = createReadBufferFromFileBase(file_path, /* settings= */ {});
16+
auto buf = createReadBufferFromFileBase(file_path, read_settings);
1717
String s;
1818
readStringUntilEOF(s, *buf);
1919
return s;
2020
}
2121

22-
String readFile(const DiskPtr & disk, const String & file_path, bool copy_encrypted)
22+
String readFile(const DiskPtr & disk, const String & file_path, const ReadSettings & read_settings, bool copy_encrypted)
2323
{
24-
auto buf = copy_encrypted ? disk->readEncryptedFile(file_path, {}) : disk->readFile(file_path);
24+
auto buf = copy_encrypted ? disk->readEncryptedFile(file_path, read_settings) : disk->readFile(file_path, read_settings);
2525
String s;
2626
readStringUntilEOF(s, *buf);
2727
return s;
2828
}
2929
}
3030

3131

32-
BackupEntryFromSmallFile::BackupEntryFromSmallFile(const String & file_path_)
32+
BackupEntryFromSmallFile::BackupEntryFromSmallFile(const String & file_path_, const ReadSettings & read_settings_)
3333
: file_path(file_path_)
3434
, data_source_description(DiskLocal::getLocalDataSourceDescription(file_path_))
35-
, data(readFile(file_path_))
35+
, data(readFile(file_path_, read_settings_))
3636
{
3737
}
3838

39-
BackupEntryFromSmallFile::BackupEntryFromSmallFile(const DiskPtr & disk_, const String & file_path_, bool copy_encrypted_)
39+
BackupEntryFromSmallFile::BackupEntryFromSmallFile(const DiskPtr & disk_, const String & file_path_, const ReadSettings & read_settings_, bool copy_encrypted_)
4040
: disk(disk_)
4141
, file_path(file_path_)
4242
, data_source_description(disk_->getDataSourceDescription())
4343
, copy_encrypted(copy_encrypted_ && data_source_description.is_encrypted)
44-
, data(readFile(disk_, file_path, copy_encrypted))
44+
, data(readFile(disk_, file_path, read_settings_, copy_encrypted))
4545
{
4646
}
4747

src/Backups/BackupEntryFromSmallFile.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ using DiskPtr = std::shared_ptr<IDisk>;
1313
class BackupEntryFromSmallFile : public BackupEntryWithChecksumCalculation<IBackupEntry>
1414
{
1515
public:
16-
explicit BackupEntryFromSmallFile(const String & file_path_);
17-
BackupEntryFromSmallFile(const DiskPtr & disk_, const String & file_path_, bool copy_encrypted_ = false);
16+
explicit BackupEntryFromSmallFile(const String & file_path_, const ReadSettings & read_settings_);
17+
BackupEntryFromSmallFile(const DiskPtr & disk_, const String & file_path_, const ReadSettings & read_settings_, bool copy_encrypted_ = false);
1818

1919
std::unique_ptr<SeekableReadBuffer> getReadBuffer(const ReadSettings &) const override;
2020
UInt64 getSize() const override { return data.size(); }

src/Backups/BackupsWorker.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ namespace
186186
auto read_settings = context->getReadSettings();
187187
read_settings.remote_throttler = context->getBackupsThrottler();
188188
read_settings.local_throttler = context->getBackupsThrottler();
189-
read_settings.enable_filesystem_cache = false;
189+
read_settings.enable_filesystem_cache = backup_settings.read_from_filesystem_cache_if_exists_otherwise_bypass_cache;
190190
read_settings.read_from_filesystem_cache_if_exists_otherwise_bypass_cache = backup_settings.read_from_filesystem_cache_if_exists_otherwise_bypass_cache;
191191
return read_settings;
192192
}
@@ -416,7 +416,7 @@ void BackupsWorker::doBackup(
416416
/// Prepare backup entries.
417417
BackupEntries backup_entries;
418418
{
419-
BackupEntriesCollector backup_entries_collector{backup_query->elements, backup_settings, backup_coordination, context};
419+
BackupEntriesCollector backup_entries_collector{backup_query->elements, backup_settings, backup_coordination, backup_create_params.read_settings, context};
420420
backup_entries = backup_entries_collector.run();
421421
}
422422

src/Storages/MergeTree/DataPartStorageOnDiskBase.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,7 @@ void DataPartStorageOnDiskBase::backup(
331331
const NameSet & files_without_checksums,
332332
const String & path_in_backup,
333333
const BackupSettings & backup_settings,
334+
const ReadSettings & read_settings,
334335
bool make_temporary_hard_links,
335336
BackupEntries & backup_entries,
336337
TemporaryFilesOnDisks * temp_dirs) const
@@ -382,7 +383,7 @@ void DataPartStorageOnDiskBase::backup(
382383

383384
if (files_without_checksums.contains(filepath))
384385
{
385-
backup_entries.emplace_back(filepath_in_backup, std::make_unique<BackupEntryFromSmallFile>(disk, filepath_on_disk, copy_encrypted));
386+
backup_entries.emplace_back(filepath_in_backup, std::make_unique<BackupEntryFromSmallFile>(disk, filepath_on_disk, read_settings, copy_encrypted));
386387
continue;
387388
}
388389

src/Storages/MergeTree/DataPartStorageOnDiskBase.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ class DataPartStorageOnDiskBase : public IDataPartStorage
5555
const NameSet & files_without_checksums,
5656
const String & path_in_backup,
5757
const BackupSettings & backup_settings,
58+
const ReadSettings & read_settings,
5859
bool make_temporary_hard_links,
5960
BackupEntries & backup_entries,
6061
TemporaryFilesOnDisks * temp_dirs) const override;

src/Storages/MergeTree/IDataPartStorage.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,7 @@ class IDataPartStorage : public boost::noncopyable
221221
const NameSet & files_without_checksums,
222222
const String & path_in_backup,
223223
const BackupSettings & backup_settings,
224+
const ReadSettings & read_settings,
224225
bool make_temporary_hard_links,
225226
BackupEntries & backup_entries,
226227
TemporaryFilesOnDisks * temp_dirs) const = 0;

src/Storages/MergeTree/MergeTreeData.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5148,6 +5148,7 @@ MergeTreeData::PartsBackupEntries MergeTreeData::backupParts(
51485148
const DataPartsVector & data_parts,
51495149
const String & data_path_in_backup,
51505150
const BackupSettings & backup_settings,
5151+
const ReadSettings & read_settings,
51515152
const ContextPtr & local_context)
51525153
{
51535154
MergeTreeData::PartsBackupEntries res;
@@ -5186,6 +5187,7 @@ MergeTreeData::PartsBackupEntries MergeTreeData::backupParts(
51865187
part->getFileNamesWithoutChecksums(),
51875188
data_path_in_backup,
51885189
backup_settings,
5190+
read_settings,
51895191
make_temporary_hard_links,
51905192
backup_entries_from_part,
51915193
&temp_dirs);
@@ -5198,6 +5200,7 @@ MergeTreeData::PartsBackupEntries MergeTreeData::backupParts(
51985200
projection_part->getFileNamesWithoutChecksums(),
51995201
fs::path{data_path_in_backup} / part->name,
52005202
backup_settings,
5203+
read_settings,
52015204
make_temporary_hard_links,
52025205
backup_entries_from_part,
52035206
&temp_dirs);

src/Storages/MergeTree/MergeTreeData.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1336,7 +1336,7 @@ class MergeTreeData : public IStorage, public WithMutableContext
13361336
using PartsBackupEntries = std::vector<PartBackupEntries>;
13371337

13381338
/// Makes backup entries to backup the parts of this table.
1339-
PartsBackupEntries backupParts(const DataPartsVector & data_parts, const String & data_path_in_backup, const BackupSettings & backup_settings, const ContextPtr & local_context);
1339+
PartsBackupEntries backupParts(const DataPartsVector & data_parts, const String & data_path_in_backup, const BackupSettings & backup_settings, const ReadSettings & read_settings, const ContextPtr & local_context);
13401340

13411341
class RestoredPartsHolder;
13421342

0 commit comments

Comments
 (0)