mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-20 03:22:18 +00:00
Optimization FileReader
This commit is contained in:
+7
-11
@@ -1,6 +1,6 @@
|
|||||||
use crate::{
|
use crate::{
|
||||||
disk::{error::DiskError, DiskStore, FileReader, FileWriter, Reader},
|
disk::{error::DiskError, DiskStore, FileReader, FileWriter, Reader},
|
||||||
erasure::{ReadAt, Write},
|
erasure::{ReadAt, Writer},
|
||||||
error::{Error, Result},
|
error::{Error, Result},
|
||||||
store_api::BitrotAlgorithm,
|
store_api::BitrotAlgorithm,
|
||||||
};
|
};
|
||||||
@@ -15,15 +15,11 @@ use std::{
|
|||||||
collections::HashMap,
|
collections::HashMap,
|
||||||
io::{Cursor, Read},
|
io::{Cursor, Read},
|
||||||
};
|
};
|
||||||
use tracing::{error, warn};
|
use tracing::error;
|
||||||
|
|
||||||
use tokio::{
|
use tokio::{
|
||||||
io::AsyncWriteExt,
|
|
||||||
spawn,
|
spawn,
|
||||||
sync::{
|
sync::mpsc::{self, Sender},
|
||||||
mpsc::{self, Sender},
|
|
||||||
RwLock,
|
|
||||||
},
|
|
||||||
task::JoinHandle,
|
task::JoinHandle,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -152,7 +148,7 @@ pub fn bitrot_algorithm_from_string(s: &str) -> BitrotAlgorithm {
|
|||||||
BitrotAlgorithm::HighwayHash256S
|
BitrotAlgorithm::HighwayHash256S
|
||||||
}
|
}
|
||||||
|
|
||||||
pub type BitrotWriter = Box<dyn Write + Send + 'static>;
|
pub type BitrotWriter = Box<dyn Writer + Send + 'static>;
|
||||||
|
|
||||||
pub async fn new_bitrot_writer(
|
pub async fn new_bitrot_writer(
|
||||||
disk: DiskStore,
|
disk: DiskStore,
|
||||||
@@ -281,7 +277,7 @@ impl WholeBitrotWriter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[async_trait::async_trait]
|
#[async_trait::async_trait]
|
||||||
impl Write for WholeBitrotWriter {
|
impl Writer for WholeBitrotWriter {
|
||||||
fn as_any(&self) -> &dyn Any {
|
fn as_any(&self) -> &dyn Any {
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
@@ -383,7 +379,7 @@ impl StreamingBitrotWriter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[async_trait::async_trait]
|
#[async_trait::async_trait]
|
||||||
impl Write for StreamingBitrotWriter {
|
impl Writer for StreamingBitrotWriter {
|
||||||
fn as_any(&self) -> &dyn Any {
|
fn as_any(&self) -> &dyn Any {
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
@@ -507,7 +503,7 @@ impl BitrotFileWriter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[async_trait::async_trait]
|
#[async_trait::async_trait]
|
||||||
impl Write for BitrotFileWriter {
|
impl Writer for BitrotFileWriter {
|
||||||
fn as_any(&self) -> &dyn Any {
|
fn as_any(&self) -> &dyn Any {
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ pub const FORMAT_CONFIG_FILE: &str = "format.json";
|
|||||||
const STORAGE_FORMAT_FILE: &str = "xl.meta";
|
const STORAGE_FORMAT_FILE: &str = "xl.meta";
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
erasure::{ReadAt, Write},
|
erasure::{ReadAt, Writer},
|
||||||
error::{Error, Result},
|
error::{Error, Result},
|
||||||
file_meta::{merge_file_meta_versions, FileMeta, FileMetaShallowVersion},
|
file_meta::{merge_file_meta_versions, FileMeta, FileMetaShallowVersion},
|
||||||
store_api::{FileInfo, RawFileInfo},
|
store_api::{FileInfo, RawFileInfo},
|
||||||
@@ -657,7 +657,7 @@ pub enum FileWriter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[async_trait::async_trait]
|
#[async_trait::async_trait]
|
||||||
impl Write for FileWriter {
|
impl Writer for FileWriter {
|
||||||
fn as_any(&self) -> &dyn Any {
|
fn as_any(&self) -> &dyn Any {
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
@@ -686,7 +686,7 @@ impl BufferWriter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[async_trait::async_trait]
|
#[async_trait::async_trait]
|
||||||
impl Write for BufferWriter {
|
impl Writer for BufferWriter {
|
||||||
fn as_any(&self) -> &dyn Any {
|
fn as_any(&self) -> &dyn Any {
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
@@ -711,7 +711,7 @@ impl LocalFileWriter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[async_trait::async_trait]
|
#[async_trait::async_trait]
|
||||||
impl Write for LocalFileWriter {
|
impl Writer for LocalFileWriter {
|
||||||
fn as_any(&self) -> &dyn Any {
|
fn as_any(&self) -> &dyn Any {
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
@@ -763,7 +763,7 @@ impl RemoteFileWriter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[async_trait::async_trait]
|
#[async_trait::async_trait]
|
||||||
impl Write for RemoteFileWriter {
|
impl Writer for RemoteFileWriter {
|
||||||
fn as_any(&self) -> &dyn Any {
|
fn as_any(&self) -> &dyn Any {
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -346,7 +346,7 @@ impl Erasure {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[async_trait::async_trait]
|
#[async_trait::async_trait]
|
||||||
pub trait Write {
|
pub trait Writer {
|
||||||
fn as_any(&self) -> &dyn Any;
|
fn as_any(&self) -> &dyn Any;
|
||||||
async fn write(&mut self, buf: &[u8]) -> Result<()>;
|
async fn write(&mut self, buf: &[u8]) -> Result<()>;
|
||||||
async fn close(&mut self) -> Result<()> {
|
async fn close(&mut self) -> Result<()> {
|
||||||
|
|||||||
+1
-1
@@ -5,7 +5,7 @@ use ecstore::{
|
|||||||
DeleteOptions, DiskInfoOptions, DiskStore, FileInfoVersions, ReadMultipleReq, ReadOptions, Reader, UpdateMetadataOpts,
|
DeleteOptions, DiskInfoOptions, DiskStore, FileInfoVersions, ReadMultipleReq, ReadOptions, Reader, UpdateMetadataOpts,
|
||||||
WalkDirOptions,
|
WalkDirOptions,
|
||||||
},
|
},
|
||||||
erasure::{ReadAt, Write},
|
erasure::{ReadAt, Writer},
|
||||||
peer::{LocalPeerS3Client, PeerS3Client},
|
peer::{LocalPeerS3Client, PeerS3Client},
|
||||||
store::{all_local_disk_path, find_local_disk},
|
store::{all_local_disk_path, find_local_disk},
|
||||||
store_api::{BucketOptions, DeleteBucketOptions, FileInfo, MakeBucketOptions},
|
store_api::{BucketOptions, DeleteBucketOptions, FileInfo, MakeBucketOptions},
|
||||||
|
|||||||
Reference in New Issue
Block a user