From 8fff26ad49e8858547d9ae8a288242e4c66cd5a4 Mon Sep 17 00:00:00 2001 From: Arseny Sher Date: Mon, 10 May 2021 16:25:53 +0300 Subject: [PATCH] Make Repository API return abstract dyn Timeline. + minor cargo fmt cleanup --- pageserver/src/page_service.rs | 2 +- pageserver/src/repository.rs | 9 ++------- pageserver/src/repository/rocksdb.rs | 4 ++-- pageserver/src/walreceiver.rs | 2 +- 4 files changed, 6 insertions(+), 11 deletions(-) diff --git a/pageserver/src/page_service.rs b/pageserver/src/page_service.rs index de4a0b14d8..12c728f173 100644 --- a/pageserver/src/page_service.rs +++ b/pageserver/src/page_service.rs @@ -24,7 +24,7 @@ use zenith_utils::lsn::Lsn; use crate::basebackup; use crate::page_cache; -use crate::repository::{BufferTag, RelTag, Repository, Timeline}; +use crate::repository::{BufferTag, RelTag, Repository}; use crate::restore_local_repo; use crate::walreceiver; use crate::PageServerConf; diff --git a/pageserver/src/repository.rs b/pageserver/src/repository.rs index 4a9d0cd1e7..dcc1fdc3c7 100644 --- a/pageserver/src/repository.rs +++ b/pageserver/src/repository.rs @@ -12,22 +12,17 @@ use zenith_utils::lsn::Lsn; /// /// A repository corresponds to one .zenith directory. One repository holds multiple /// timelines, forked off from the same initial call to 'initdb'. -/// -/// FIXME: I wish these would return an abstract `&dyn Timeline`. pub trait Repository { /// Get Timeline handle for given zenith timeline ID. /// /// The Timeline is expected to be already "open", i.e. `get_or_restore_timeline` /// should've been called on it earlier already. - fn get_timeline(&self, timelineid: ZTimelineId) -> Result>; + fn get_timeline(&self, timelineid: ZTimelineId) -> Result>; /// Get Timeline handle for given zenith timeline ID. /// /// Creates a new Timeline object if it's not "open" already. - fn get_or_restore_timeline( - &self, - timelineid: ZTimelineId, - ) -> Result>; + fn get_or_restore_timeline(&self, timelineid: ZTimelineId) -> Result>; //fn get_stats(&self) -> RepositoryStats; } diff --git a/pageserver/src/repository/rocksdb.rs b/pageserver/src/repository/rocksdb.rs index ff16ec7e87..d48e9cfe9e 100644 --- a/pageserver/src/repository/rocksdb.rs +++ b/pageserver/src/repository/rocksdb.rs @@ -162,7 +162,7 @@ impl RocksRepository { // Get handle to a given timeline. It is assumed to already exist. impl Repository for RocksRepository { - fn get_timeline(&self, timelineid: ZTimelineId) -> Result> { + fn get_timeline(&self, timelineid: ZTimelineId) -> Result> { let timelines = self.timelines.lock().unwrap(); match timelines.get(&timelineid) { @@ -171,7 +171,7 @@ impl Repository for RocksRepository { } } - fn get_or_restore_timeline(&self, timelineid: ZTimelineId) -> Result> { + fn get_or_restore_timeline(&self, timelineid: ZTimelineId) -> Result> { let mut timelines = self.timelines.lock().unwrap(); match timelines.get(&timelineid) { diff --git a/pageserver/src/walreceiver.rs b/pageserver/src/walreceiver.rs index 1d7cb1b455..5a8e58048f 100644 --- a/pageserver/src/walreceiver.rs +++ b/pageserver/src/walreceiver.rs @@ -7,7 +7,7 @@ //! use crate::page_cache; -use crate::repository::{Repository, Timeline}; +use crate::repository::{Repository}; use crate::waldecoder::*; use crate::PageServerConf; use crate::ZTimelineId;