src/client/remote_chunk_reader.rs: implement simple caching
This commit is contained in:
@ -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()
|
||||
|
Reference in New Issue
Block a user