src/client/remote_chunk_reader.rs: implement simple caching

This commit is contained in:
Dietmar Maurer
2019-07-05 10:42:46 +02:00
parent afb4cd28be
commit f4bf7dfcc7
3 changed files with 64 additions and 3 deletions

View File

@ -635,7 +635,6 @@ fn restore(
};
let client = client.start_backup_reader(repo.store(), &backup_type, &backup_id, backup_time, true).wait()?;
let chunk_reader = RemoteChunkReader::new(client.clone(), crypt_config);
use std::os::unix::fs::OpenOptionsExt;
@ -651,6 +650,10 @@ fn restore(
let index = DynamicIndexReader::new(tmpfile)
.map_err(|err| format_err!("unable to read dynamic index '{}' - {}", archive_name, err))?;
let most_used = index.find_most_used_chunks(8);
let chunk_reader = RemoteChunkReader::new(client.clone(), crypt_config, most_used);
let mut reader = BufferedDynamicReader::new(index, chunk_reader);
let feature_flags = pxar::CA_FORMAT_DEFAULT;
@ -669,6 +672,10 @@ fn restore(
let index = FixedIndexReader::new(tmpfile)
.map_err(|err| format_err!("unable to read fixed index '{}' - {}", archive_name, err))?;
let most_used = index.find_most_used_chunks(8);
let chunk_reader = RemoteChunkReader::new(client.clone(), crypt_config, most_used);
let mut reader = BufferedFixedReader::new(index, chunk_reader);
let mut writer = std::fs::OpenOptions::new()