mirror of
https://github.com/neondatabase/neon.git
synced 2026-01-08 05:52:55 +00:00
pageserver: remove vectored get related configs (#8695)
## Problem Pageserver exposes some vectored get related configs which are not in use. ## Summary of changes Remove the following pageserver configs: get_impl, get_vectored_impl, and `validate_get_vectored`. They are not used in the pageserver since https://github.com/neondatabase/neon/pull/8601. Manual overrides have been removed from the aws repo in https://github.com/neondatabase/aws/pull/1664.
This commit is contained in:
@@ -124,8 +124,6 @@ fn main() -> anyhow::Result<()> {
|
|||||||
// after setting up logging, log the effective IO engine choice and read path implementations
|
// after setting up logging, log the effective IO engine choice and read path implementations
|
||||||
info!(?conf.virtual_file_io_engine, "starting with virtual_file IO engine");
|
info!(?conf.virtual_file_io_engine, "starting with virtual_file IO engine");
|
||||||
info!(?conf.virtual_file_direct_io, "starting with virtual_file Direct IO settings");
|
info!(?conf.virtual_file_direct_io, "starting with virtual_file Direct IO settings");
|
||||||
info!(?conf.get_impl, "starting with get page implementation");
|
|
||||||
info!(?conf.get_vectored_impl, "starting with vectored get page implementation");
|
|
||||||
info!(?conf.compact_level0_phase1_value_access, "starting with setting for compact_level0_phase1_value_access");
|
info!(?conf.compact_level0_phase1_value_access, "starting with setting for compact_level0_phase1_value_access");
|
||||||
|
|
||||||
let tenants_path = conf.tenants_path();
|
let tenants_path = conf.tenants_path();
|
||||||
|
|||||||
@@ -29,12 +29,12 @@ use utils::{
|
|||||||
logging::LogFormat,
|
logging::LogFormat,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
use crate::l0_flush::L0FlushConfig;
|
||||||
|
use crate::tenant::config::TenantConfOpt;
|
||||||
use crate::tenant::timeline::compaction::CompactL0Phase1ValueAccess;
|
use crate::tenant::timeline::compaction::CompactL0Phase1ValueAccess;
|
||||||
use crate::tenant::vectored_blob_io::MaxVectoredReadBytes;
|
use crate::tenant::vectored_blob_io::MaxVectoredReadBytes;
|
||||||
use crate::tenant::{config::TenantConfOpt, timeline::GetImpl};
|
|
||||||
use crate::tenant::{TENANTS_SEGMENT_NAME, TIMELINES_SEGMENT_NAME};
|
use crate::tenant::{TENANTS_SEGMENT_NAME, TIMELINES_SEGMENT_NAME};
|
||||||
use crate::{disk_usage_eviction_task::DiskUsageEvictionTaskConfig, virtual_file::io_engine};
|
use crate::{disk_usage_eviction_task::DiskUsageEvictionTaskConfig, virtual_file::io_engine};
|
||||||
use crate::{l0_flush::L0FlushConfig, tenant::timeline::GetVectoredImpl};
|
|
||||||
use crate::{tenant::config::TenantConf, virtual_file};
|
use crate::{tenant::config::TenantConf, virtual_file};
|
||||||
use crate::{TENANT_HEATMAP_BASENAME, TENANT_LOCATION_CONFIG_NAME, TIMELINE_DELETE_MARK_SUFFIX};
|
use crate::{TENANT_HEATMAP_BASENAME, TENANT_LOCATION_CONFIG_NAME, TIMELINE_DELETE_MARK_SUFFIX};
|
||||||
|
|
||||||
@@ -133,14 +133,8 @@ pub mod defaults {
|
|||||||
|
|
||||||
#virtual_file_io_engine = '{DEFAULT_VIRTUAL_FILE_IO_ENGINE}'
|
#virtual_file_io_engine = '{DEFAULT_VIRTUAL_FILE_IO_ENGINE}'
|
||||||
|
|
||||||
#get_vectored_impl = '{DEFAULT_GET_VECTORED_IMPL}'
|
|
||||||
|
|
||||||
#get_impl = '{DEFAULT_GET_IMPL}'
|
|
||||||
|
|
||||||
#max_vectored_read_bytes = '{DEFAULT_MAX_VECTORED_READ_BYTES}'
|
#max_vectored_read_bytes = '{DEFAULT_MAX_VECTORED_READ_BYTES}'
|
||||||
|
|
||||||
#validate_vectored_get = '{DEFAULT_VALIDATE_VECTORED_GET}'
|
|
||||||
|
|
||||||
[tenant_config]
|
[tenant_config]
|
||||||
#checkpoint_distance = {DEFAULT_CHECKPOINT_DISTANCE} # in bytes
|
#checkpoint_distance = {DEFAULT_CHECKPOINT_DISTANCE} # in bytes
|
||||||
#checkpoint_timeout = {DEFAULT_CHECKPOINT_TIMEOUT}
|
#checkpoint_timeout = {DEFAULT_CHECKPOINT_TIMEOUT}
|
||||||
@@ -278,14 +272,8 @@ pub struct PageServerConf {
|
|||||||
|
|
||||||
pub virtual_file_io_engine: virtual_file::IoEngineKind,
|
pub virtual_file_io_engine: virtual_file::IoEngineKind,
|
||||||
|
|
||||||
pub get_vectored_impl: GetVectoredImpl,
|
|
||||||
|
|
||||||
pub get_impl: GetImpl,
|
|
||||||
|
|
||||||
pub max_vectored_read_bytes: MaxVectoredReadBytes,
|
pub max_vectored_read_bytes: MaxVectoredReadBytes,
|
||||||
|
|
||||||
pub validate_vectored_get: bool,
|
|
||||||
|
|
||||||
pub image_compression: ImageCompressionAlgorithm,
|
pub image_compression: ImageCompressionAlgorithm,
|
||||||
|
|
||||||
/// How many bytes of ephemeral layer content will we allow per kilobyte of RAM. When this
|
/// How many bytes of ephemeral layer content will we allow per kilobyte of RAM. When this
|
||||||
@@ -396,14 +384,8 @@ struct PageServerConfigBuilder {
|
|||||||
|
|
||||||
virtual_file_io_engine: BuilderValue<virtual_file::IoEngineKind>,
|
virtual_file_io_engine: BuilderValue<virtual_file::IoEngineKind>,
|
||||||
|
|
||||||
get_vectored_impl: BuilderValue<GetVectoredImpl>,
|
|
||||||
|
|
||||||
get_impl: BuilderValue<GetImpl>,
|
|
||||||
|
|
||||||
max_vectored_read_bytes: BuilderValue<MaxVectoredReadBytes>,
|
max_vectored_read_bytes: BuilderValue<MaxVectoredReadBytes>,
|
||||||
|
|
||||||
validate_vectored_get: BuilderValue<bool>,
|
|
||||||
|
|
||||||
image_compression: BuilderValue<ImageCompressionAlgorithm>,
|
image_compression: BuilderValue<ImageCompressionAlgorithm>,
|
||||||
|
|
||||||
ephemeral_bytes_per_memory_kb: BuilderValue<usize>,
|
ephemeral_bytes_per_memory_kb: BuilderValue<usize>,
|
||||||
@@ -493,13 +475,10 @@ impl PageServerConfigBuilder {
|
|||||||
|
|
||||||
virtual_file_io_engine: Set(DEFAULT_VIRTUAL_FILE_IO_ENGINE.parse().unwrap()),
|
virtual_file_io_engine: Set(DEFAULT_VIRTUAL_FILE_IO_ENGINE.parse().unwrap()),
|
||||||
|
|
||||||
get_vectored_impl: Set(DEFAULT_GET_VECTORED_IMPL.parse().unwrap()),
|
|
||||||
get_impl: Set(DEFAULT_GET_IMPL.parse().unwrap()),
|
|
||||||
max_vectored_read_bytes: Set(MaxVectoredReadBytes(
|
max_vectored_read_bytes: Set(MaxVectoredReadBytes(
|
||||||
NonZeroUsize::new(DEFAULT_MAX_VECTORED_READ_BYTES).unwrap(),
|
NonZeroUsize::new(DEFAULT_MAX_VECTORED_READ_BYTES).unwrap(),
|
||||||
)),
|
)),
|
||||||
image_compression: Set(DEFAULT_IMAGE_COMPRESSION),
|
image_compression: Set(DEFAULT_IMAGE_COMPRESSION),
|
||||||
validate_vectored_get: Set(DEFAULT_VALIDATE_VECTORED_GET),
|
|
||||||
ephemeral_bytes_per_memory_kb: Set(DEFAULT_EPHEMERAL_BYTES_PER_MEMORY_KB),
|
ephemeral_bytes_per_memory_kb: Set(DEFAULT_EPHEMERAL_BYTES_PER_MEMORY_KB),
|
||||||
l0_flush: Set(L0FlushConfig::default()),
|
l0_flush: Set(L0FlushConfig::default()),
|
||||||
compact_level0_phase1_value_access: Set(CompactL0Phase1ValueAccess::default()),
|
compact_level0_phase1_value_access: Set(CompactL0Phase1ValueAccess::default()),
|
||||||
@@ -659,22 +638,10 @@ impl PageServerConfigBuilder {
|
|||||||
self.virtual_file_io_engine = BuilderValue::Set(value);
|
self.virtual_file_io_engine = BuilderValue::Set(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_vectored_impl(&mut self, value: GetVectoredImpl) {
|
|
||||||
self.get_vectored_impl = BuilderValue::Set(value);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn get_impl(&mut self, value: GetImpl) {
|
|
||||||
self.get_impl = BuilderValue::Set(value);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn get_max_vectored_read_bytes(&mut self, value: MaxVectoredReadBytes) {
|
pub fn get_max_vectored_read_bytes(&mut self, value: MaxVectoredReadBytes) {
|
||||||
self.max_vectored_read_bytes = BuilderValue::Set(value);
|
self.max_vectored_read_bytes = BuilderValue::Set(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_validate_vectored_get(&mut self, value: bool) {
|
|
||||||
self.validate_vectored_get = BuilderValue::Set(value);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn get_image_compression(&mut self, value: ImageCompressionAlgorithm) {
|
pub fn get_image_compression(&mut self, value: ImageCompressionAlgorithm) {
|
||||||
self.image_compression = BuilderValue::Set(value);
|
self.image_compression = BuilderValue::Set(value);
|
||||||
}
|
}
|
||||||
@@ -745,10 +712,7 @@ impl PageServerConfigBuilder {
|
|||||||
heatmap_upload_concurrency,
|
heatmap_upload_concurrency,
|
||||||
secondary_download_concurrency,
|
secondary_download_concurrency,
|
||||||
ingest_batch_size,
|
ingest_batch_size,
|
||||||
get_vectored_impl,
|
|
||||||
get_impl,
|
|
||||||
max_vectored_read_bytes,
|
max_vectored_read_bytes,
|
||||||
validate_vectored_get,
|
|
||||||
image_compression,
|
image_compression,
|
||||||
ephemeral_bytes_per_memory_kb,
|
ephemeral_bytes_per_memory_kb,
|
||||||
l0_flush,
|
l0_flush,
|
||||||
@@ -1002,21 +966,12 @@ impl PageServerConf {
|
|||||||
"virtual_file_io_engine" => {
|
"virtual_file_io_engine" => {
|
||||||
builder.virtual_file_io_engine(parse_toml_from_str("virtual_file_io_engine", item)?)
|
builder.virtual_file_io_engine(parse_toml_from_str("virtual_file_io_engine", item)?)
|
||||||
}
|
}
|
||||||
"get_vectored_impl" => {
|
|
||||||
builder.get_vectored_impl(parse_toml_from_str("get_vectored_impl", item)?)
|
|
||||||
}
|
|
||||||
"get_impl" => {
|
|
||||||
builder.get_impl(parse_toml_from_str("get_impl", item)?)
|
|
||||||
}
|
|
||||||
"max_vectored_read_bytes" => {
|
"max_vectored_read_bytes" => {
|
||||||
let bytes = parse_toml_u64("max_vectored_read_bytes", item)? as usize;
|
let bytes = parse_toml_u64("max_vectored_read_bytes", item)? as usize;
|
||||||
builder.get_max_vectored_read_bytes(
|
builder.get_max_vectored_read_bytes(
|
||||||
MaxVectoredReadBytes(
|
MaxVectoredReadBytes(
|
||||||
NonZeroUsize::new(bytes).expect("Max byte size of vectored read must be greater than 0")))
|
NonZeroUsize::new(bytes).expect("Max byte size of vectored read must be greater than 0")))
|
||||||
}
|
}
|
||||||
"validate_vectored_get" => {
|
|
||||||
builder.get_validate_vectored_get(parse_toml_bool("validate_vectored_get", item)?)
|
|
||||||
}
|
|
||||||
"image_compression" => {
|
"image_compression" => {
|
||||||
builder.get_image_compression(parse_toml_from_str("image_compression", item)?)
|
builder.get_image_compression(parse_toml_from_str("image_compression", item)?)
|
||||||
}
|
}
|
||||||
@@ -1106,14 +1061,11 @@ impl PageServerConf {
|
|||||||
secondary_download_concurrency: defaults::DEFAULT_SECONDARY_DOWNLOAD_CONCURRENCY,
|
secondary_download_concurrency: defaults::DEFAULT_SECONDARY_DOWNLOAD_CONCURRENCY,
|
||||||
ingest_batch_size: defaults::DEFAULT_INGEST_BATCH_SIZE,
|
ingest_batch_size: defaults::DEFAULT_INGEST_BATCH_SIZE,
|
||||||
virtual_file_io_engine: DEFAULT_VIRTUAL_FILE_IO_ENGINE.parse().unwrap(),
|
virtual_file_io_engine: DEFAULT_VIRTUAL_FILE_IO_ENGINE.parse().unwrap(),
|
||||||
get_vectored_impl: defaults::DEFAULT_GET_VECTORED_IMPL.parse().unwrap(),
|
|
||||||
get_impl: defaults::DEFAULT_GET_IMPL.parse().unwrap(),
|
|
||||||
max_vectored_read_bytes: MaxVectoredReadBytes(
|
max_vectored_read_bytes: MaxVectoredReadBytes(
|
||||||
NonZeroUsize::new(defaults::DEFAULT_MAX_VECTORED_READ_BYTES)
|
NonZeroUsize::new(defaults::DEFAULT_MAX_VECTORED_READ_BYTES)
|
||||||
.expect("Invalid default constant"),
|
.expect("Invalid default constant"),
|
||||||
),
|
),
|
||||||
image_compression: defaults::DEFAULT_IMAGE_COMPRESSION,
|
image_compression: defaults::DEFAULT_IMAGE_COMPRESSION,
|
||||||
validate_vectored_get: defaults::DEFAULT_VALIDATE_VECTORED_GET,
|
|
||||||
ephemeral_bytes_per_memory_kb: defaults::DEFAULT_EPHEMERAL_BYTES_PER_MEMORY_KB,
|
ephemeral_bytes_per_memory_kb: defaults::DEFAULT_EPHEMERAL_BYTES_PER_MEMORY_KB,
|
||||||
l0_flush: L0FlushConfig::default(),
|
l0_flush: L0FlushConfig::default(),
|
||||||
compact_level0_phase1_value_access: CompactL0Phase1ValueAccess::default(),
|
compact_level0_phase1_value_access: CompactL0Phase1ValueAccess::default(),
|
||||||
@@ -1349,13 +1301,10 @@ background_task_maximum_delay = '334 s'
|
|||||||
secondary_download_concurrency: defaults::DEFAULT_SECONDARY_DOWNLOAD_CONCURRENCY,
|
secondary_download_concurrency: defaults::DEFAULT_SECONDARY_DOWNLOAD_CONCURRENCY,
|
||||||
ingest_batch_size: defaults::DEFAULT_INGEST_BATCH_SIZE,
|
ingest_batch_size: defaults::DEFAULT_INGEST_BATCH_SIZE,
|
||||||
virtual_file_io_engine: DEFAULT_VIRTUAL_FILE_IO_ENGINE.parse().unwrap(),
|
virtual_file_io_engine: DEFAULT_VIRTUAL_FILE_IO_ENGINE.parse().unwrap(),
|
||||||
get_vectored_impl: defaults::DEFAULT_GET_VECTORED_IMPL.parse().unwrap(),
|
|
||||||
get_impl: defaults::DEFAULT_GET_IMPL.parse().unwrap(),
|
|
||||||
max_vectored_read_bytes: MaxVectoredReadBytes(
|
max_vectored_read_bytes: MaxVectoredReadBytes(
|
||||||
NonZeroUsize::new(defaults::DEFAULT_MAX_VECTORED_READ_BYTES)
|
NonZeroUsize::new(defaults::DEFAULT_MAX_VECTORED_READ_BYTES)
|
||||||
.expect("Invalid default constant")
|
.expect("Invalid default constant")
|
||||||
),
|
),
|
||||||
validate_vectored_get: defaults::DEFAULT_VALIDATE_VECTORED_GET,
|
|
||||||
image_compression: defaults::DEFAULT_IMAGE_COMPRESSION,
|
image_compression: defaults::DEFAULT_IMAGE_COMPRESSION,
|
||||||
ephemeral_bytes_per_memory_kb: defaults::DEFAULT_EPHEMERAL_BYTES_PER_MEMORY_KB,
|
ephemeral_bytes_per_memory_kb: defaults::DEFAULT_EPHEMERAL_BYTES_PER_MEMORY_KB,
|
||||||
l0_flush: L0FlushConfig::default(),
|
l0_flush: L0FlushConfig::default(),
|
||||||
@@ -1425,13 +1374,10 @@ background_task_maximum_delay = '334 s'
|
|||||||
secondary_download_concurrency: defaults::DEFAULT_SECONDARY_DOWNLOAD_CONCURRENCY,
|
secondary_download_concurrency: defaults::DEFAULT_SECONDARY_DOWNLOAD_CONCURRENCY,
|
||||||
ingest_batch_size: 100,
|
ingest_batch_size: 100,
|
||||||
virtual_file_io_engine: DEFAULT_VIRTUAL_FILE_IO_ENGINE.parse().unwrap(),
|
virtual_file_io_engine: DEFAULT_VIRTUAL_FILE_IO_ENGINE.parse().unwrap(),
|
||||||
get_vectored_impl: defaults::DEFAULT_GET_VECTORED_IMPL.parse().unwrap(),
|
|
||||||
get_impl: defaults::DEFAULT_GET_IMPL.parse().unwrap(),
|
|
||||||
max_vectored_read_bytes: MaxVectoredReadBytes(
|
max_vectored_read_bytes: MaxVectoredReadBytes(
|
||||||
NonZeroUsize::new(defaults::DEFAULT_MAX_VECTORED_READ_BYTES)
|
NonZeroUsize::new(defaults::DEFAULT_MAX_VECTORED_READ_BYTES)
|
||||||
.expect("Invalid default constant")
|
.expect("Invalid default constant")
|
||||||
),
|
),
|
||||||
validate_vectored_get: defaults::DEFAULT_VALIDATE_VECTORED_GET,
|
|
||||||
image_compression: defaults::DEFAULT_IMAGE_COMPRESSION,
|
image_compression: defaults::DEFAULT_IMAGE_COMPRESSION,
|
||||||
ephemeral_bytes_per_memory_kb: defaults::DEFAULT_EPHEMERAL_BYTES_PER_MEMORY_KB,
|
ephemeral_bytes_per_memory_kb: defaults::DEFAULT_EPHEMERAL_BYTES_PER_MEMORY_KB,
|
||||||
l0_flush: L0FlushConfig::default(),
|
l0_flush: L0FlushConfig::default(),
|
||||||
|
|||||||
@@ -802,40 +802,6 @@ impl From<GetReadyAncestorError> for PageReconstructError {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(
|
|
||||||
Eq,
|
|
||||||
PartialEq,
|
|
||||||
Debug,
|
|
||||||
Copy,
|
|
||||||
Clone,
|
|
||||||
strum_macros::EnumString,
|
|
||||||
strum_macros::Display,
|
|
||||||
serde_with::DeserializeFromStr,
|
|
||||||
serde_with::SerializeDisplay,
|
|
||||||
)]
|
|
||||||
#[strum(serialize_all = "kebab-case")]
|
|
||||||
pub enum GetVectoredImpl {
|
|
||||||
Sequential,
|
|
||||||
Vectored,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(
|
|
||||||
Eq,
|
|
||||||
PartialEq,
|
|
||||||
Debug,
|
|
||||||
Copy,
|
|
||||||
Clone,
|
|
||||||
strum_macros::EnumString,
|
|
||||||
strum_macros::Display,
|
|
||||||
serde_with::DeserializeFromStr,
|
|
||||||
serde_with::SerializeDisplay,
|
|
||||||
)]
|
|
||||||
#[strum(serialize_all = "kebab-case")]
|
|
||||||
pub enum GetImpl {
|
|
||||||
Legacy,
|
|
||||||
Vectored,
|
|
||||||
}
|
|
||||||
|
|
||||||
pub(crate) enum WaitLsnWaiter<'a> {
|
pub(crate) enum WaitLsnWaiter<'a> {
|
||||||
Timeline(&'a Timeline),
|
Timeline(&'a Timeline),
|
||||||
Tenant,
|
Tenant,
|
||||||
@@ -995,11 +961,10 @@ impl Timeline {
|
|||||||
}
|
}
|
||||||
|
|
||||||
trace!(
|
trace!(
|
||||||
"get vectored request for {:?}@{} from task kind {:?} will use {} implementation",
|
"get vectored request for {:?}@{} from task kind {:?}",
|
||||||
keyspace,
|
keyspace,
|
||||||
lsn,
|
lsn,
|
||||||
ctx.task_kind(),
|
ctx.task_kind(),
|
||||||
self.conf.get_vectored_impl
|
|
||||||
);
|
);
|
||||||
|
|
||||||
let start = crate::metrics::GET_VECTORED_LATENCY
|
let start = crate::metrics::GET_VECTORED_LATENCY
|
||||||
|
|||||||
@@ -44,8 +44,7 @@ def test_basebackup_with_high_slru_count(
|
|||||||
page_cache_size = 16384
|
page_cache_size = 16384
|
||||||
max_file_descriptors = 500000
|
max_file_descriptors = 500000
|
||||||
neon_env_builder.pageserver_config_override = (
|
neon_env_builder.pageserver_config_override = (
|
||||||
f"page_cache_size={page_cache_size}; max_file_descriptors={max_file_descriptors}; "
|
f"page_cache_size={page_cache_size}; max_file_descriptors={max_file_descriptors}"
|
||||||
f"get_vectored_impl='vectored'; validate_vectored_get=false"
|
|
||||||
)
|
)
|
||||||
params.update(
|
params.update(
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user