Skip to content

Commit

Permalink
refactor: Cached* -> Fs*
Browse files Browse the repository at this point in the history
Signed-off-by: Zhenchi <[email protected]>
  • Loading branch information
zhongzc committed Jul 2, 2024
1 parent 3e5efcc commit 8b15588
Show file tree
Hide file tree
Showing 6 changed files with 33 additions and 37 deletions.
2 changes: 1 addition & 1 deletion src/puffin/src/puffin_manager.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@
// limitations under the License.

pub mod cache_manager;
pub mod cached_puffin_manager;
pub mod file_accessor;
pub mod fs_puffin_manager;

#[cfg(test)]
mod tests;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,25 +18,25 @@ mod writer;

use async_trait::async_trait;
use futures::{AsyncRead, AsyncSeek, AsyncWrite};
pub use reader::CachedPuffinReader;
pub use writer::CachedPuffinWriter;
pub use reader::FsPuffinReader;
pub use writer::FsPuffinWriter;

use crate::error::Result;
use crate::puffin_manager::cache_manager::CacheManagerRef;
use crate::puffin_manager::file_accessor::PuffinFileAccessorRef;
use crate::puffin_manager::{BlobGuard, DirGuard, PuffinManager};

/// `CachedPuffinManager` is a `PuffinManager` that provides cached readers and writers for puffin files.
pub struct CachedPuffinManager<B, D, AR, AW> {
/// `FsPuffinManager` is a `PuffinManager` that provides readers and writers for puffin data in filesystem.
pub struct FsPuffinManager<B, D, AR, AW> {
/// The cache manager.
cache_manager: CacheManagerRef<B, D>,

/// The puffin file accessor.
puffin_file_accessor: PuffinFileAccessorRef<AR, AW>,
}

impl<B, D, AR, AW> CachedPuffinManager<B, D, AR, AW> {
/// Creates a new `CachedPuffinManager` with the specified `cache_manager` and `puffin_file_accessor`.
impl<B, D, AR, AW> FsPuffinManager<B, D, AR, AW> {
/// Creates a new `FsPuffinManager` with the specified `cache_manager` and `puffin_file_accessor`.
pub fn new(
cache_manager: CacheManagerRef<B, D>,
puffin_file_accessor: PuffinFileAccessorRef<AR, AW>,
Expand All @@ -49,18 +49,18 @@ impl<B, D, AR, AW> CachedPuffinManager<B, D, AR, AW> {
}

#[async_trait]
impl<B, D, AR, AW> PuffinManager for CachedPuffinManager<B, D, AR, AW>
impl<B, D, AR, AW> PuffinManager for FsPuffinManager<B, D, AR, AW>
where
B: BlobGuard,
D: DirGuard,
AR: AsyncRead + AsyncSeek + Send + Unpin + 'static,
AW: AsyncWrite + Send + Unpin + 'static,
{
type Reader = CachedPuffinReader<B, D, AR, AW>;
type Writer = CachedPuffinWriter<B, D, AW>;
type Reader = FsPuffinReader<B, D, AR, AW>;
type Writer = FsPuffinWriter<B, D, AW>;

async fn reader(&self, puffin_file_name: &str) -> Result<Self::Reader> {
Ok(CachedPuffinReader::new(
Ok(FsPuffinReader::new(
puffin_file_name.to_string(),
self.cache_manager.clone(),
self.puffin_file_accessor.clone(),
Expand All @@ -69,7 +69,7 @@ where

async fn writer(&self, puffin_file_name: &str) -> Result<Self::Writer> {
let writer = self.puffin_file_accessor.writer(puffin_file_name).await?;
Ok(CachedPuffinWriter::new(
Ok(FsPuffinWriter::new(
puffin_file_name.to_string(),
self.cache_manager.clone(),
writer,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,12 @@ use crate::error::{
};
use crate::file_format::reader::{PuffinAsyncReader, PuffinFileReader};
use crate::puffin_manager::cache_manager::{BoxWriter, CacheManagerRef, DirWriterProviderRef};
use crate::puffin_manager::cached_puffin_manager::dir_meta::DirMetadata;
use crate::puffin_manager::file_accessor::PuffinFileAccessorRef;
use crate::puffin_manager::fs_puffin_manager::dir_meta::DirMetadata;
use crate::puffin_manager::{BlobGuard, DirGuard, PuffinReader};

/// `CachedPuffinReader` is a `PuffinReader` that provides cached readers for puffin files.
pub struct CachedPuffinReader<B, G, AR, AW> {
/// `FsPuffinReader` is a `PuffinReader` that provides cached readers for puffin files.
pub struct FsPuffinReader<B, G, AR, AW> {
/// The name of the puffin file.
puffin_file_name: String,

Expand All @@ -42,7 +42,7 @@ pub struct CachedPuffinReader<B, G, AR, AW> {
puffin_file_accessor: PuffinFileAccessorRef<AR, AW>,
}

impl<B, D, AR, AW> CachedPuffinReader<B, D, AR, AW> {
impl<B, D, AR, AW> FsPuffinReader<B, D, AR, AW> {
pub(crate) fn new(
puffin_file_name: String,
cache_manager: CacheManagerRef<B, D>,
Expand All @@ -57,7 +57,7 @@ impl<B, D, AR, AW> CachedPuffinReader<B, D, AR, AW> {
}

#[async_trait]
impl<B, D, AR, AW> PuffinReader for CachedPuffinReader<B, D, AR, AW>
impl<B, D, AR, AW> PuffinReader for FsPuffinReader<B, D, AR, AW>
where
B: BlobGuard,
D: DirGuard,
Expand Down Expand Up @@ -98,7 +98,7 @@ where
}
}

impl<B, G, AR, AW> CachedPuffinReader<B, G, AR, AW>
impl<B, G, AR, AW> FsPuffinReader<B, G, AR, AW>
where
B: BlobGuard,
G: DirGuard,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,11 @@ use crate::error::{
};
use crate::file_format::writer::{Blob, PuffinAsyncWriter, PuffinFileWriter};
use crate::puffin_manager::cache_manager::CacheManagerRef;
use crate::puffin_manager::cached_puffin_manager::dir_meta::{DirFileMetadata, DirMetadata};
use crate::puffin_manager::fs_puffin_manager::dir_meta::{DirFileMetadata, DirMetadata};
use crate::puffin_manager::{BlobGuard, DirGuard, PuffinWriter, PutOptions};

/// `CachedPuffinWriter` is a `PuffinWriter` that writes blobs and directories to a puffin file.
pub struct CachedPuffinWriter<B, D, W> {
/// `FsPuffinWriter` is a `PuffinWriter` that writes blobs and directories to a puffin file.
pub struct FsPuffinWriter<B, D, W> {
/// The name of the puffin file.
puffin_file_name: String,

Expand All @@ -48,7 +48,7 @@ pub struct CachedPuffinWriter<B, D, W> {
blob_keys: HashSet<String>,
}

impl<B, D, W> CachedPuffinWriter<B, D, W> {
impl<B, D, W> FsPuffinWriter<B, D, W> {
pub(crate) fn new(
puffin_file_name: String,
cache_manager: CacheManagerRef<B, D>,
Expand All @@ -64,7 +64,7 @@ impl<B, D, W> CachedPuffinWriter<B, D, W> {
}

#[async_trait]
impl<B, D, W> PuffinWriter for CachedPuffinWriter<B, D, W>
impl<B, D, W> PuffinWriter for FsPuffinWriter<B, D, W>
where
B: BlobGuard,
D: DirGuard,
Expand Down Expand Up @@ -168,7 +168,7 @@ where
}
}

impl<B, G, W> CachedPuffinWriter<B, G, W>
impl<B, G, W> FsPuffinWriter<B, G, W>
where
B: BlobGuard,
G: DirGuard,
Expand Down
22 changes: 9 additions & 13 deletions src/puffin/src/puffin_manager/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ use tokio_util::compat::{Compat, TokioAsyncReadCompatExt};
use crate::blob_metadata::CompressionCodec;
use crate::error::Result;
use crate::puffin_manager::cache_manager::MokaCacheManager;
use crate::puffin_manager::cached_puffin_manager::CachedPuffinManager;
use crate::puffin_manager::file_accessor::PuffinFileAccessor;
use crate::puffin_manager::fs_puffin_manager::FsPuffinManager;
use crate::puffin_manager::{
BlobGuard, DirGuard, PuffinManager, PuffinReader, PuffinWriter, PutOptions,
};
Expand All @@ -51,8 +51,7 @@ async fn test_put_get_file() {
new_moka_cache_manager("test_put_get_file_", cache_size).await;
let file_accessor = Arc::new(MockFileAccessor::new("test_put_get_file_"));

let puffin_manager =
CachedPuffinManager::new(cache_manager.clone(), file_accessor.clone());
let puffin_manager = FsPuffinManager::new(cache_manager.clone(), file_accessor.clone());

let puffin_file_name = "puffin_file";
let mut writer = puffin_manager.writer(puffin_file_name).await.unwrap();
Expand All @@ -69,7 +68,7 @@ async fn test_put_get_file() {
// renew cache manager
let (_cache_dir, cache_manager) =
new_moka_cache_manager("test_put_get_file_", cache_size).await;
let puffin_manager = CachedPuffinManager::new(cache_manager.clone(), file_accessor);
let puffin_manager = FsPuffinManager::new(cache_manager.clone(), file_accessor);

let reader = puffin_manager.reader(puffin_file_name).await.unwrap();
check_blob(puffin_file_name, key, raw_data, &cache_manager, &reader).await;
Expand All @@ -89,8 +88,7 @@ async fn test_put_get_files() {
new_moka_cache_manager("test_put_get_files_", cache_size).await;
let file_accessor = Arc::new(MockFileAccessor::new("test_put_get_files_"));

let puffin_manager =
CachedPuffinManager::new(cache_manager.clone(), file_accessor.clone());
let puffin_manager = FsPuffinManager::new(cache_manager.clone(), file_accessor.clone());

let puffin_file_name = "puffin_file";
let mut writer = puffin_manager.writer(puffin_file_name).await.unwrap();
Expand All @@ -117,7 +115,7 @@ async fn test_put_get_files() {
// renew cache manager
let (_cache_dir, cache_manager) =
new_moka_cache_manager("test_put_get_files_", cache_size).await;
let puffin_manager = CachedPuffinManager::new(cache_manager.clone(), file_accessor);
let puffin_manager = FsPuffinManager::new(cache_manager.clone(), file_accessor);
let reader = puffin_manager.reader(puffin_file_name).await.unwrap();
for (key, raw_data) in &blobs {
check_blob(puffin_file_name, key, raw_data, &cache_manager, &reader).await;
Expand All @@ -138,8 +136,7 @@ async fn test_put_get_dir() {
new_moka_cache_manager("test_put_get_dir_", cache_size).await;
let file_accessor = Arc::new(MockFileAccessor::new("test_put_get_dir_"));

let puffin_manager =
CachedPuffinManager::new(cache_manager.clone(), file_accessor.clone());
let puffin_manager = FsPuffinManager::new(cache_manager.clone(), file_accessor.clone());

let puffin_file_name = "puffin_file";
let mut writer = puffin_manager.writer(puffin_file_name).await.unwrap();
Expand Down Expand Up @@ -171,7 +168,7 @@ async fn test_put_get_dir() {
// renew cache manager
let (_cache_dir, cache_manager) =
new_moka_cache_manager("test_put_get_dir_", cache_size).await;
let puffin_manager = CachedPuffinManager::new(cache_manager.clone(), file_accessor);
let puffin_manager = FsPuffinManager::new(cache_manager.clone(), file_accessor);

let reader = puffin_manager.reader(puffin_file_name).await.unwrap();
check_dir(
Expand All @@ -197,8 +194,7 @@ async fn test_put_get_mix_file_dir() {
new_moka_cache_manager("test_put_get_mix_file_dir_", cache_size).await;
let file_accessor = Arc::new(MockFileAccessor::new("test_put_get_mix_file_dir_"));

let puffin_manager =
CachedPuffinManager::new(cache_manager.clone(), file_accessor.clone());
let puffin_manager = FsPuffinManager::new(cache_manager.clone(), file_accessor.clone());

let puffin_file_name = "puffin_file";
let mut writer = puffin_manager.writer(puffin_file_name).await.unwrap();
Expand Down Expand Up @@ -243,7 +239,7 @@ async fn test_put_get_mix_file_dir() {
// renew cache manager
let (_cache_dir, cache_manager) =
new_moka_cache_manager("test_put_get_mix_file_dir_", cache_size).await;
let puffin_manager = CachedPuffinManager::new(cache_manager.clone(), file_accessor);
let puffin_manager = FsPuffinManager::new(cache_manager.clone(), file_accessor);

let reader = puffin_manager.reader(puffin_file_name).await.unwrap();
for (key, raw_data) in &blobs {
Expand Down

0 comments on commit 8b15588

Please sign in to comment.