From b77c33ee0644f00ea3fc0af252f11f7454f5c3fb Mon Sep 17 00:00:00 2001 From: Kirill Bulatov Date: Fri, 23 Dec 2022 15:40:37 +0200 Subject: [PATCH] Move tenant-related modules below `tenant` module (#3190) No real code changes besides moving code around and adjusting the imports. --- pageserver/benches/bench_layer_map.rs | 3 +- pageserver/src/bin/pageserver.rs | 35 +++++++++++++++- pageserver/src/lib.rs | 2 - pageserver/src/tenant.rs | 25 ++++------- pageserver/src/tenant/layer_map.rs | 3 +- pageserver/src/tenant/storage_layer.rs | 15 +++++-- .../tenant/{ => storage_layer}/delta_layer.rs | 4 +- .../tenant/{ => storage_layer}/filename.rs | 0 .../tenant/{ => storage_layer}/image_layer.rs | 5 +-- .../{ => storage_layer}/inmemory_layer.rs | 3 +- .../{ => storage_layer}/remote_layer.rs | 10 ++--- .../storage_sync.rs} | 42 +++---------------- .../storage_sync}/delete.rs | 0 .../storage_sync}/download.rs | 5 +-- .../storage_sync}/index.rs | 2 +- .../storage_sync}/upload.rs | 6 +-- pageserver/src/tenant/timeline.rs | 25 ++++++----- test_runner/regress/test_tenant_detach.py | 2 +- 18 files changed, 87 insertions(+), 100 deletions(-) rename pageserver/src/tenant/{ => storage_layer}/delta_layer.rs (99%) rename pageserver/src/tenant/{ => storage_layer}/filename.rs (100%) rename pageserver/src/tenant/{ => storage_layer}/image_layer.rs (99%) rename pageserver/src/tenant/{ => storage_layer}/inmemory_layer.rs (99%) rename pageserver/src/tenant/{ => storage_layer}/remote_layer.rs (94%) rename pageserver/src/{storage_sync2.rs => tenant/storage_sync.rs} (97%) rename pageserver/src/{storage_sync2 => tenant/storage_sync}/delete.rs (100%) rename pageserver/src/{storage_sync2 => tenant/storage_sync}/download.rs (98%) rename pageserver/src/{storage_sync2 => tenant/storage_sync}/index.rs (99%) rename pageserver/src/{storage_sync2 => tenant/storage_sync}/upload.rs (96%) diff --git a/pageserver/benches/bench_layer_map.rs b/pageserver/benches/bench_layer_map.rs index a0c38e1e3a..6a01fdfc6f 100644 --- a/pageserver/benches/bench_layer_map.rs +++ b/pageserver/benches/bench_layer_map.rs @@ -1,8 +1,7 @@ use anyhow::Result; use pageserver::repository::Key; -use pageserver::tenant::filename::{DeltaFileName, ImageFileName}; use pageserver::tenant::layer_map::LayerMap; -use pageserver::tenant::storage_layer::ValueReconstructState; +use pageserver::tenant::storage_layer::{DeltaFileName, ImageFileName, ValueReconstructState}; use pageserver::tenant::storage_layer::{Layer, ValueReconstructResult}; use rand::prelude::{SeedableRng, SliceRandom, StdRng}; use std::cmp::{max, min}; diff --git a/pageserver/src/bin/pageserver.rs b/pageserver/src/bin/pageserver.rs index e72a861be0..d12063f5aa 100644 --- a/pageserver/src/bin/pageserver.rs +++ b/pageserver/src/bin/pageserver.rs @@ -7,12 +7,13 @@ use std::{env, ops::ControlFlow, path::Path, str::FromStr}; use anyhow::{anyhow, Context}; use clap::{Arg, ArgAction, Command}; use fail::FailScenario; +use remote_storage::GenericRemoteStorage; use tracing::*; use metrics::set_build_info_metric; use pageserver::{ config::{defaults::*, PageServerConf}, - http, page_cache, page_service, profiling, storage_sync2, task_mgr, + http, page_cache, page_service, profiling, task_mgr, task_mgr::TaskKind, task_mgr::{ BACKGROUND_RUNTIME, COMPUTE_REQUEST_RUNTIME, MGMT_REQUEST_RUNTIME, WALRECEIVER_RUNTIME, @@ -280,7 +281,7 @@ fn start_pageserver(conf: &'static PageServerConf) -> anyhow::Result<()> { }; // Set up remote storage client - let remote_storage = storage_sync2::create_remote_storage_client(conf)?; + let remote_storage = create_remote_storage_client(conf)?; // Scan the local 'tenants/' directory and start loading the tenants BACKGROUND_RUNTIME.block_on(tenant_mgr::init_tenant_mgr(conf, remote_storage.clone()))?; @@ -369,6 +370,36 @@ fn start_pageserver(conf: &'static PageServerConf) -> anyhow::Result<()> { }) } +fn create_remote_storage_client( + conf: &'static PageServerConf, +) -> anyhow::Result> { + let config = if let Some(config) = &conf.remote_storage_config { + config + } else { + // No remote storage configured. + return Ok(None); + }; + + // Create the client + let mut remote_storage = GenericRemoteStorage::from_config(config)?; + + // If `test_remote_failures` is non-zero, wrap the client with a + // wrapper that simulates failures. + if conf.test_remote_failures > 0 { + if !cfg!(feature = "testing") { + anyhow::bail!("test_remote_failures option is not available because pageserver was compiled without the 'testing' feature"); + } + info!( + "Simulating remote failures for first {} attempts of each op", + conf.test_remote_failures + ); + remote_storage = + GenericRemoteStorage::unreliable_wrapper(remote_storage, conf.test_remote_failures); + } + + Ok(Some(remote_storage)) +} + fn cli() -> Command { Command::new("Neon page server") .about("Materializes WAL stream to pages and serves them to the postgres") diff --git a/pageserver/src/lib.rs b/pageserver/src/lib.rs index e01eb12b7b..ae815fe421 100644 --- a/pageserver/src/lib.rs +++ b/pageserver/src/lib.rs @@ -11,8 +11,6 @@ pub mod page_service; pub mod pgdatadir_mapping; pub mod profiling; pub mod repository; -pub mod storage_sync2; -pub use storage_sync2 as storage_sync; pub mod task_mgr; pub mod tenant; pub mod tenant_config; diff --git a/pageserver/src/tenant.rs b/pageserver/src/tenant.rs index 4129c205ad..308130c799 100644 --- a/pageserver/src/tenant.rs +++ b/pageserver/src/tenant.rs @@ -45,18 +45,19 @@ use std::sync::{Mutex, RwLock}; use std::time::{Duration, Instant}; use self::metadata::TimelineMetadata; +use self::storage_sync::create_remote_timeline_client; +use self::storage_sync::index::IndexPart; +use self::storage_sync::RemoteTimelineClient; use crate::config::PageServerConf; use crate::import_datadir; use crate::is_uninit_mark; use crate::metrics::{remove_tenant_metrics, STORAGE_TIME}; use crate::repository::GcResult; -use crate::storage_sync::create_remote_timeline_client; -use crate::storage_sync::index::IndexPart; -use crate::storage_sync::list_remote_timelines; -use crate::storage_sync::RemoteTimelineClient; use crate::task_mgr; use crate::task_mgr::TaskKind; use crate::tenant::metadata::load_metadata; +use crate::tenant::storage_layer::DeltaLayer; +use crate::tenant::storage_layer::ImageLayer; use crate::tenant::storage_layer::Layer; use crate::tenant_config::TenantConfOpt; use crate::virtual_file::VirtualFile; @@ -74,18 +75,14 @@ use utils::{ mod blob_io; pub mod block_io; -mod delta_layer; mod disk_btree; pub(crate) mod ephemeral_file; -pub mod filename; -mod image_layer; -mod inmemory_layer; pub mod layer_map; -mod remote_layer; pub mod metadata; mod par_fsync; pub mod storage_layer; +mod storage_sync; mod timeline; @@ -647,7 +644,7 @@ impl Tenant { .ok_or_else(|| anyhow::anyhow!("cannot attach without remote storage"))?; let remote_timelines = - list_remote_timelines(remote_storage, self.conf, self.tenant_id).await?; + storage_sync::list_remote_timelines(remote_storage, self.conf, self.tenant_id).await?; info!("found {} timelines", remote_timelines.len()); @@ -2541,12 +2538,8 @@ pub fn dump_layerfile_from_path(path: &Path, verbose: bool) -> anyhow::Result<() file.read_exact_at(&mut header_buf, 0)?; match u16::from_be_bytes(header_buf) { - crate::IMAGE_FILE_MAGIC => { - image_layer::ImageLayer::new_for_path(path, file)?.dump(verbose)? - } - crate::DELTA_FILE_MAGIC => { - delta_layer::DeltaLayer::new_for_path(path, file)?.dump(verbose)? - } + crate::IMAGE_FILE_MAGIC => ImageLayer::new_for_path(path, file)?.dump(verbose)?, + crate::DELTA_FILE_MAGIC => DeltaLayer::new_for_path(path, file)?.dump(verbose)?, magic => bail!("unrecognized magic identifier: {:?}", magic), } diff --git a/pageserver/src/tenant/layer_map.rs b/pageserver/src/tenant/layer_map.rs index 0202ccfa6a..f5182926e4 100644 --- a/pageserver/src/tenant/layer_map.rs +++ b/pageserver/src/tenant/layer_map.rs @@ -12,7 +12,6 @@ use crate::metrics::NUM_ONDISK_LAYERS; use crate::repository::Key; -use crate::tenant::inmemory_layer::InMemoryLayer; use crate::tenant::storage_layer::{range_eq, range_overlaps}; use amplify_num::i256; use anyhow::Result; @@ -27,7 +26,7 @@ use std::sync::Arc; use tracing::*; use utils::lsn::Lsn; -use super::storage_layer::Layer; +use super::storage_layer::{InMemoryLayer, Layer}; /// /// LayerMap tracks what layers exist on a timeline. diff --git a/pageserver/src/tenant/storage_layer.rs b/pageserver/src/tenant/storage_layer.rs index 8bfac5df8e..d87a248bdf 100644 --- a/pageserver/src/tenant/storage_layer.rs +++ b/pageserver/src/tenant/storage_layer.rs @@ -1,6 +1,10 @@ -//! //! Common traits and structs for layers -//! + +mod delta_layer; +mod filename; +mod image_layer; +mod inmemory_layer; +mod remote_layer; use crate::repository::{Key, Value}; use crate::walrecord::NeonWalRecord; @@ -15,8 +19,11 @@ use utils::{ lsn::Lsn, }; -use super::filename::LayerFileName; -use super::remote_layer::RemoteLayer; +pub use delta_layer::{DeltaLayer, DeltaLayerWriter}; +pub use filename::{DeltaFileName, ImageFileName, LayerFileName, PathOrConf}; +pub use image_layer::{ImageLayer, ImageLayerWriter}; +pub use inmemory_layer::InMemoryLayer; +pub use remote_layer::RemoteLayer; pub fn range_overlaps(a: &Range, b: &Range) -> bool where diff --git a/pageserver/src/tenant/delta_layer.rs b/pageserver/src/tenant/storage_layer/delta_layer.rs similarity index 99% rename from pageserver/src/tenant/delta_layer.rs rename to pageserver/src/tenant/storage_layer/delta_layer.rs index 5b724b6263..302ba2dc78 100644 --- a/pageserver/src/tenant/delta_layer.rs +++ b/pageserver/src/tenant/storage_layer/delta_layer.rs @@ -29,7 +29,6 @@ use crate::repository::{Key, Value, KEY_SIZE}; use crate::tenant::blob_io::{BlobCursor, BlobWriter, WriteBlobWriter}; use crate::tenant::block_io::{BlockBuf, BlockCursor, BlockReader, FileBlockReader}; use crate::tenant::disk_btree::{DiskBtreeBuilder, DiskBtreeReader, VisitDirection}; -use crate::tenant::filename::{DeltaFileName, PathOrConf}; use crate::tenant::storage_layer::{ PersistentLayer, ValueReconstructResult, ValueReconstructState, }; @@ -54,8 +53,7 @@ use utils::{ lsn::Lsn, }; -use super::filename::LayerFileName; -use super::storage_layer::{Layer, LayerIter, LayerKeyIter}; +use super::{DeltaFileName, Layer, LayerFileName, LayerIter, LayerKeyIter, PathOrConf}; /// /// Header stored in the beginning of the file diff --git a/pageserver/src/tenant/filename.rs b/pageserver/src/tenant/storage_layer/filename.rs similarity index 100% rename from pageserver/src/tenant/filename.rs rename to pageserver/src/tenant/storage_layer/filename.rs diff --git a/pageserver/src/tenant/image_layer.rs b/pageserver/src/tenant/storage_layer/image_layer.rs similarity index 99% rename from pageserver/src/tenant/image_layer.rs rename to pageserver/src/tenant/storage_layer/image_layer.rs index 4b43328f35..9a26fce73b 100644 --- a/pageserver/src/tenant/image_layer.rs +++ b/pageserver/src/tenant/storage_layer/image_layer.rs @@ -25,7 +25,6 @@ use crate::repository::{Key, KEY_SIZE}; use crate::tenant::blob_io::{BlobCursor, BlobWriter, WriteBlobWriter}; use crate::tenant::block_io::{BlockBuf, BlockReader, FileBlockReader}; use crate::tenant::disk_btree::{DiskBtreeBuilder, DiskBtreeReader, VisitDirection}; -use crate::tenant::filename::{ImageFileName, PathOrConf}; use crate::tenant::storage_layer::{ PersistentLayer, ValueReconstructResult, ValueReconstructState, }; @@ -51,8 +50,8 @@ use utils::{ lsn::Lsn, }; -use super::filename::LayerFileName; -use super::storage_layer::{Layer, LayerIter}; +use super::filename::{ImageFileName, LayerFileName, PathOrConf}; +use super::{Layer, LayerIter}; /// /// Header stored in the beginning of the file diff --git a/pageserver/src/tenant/inmemory_layer.rs b/pageserver/src/tenant/storage_layer/inmemory_layer.rs similarity index 99% rename from pageserver/src/tenant/inmemory_layer.rs rename to pageserver/src/tenant/storage_layer/inmemory_layer.rs index 35b0e98591..93356a9d8c 100644 --- a/pageserver/src/tenant/inmemory_layer.rs +++ b/pageserver/src/tenant/storage_layer/inmemory_layer.rs @@ -8,7 +8,6 @@ use crate::config::PageServerConf; use crate::repository::{Key, Value}; use crate::tenant::blob_io::{BlobCursor, BlobWriter}; use crate::tenant::block_io::BlockReader; -use crate::tenant::delta_layer::{DeltaLayer, DeltaLayerWriter}; use crate::tenant::ephemeral_file::EphemeralFile; use crate::tenant::storage_layer::{ValueReconstructResult, ValueReconstructState}; use crate::walrecord; @@ -28,7 +27,7 @@ use std::fmt::Write as _; use std::ops::Range; use std::sync::RwLock; -use super::storage_layer::Layer; +use super::{DeltaLayer, DeltaLayerWriter, Layer}; thread_local! { /// A buffer for serializing object during [`InMemoryLayer::put_value`]. diff --git a/pageserver/src/tenant/remote_layer.rs b/pageserver/src/tenant/storage_layer/remote_layer.rs similarity index 94% rename from pageserver/src/tenant/remote_layer.rs rename to pageserver/src/tenant/storage_layer/remote_layer.rs index affe8ca0a8..c2c11d7bff 100644 --- a/pageserver/src/tenant/remote_layer.rs +++ b/pageserver/src/tenant/storage_layer/remote_layer.rs @@ -3,11 +3,8 @@ //! use crate::config::PageServerConf; use crate::repository::Key; -use crate::storage_sync::index::LayerFileMetadata; -use crate::tenant::delta_layer::DeltaLayer; -use crate::tenant::filename::{DeltaFileName, ImageFileName}; -use crate::tenant::image_layer::ImageLayer; use crate::tenant::storage_layer::{Layer, ValueReconstructResult, ValueReconstructState}; +use crate::tenant::storage_sync::index::LayerFileMetadata; use anyhow::{bail, Result}; use std::ops::Range; use std::path::PathBuf; @@ -18,8 +15,9 @@ use utils::{ lsn::Lsn, }; -use super::filename::LayerFileName; -use super::storage_layer::{LayerIter, LayerKeyIter, PersistentLayer}; +use super::filename::{DeltaFileName, ImageFileName, LayerFileName}; +use super::image_layer::ImageLayer; +use super::{DeltaLayer, LayerIter, LayerKeyIter, PersistentLayer}; #[derive(Debug)] pub struct RemoteLayer { diff --git a/pageserver/src/storage_sync2.rs b/pageserver/src/tenant/storage_sync.rs similarity index 97% rename from pageserver/src/storage_sync2.rs rename to pageserver/src/tenant/storage_sync.rs index 6883c11473..ef57f91a02 100644 --- a/pageserver/src/storage_sync2.rs +++ b/pageserver/src/tenant/storage_sync.rs @@ -221,15 +221,12 @@ use tracing::{info_span, Instrument}; use utils::lsn::Lsn; -use self::index::IndexPart; - use crate::metrics::RemoteOpFileKind; use crate::metrics::RemoteOpKind; use crate::metrics::{MeasureRemoteOp, RemoteTimelineClientMetrics}; -use crate::tenant::filename::LayerFileName; +use crate::tenant::storage_sync::index::LayerFileMetadata; use crate::{ config::PageServerConf, - storage_sync::index::LayerFileMetadata, task_mgr, task_mgr::TaskKind, task_mgr::BACKGROUND_RUNTIME, @@ -239,6 +236,10 @@ use crate::{ use utils::id::{TenantId, TimelineId}; +use self::index::IndexPart; + +use super::storage_layer::LayerFileName; + // Occasional network issues and such can cause remote operations to fail, and // that's expected. If a download fails, we log it at info-level, and retry. // But after FAILED_DOWNLOAD_WARN_THRESHOLD retries, we start to log it at WARN @@ -1178,39 +1179,6 @@ pub fn create_remote_timeline_client( }) } -/// -/// Create GenericRemoteStorage client from the pageserver config -/// -pub fn create_remote_storage_client( - conf: &'static PageServerConf, -) -> anyhow::Result> { - let config = if let Some(config) = &conf.remote_storage_config { - config - } else { - // No remote storage configured. - return Ok(None); - }; - - // Create the client - let mut remote_storage = GenericRemoteStorage::from_config(config)?; - - // If `test_remote_failures` is non-zero, wrap the client with a - // wrapper that simulates failures. - if conf.test_remote_failures > 0 { - if !cfg!(feature = "testing") { - anyhow::bail!("test_remote_failures option is not available because pageserver was compiled without the 'testing' feature"); - } - info!( - "Simulating remote failures for first {} attempts of each op", - conf.test_remote_failures - ); - remote_storage = - GenericRemoteStorage::unreliable_wrapper(remote_storage, conf.test_remote_failures); - } - - Ok(Some(remote_storage)) -} - #[cfg(test)] mod tests { use super::*; diff --git a/pageserver/src/storage_sync2/delete.rs b/pageserver/src/tenant/storage_sync/delete.rs similarity index 100% rename from pageserver/src/storage_sync2/delete.rs rename to pageserver/src/tenant/storage_sync/delete.rs diff --git a/pageserver/src/storage_sync2/download.rs b/pageserver/src/tenant/storage_sync/download.rs similarity index 98% rename from pageserver/src/storage_sync2/download.rs rename to pageserver/src/tenant/storage_sync/download.rs index 4256767020..422728d1f3 100644 --- a/pageserver/src/storage_sync2/download.rs +++ b/pageserver/src/tenant/storage_sync/download.rs @@ -14,14 +14,13 @@ use tokio::io::AsyncWriteExt; use tracing::{debug, error, info, info_span, warn, Instrument}; use crate::config::PageServerConf; -use crate::storage_sync::index::LayerFileMetadata; -use crate::tenant::filename::LayerFileName; +use crate::tenant::storage_layer::LayerFileName; use crate::{exponential_backoff, DEFAULT_BASE_BACKOFF_SECONDS, DEFAULT_MAX_BACKOFF_SECONDS}; use remote_storage::{DownloadError, GenericRemoteStorage}; use utils::crashsafe::path_with_suffix_extension; use utils::id::{TenantId, TimelineId}; -use super::index::{IndexPart, IndexPartUnclean}; +use super::index::{IndexPart, IndexPartUnclean, LayerFileMetadata}; use super::{FAILED_DOWNLOAD_RETRIES, FAILED_DOWNLOAD_WARN_THRESHOLD}; async fn fsync_path(path: impl AsRef) -> Result<(), std::io::Error> { diff --git a/pageserver/src/storage_sync2/index.rs b/pageserver/src/tenant/storage_sync/index.rs similarity index 99% rename from pageserver/src/storage_sync2/index.rs rename to pageserver/src/tenant/storage_sync/index.rs index bb58a34969..017be29726 100644 --- a/pageserver/src/storage_sync2/index.rs +++ b/pageserver/src/tenant/storage_sync/index.rs @@ -8,7 +8,7 @@ use serde::{Deserialize, Serialize}; use serde_with::{serde_as, DisplayFromStr}; use tracing::warn; -use crate::tenant::{filename::LayerFileName, metadata::TimelineMetadata}; +use crate::tenant::{metadata::TimelineMetadata, storage_layer::LayerFileName}; use utils::lsn::Lsn; diff --git a/pageserver/src/storage_sync2/upload.rs b/pageserver/src/tenant/storage_sync/upload.rs similarity index 96% rename from pageserver/src/storage_sync2/upload.rs rename to pageserver/src/tenant/storage_sync/upload.rs index 57a524a22d..08cea6268b 100644 --- a/pageserver/src/storage_sync2/upload.rs +++ b/pageserver/src/tenant/storage_sync/upload.rs @@ -5,12 +5,12 @@ use fail::fail_point; use std::path::Path; use tokio::fs; -use super::index::IndexPart; -use crate::config::PageServerConf; -use crate::storage_sync::LayerFileMetadata; +use crate::{config::PageServerConf, tenant::storage_sync::index::IndexPart}; use remote_storage::GenericRemoteStorage; use utils::id::{TenantId, TimelineId}; +use super::index::LayerFileMetadata; + /// Serializes and uploads the given index part data to the remote storage. pub(super) async fn upload_index_part<'a>( conf: &'static PageServerConf, diff --git a/pageserver/src/tenant/timeline.rs b/pageserver/src/tenant/timeline.rs index 25a9e1ec51..55ede57e53 100644 --- a/pageserver/src/tenant/timeline.rs +++ b/pageserver/src/tenant/timeline.rs @@ -23,15 +23,13 @@ use std::sync::atomic::{AtomicI64, Ordering as AtomicOrdering}; use std::sync::{Arc, Mutex, MutexGuard, RwLock, Weak}; use std::time::{Duration, Instant, SystemTime}; -use crate::storage_sync::index::IndexPart; -use crate::storage_sync::RemoteTimelineClient; -use crate::tenant::remote_layer::RemoteLayer; +use crate::tenant::storage_layer::{ + DeltaFileName, DeltaLayerWriter, ImageFileName, ImageLayerWriter, InMemoryLayer, LayerFileName, + RemoteLayer, +}; +use crate::tenant::storage_sync::{self, index::LayerFileMetadata}; use crate::tenant::{ - delta_layer::{DeltaLayer, DeltaLayerWriter}, ephemeral_file::is_ephemeral_file, - filename::{DeltaFileName, ImageFileName}, - image_layer::{ImageLayer, ImageLayerWriter}, - inmemory_layer::InMemoryLayer, layer_map::{LayerMap, SearchResult}, metadata::{save_metadata, TimelineMetadata}, par_fsync, @@ -56,6 +54,7 @@ use utils::{ simple_rcu::{Rcu, RcuReadGuard}, }; +use crate::page_cache; use crate::repository::GcResult; use crate::repository::{Key, Value}; use crate::task_mgr::TaskKind; @@ -64,10 +63,10 @@ use crate::walredo::WalRedoManager; use crate::METADATA_FILE_NAME; use crate::ZERO_PAGE; use crate::{is_temporary, task_mgr}; -use crate::{page_cache, storage_sync::index::LayerFileMetadata}; -use super::filename::LayerFileName; -use super::storage_layer::Layer; +use super::storage_layer::{DeltaLayer, ImageLayer, Layer}; +use super::storage_sync::index::IndexPart; +use super::storage_sync::RemoteTimelineClient; #[derive(Debug, PartialEq, Eq, Clone, Copy)] enum FlushLoopState { @@ -97,7 +96,7 @@ pub struct Timeline { walredo_mgr: Arc, /// Remote storage client. - /// See [`storage_sync2`] module comment for details. + /// See [`storage_sync`] module comment for details. pub remote_client: Option>, // What page versions do we hold in the repository? If we get a @@ -1123,7 +1122,7 @@ impl Timeline { num_layers += 1; } else if fname == METADATA_FILE_NAME || fname.ends_with(".old") { // ignore these - } else if crate::storage_sync::is_temp_download_file(&direntry_path) { + } else if storage_sync::is_temp_download_file(&direntry_path) { info!( "skipping temp download file, reconcile_with_remote will resume / clean up: {}", fname @@ -1293,7 +1292,7 @@ impl Timeline { /// 3. Schedule upload of local-only layer files (which will then also update the remote /// IndexPart to include the new layer files). /// - /// Refer to the `storage_sync2` module comment for more context. + /// Refer to the `storage_sync` module comment for more context. /// /// # TODO /// May be a bit cleaner to do things based on populated remote client, diff --git a/test_runner/regress/test_tenant_detach.py b/test_runner/regress/test_tenant_detach.py index 8bf0fb7548..6963a57542 100644 --- a/test_runner/regress/test_tenant_detach.py +++ b/test_runner/regress/test_tenant_detach.py @@ -470,7 +470,7 @@ def test_ignore_while_attaching( pageserver_http.tenant_attach(tenant_id) # Run ignore on the task, thereby cancelling the attach. # XXX This should take priority over attach, i.e., it should cancel the attach task. - # But neither the failpoint, nor the proper storage_sync2 download functions, + # But neither the failpoint, nor the proper storage_sync download functions, # are sensitive to task_mgr::shutdown. # This problem is tracked in https://github.com/neondatabase/neon/issues/2996 . # So, for now, effectively, this ignore here will block until attach task completes.