Separate out the pointer operations
This commit is contained in:
parent
23b352f936
commit
081a1922c7
|
@ -240,7 +240,6 @@ pub fn store_fully<PT: ProgressTracker>(
|
|||
parent: Option<String>,
|
||||
num_workers: u8,
|
||||
progress_bar: &mut PT,
|
||||
use_pipelined_storage: bool,
|
||||
) -> anyhow::Result<()> {
|
||||
if let Some(parent) = parent.as_ref() {
|
||||
let mut parent_pointer = pile.read_pointer(parent)?.ok_or_else(|| {
|
||||
|
@ -255,6 +254,29 @@ pub fn store_fully<PT: ProgressTracker>(
|
|||
differentiate_node_in_place(&mut root_node, &parent_node.node)?;
|
||||
}
|
||||
|
||||
let pointer_data = store_without_pointer_ops(
|
||||
&pile,
|
||||
&root_dir,
|
||||
root_node,
|
||||
parent,
|
||||
num_workers,
|
||||
progress_bar,
|
||||
)?;
|
||||
|
||||
// TODO(newver) Allow the pointer to be returned separately.
|
||||
pile.write_pointer(&new_pointer_name, &pointer_data)?;
|
||||
pile.flush()?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn store_without_pointer_ops<PT: ProgressTracker>(
|
||||
pile: &Arc<Pile<Box<dyn RawPile>>>,
|
||||
root_dir: &PathBuf,
|
||||
mut root_node: TreeNode,
|
||||
parent: Option<String>,
|
||||
num_workers: u8,
|
||||
progress_bar: &mut PT,
|
||||
) -> anyhow::Result<PointerData> {
|
||||
// TODO make these configurable
|
||||
let sps = StoragePipelineSettings {
|
||||
num_compressors: get_number_of_workers("YAMA_PL_COMPRESSORS") as u32,
|
||||
|
@ -301,9 +323,5 @@ pub fn store_fully<PT: ProgressTracker>(
|
|||
uid_lookup,
|
||||
gid_lookup,
|
||||
};
|
||||
|
||||
// TODO(newver) Allow the pointer to be returned separately.
|
||||
pile.write_pointer(&new_pointer_name, &pointer_data)?;
|
||||
pile.flush()?;
|
||||
Ok(())
|
||||
Ok(pointer_data)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue