Use Rust erasure library and turn on erasure (#3768)
* split out erasure into new crate; add implementation using rust reed-solomon-library * Track erasures with a &[bool] instead of indexes * fix bug that reported the number of erasures incorrectly * Introduce erasure `Session` for consistent config * Increase test coverage; fix bugs * Add ability to remove blobs from erasure meta tracking. test added * Track deletion of coding blobs in blocktree via ErasureMeta. Added to test * Remove unused functions in blocktree * add randomness to recovery thread to exercise recovery due to either new data or coding blobs * Add unit test for ErasureMeta index handling * Re-enable test in broadcast stage
This commit is contained in:
@ -24,9 +24,8 @@ fn main() {
|
||||
|
||||
let chacha = !env::var("CARGO_FEATURE_CHACHA").is_err();
|
||||
let cuda = !env::var("CARGO_FEATURE_CUDA").is_err();
|
||||
let erasure = !env::var("CARGO_FEATURE_ERASURE").is_err();
|
||||
|
||||
if chacha || cuda || erasure {
|
||||
if chacha || cuda {
|
||||
println!("cargo:rerun-if-changed={}", perf_libs_dir);
|
||||
println!("cargo:rustc-link-search=native={}", perf_libs_dir);
|
||||
}
|
||||
@ -46,30 +45,4 @@ fn main() {
|
||||
println!("cargo:rustc-link-lib=dylib=cuda");
|
||||
println!("cargo:rustc-link-lib=dylib=cudadevrt");
|
||||
}
|
||||
if erasure {
|
||||
#[cfg(any(target_os = "macos", target_os = "ios"))]
|
||||
{
|
||||
println!(
|
||||
"cargo:rerun-if-changed={}/libgf_complete.dylib",
|
||||
perf_libs_dir
|
||||
);
|
||||
println!("cargo:rerun-if-changed={}/libJerasure.dylib", perf_libs_dir);
|
||||
}
|
||||
#[cfg(all(unix, not(any(target_os = "macos", target_os = "ios"))))]
|
||||
{
|
||||
println!("cargo:rerun-if-changed={}/libgf_complete.so", perf_libs_dir);
|
||||
println!("cargo:rerun-if-changed={}/libJerasure.so", perf_libs_dir);
|
||||
}
|
||||
#[cfg(windows)]
|
||||
{
|
||||
println!(
|
||||
"cargo:rerun-if-changed={}/libgf_complete.dll",
|
||||
perf_libs_dir
|
||||
);
|
||||
println!("cargo:rerun-if-changed={}/libJerasure.dll", perf_libs_dir);
|
||||
}
|
||||
|
||||
println!("cargo:rustc-link-lib=dylib=Jerasure");
|
||||
println!("cargo:rustc-link-lib=dylib=gf_complete");
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user