-
Notifications
You must be signed in to change notification settings - Fork 446
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
page_service: rewrite batching to work without a timeout, pipeline in protocol handler instead #9851
base: problame/merge-getpage-test
Are you sure you want to change the base?
page_service: rewrite batching to work without a timeout, pipeline in protocol handler instead #9851
Changes from all commits
1639b26
f3ed569
81d9970
1d85bec
12124b2
f9bf038
689788c
7be13bc
c73e9e4
68550f0
721643b
5f3e6f3
cbb5817
21866fa
469ce81
fcda7a7
f22ad86
517dda8
c68661d
89b6cb8
fa7ce2c
09e7485
a1bb2e7
aa1032a
345f8b6
408bc8f
73046fd
56de071
7680aa1
240e48d
db9093f
88fd8ae
89d9d16
a3d1cf6
c1040bc
0fa8ae3
093674b
c1e8347
39e45f9
ef502f8
a28c54d
d6e5a46
11dc713
5796f3b
cbe1839
990e44d
bd31f42
6ec5ac1
0bb0372
b9477aa
99b664c
9bf2618
a23abb2
41ddc67
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -109,8 +109,7 @@ pub struct ConfigToml { | |
pub virtual_file_io_mode: Option<crate::models::virtual_file::IoMode>, | ||
#[serde(skip_serializing_if = "Option::is_none")] | ||
pub no_sync: Option<bool>, | ||
#[serde(with = "humantime_serde")] | ||
pub server_side_batch_timeout: Option<Duration>, | ||
pub page_service_pipelining: Option<PageServicePipeliningConfig>, | ||
} | ||
|
||
#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)] | ||
|
@@ -127,6 +126,21 @@ pub struct DiskUsageEvictionTaskConfig { | |
pub eviction_order: EvictionOrder, | ||
} | ||
|
||
#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)] | ||
#[serde(deny_unknown_fields)] | ||
pub struct PageServicePipeliningConfig { | ||
/// Causes runtime errors if larger than max get_vectored batch size. | ||
pub max_batch_size: NonZeroUsize, | ||
pub protocol_pipelining_mode: PageServiceProtocolPipeliningMode, | ||
} | ||
|
||
#[derive(Debug, Clone, Copy, PartialEq, Eq, serde::Serialize, serde::Deserialize)] | ||
#[serde(rename_all = "kebab-case")] | ||
pub enum PageServiceProtocolPipeliningMode { | ||
ConcurrentFutures, | ||
Tasks, | ||
} | ||
|
||
pub mod statvfs { | ||
pub mod mock { | ||
#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)] | ||
|
@@ -319,8 +333,6 @@ pub mod defaults { | |
pub const DEFAULT_EPHEMERAL_BYTES_PER_MEMORY_KB: usize = 0; | ||
|
||
pub const DEFAULT_IO_BUFFER_ALIGNMENT: usize = 512; | ||
|
||
pub const DEFAULT_SERVER_SIDE_BATCH_TIMEOUT: Option<&str> = None; | ||
} | ||
|
||
impl Default for ConfigToml { | ||
|
@@ -401,10 +413,12 @@ impl Default for ConfigToml { | |
ephemeral_bytes_per_memory_kb: (DEFAULT_EPHEMERAL_BYTES_PER_MEMORY_KB), | ||
l0_flush: None, | ||
virtual_file_io_mode: None, | ||
server_side_batch_timeout: DEFAULT_SERVER_SIDE_BATCH_TIMEOUT | ||
.map(|duration| humantime::parse_duration(duration).unwrap()), | ||
tenant_config: TenantConfigToml::default(), | ||
no_sync: None, | ||
page_service_pipelining: Some(PageServicePipeliningConfig { | ||
max_batch_size: NonZeroUsize::new(32).unwrap(), | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Could we use There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Hm, initially I was thinking to revert back to Let's keep this conversation open and decide later. |
||
protocol_pipelining_mode: PageServiceProtocolPipeliningMode::ConcurrentFutures, | ||
}), | ||
} | ||
} | ||
} | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,5 @@ | ||
pub mod heavier_once_cell; | ||
|
||
pub mod gate; | ||
|
||
pub mod spsc_fold; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we enable this in a few test unit/python to get some rudimentary continuous test coverage?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't get the question. If the default is
Some
here, so, we have the entire test suite as coverage.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I assumed you won't merge it with pipelining enabled. If that's the case, I am suggesting to parametrize some existing python tests to use pipelining (we'd also have to tweak the compute config).