-
-
Notifications
You must be signed in to change notification settings - Fork 162
Hottier fix #1645
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
base: main
Are you sure you want to change the base?
Hottier fix #1645
Changes from all commits
86083cf
b26b90b
92866c0
881d6fe
aec06d3
2b786c7
24b893f
e734cf4
60b8894
b5a348e
2b2fe61
43e437c
b185b38
b07cc3d
8af9f0f
a61b67b
3e51ed5
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -314,6 +314,50 @@ pub struct Options { | |||||||||||||||||||||||||||||||
| )] | ||||||||||||||||||||||||||||||||
| pub hot_tier_storage_path: Option<PathBuf>, | ||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
| #[arg( | ||||||||||||||||||||||||||||||||
| long = "hot-tier-download-chunk-size", | ||||||||||||||||||||||||||||||||
| env = "P_HOT_TIER_DOWNLOAD_CHUNK_SIZE", | ||||||||||||||||||||||||||||||||
| value_parser = clap::value_parser!(u64).range(5242880..), | ||||||||||||||||||||||||||||||||
| default_value = "8388608", | ||||||||||||||||||||||||||||||||
| help = "Chunk size in bytes for parallel hot tier downloads (default 8 MiB)" | ||||||||||||||||||||||||||||||||
| )] | ||||||||||||||||||||||||||||||||
| pub hot_tier_download_chunk_size: u64, | ||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
| #[arg( | ||||||||||||||||||||||||||||||||
| long = "hot-tier-download-concurrency", | ||||||||||||||||||||||||||||||||
| env = "P_HOT_TIER_DOWNLOAD_CONCURRENCY", | ||||||||||||||||||||||||||||||||
| value_parser = clap::value_parser!(u64).range(1..), | ||||||||||||||||||||||||||||||||
| default_value = "16", | ||||||||||||||||||||||||||||||||
| help = "Number of concurrent range requests per hot tier download" | ||||||||||||||||||||||||||||||||
| )] | ||||||||||||||||||||||||||||||||
| pub hot_tier_download_concurrency: u64, | ||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
| #[arg( | ||||||||||||||||||||||||||||||||
| long = "hot-tier-files-per-stream-concurrency", | ||||||||||||||||||||||||||||||||
| env = "P_HOT_TIER_FILES_PER_STREAM_CONCURRENCY", | ||||||||||||||||||||||||||||||||
| default_value = "4", | ||||||||||||||||||||||||||||||||
| help = "Number of concurrent parquet file downloads per stream during hot tier sync" | ||||||||||||||||||||||||||||||||
| )] | ||||||||||||||||||||||||||||||||
| pub hot_tier_files_per_stream_concurrency: usize, | ||||||||||||||||||||||||||||||||
|
Comment on lines
+335
to
+341
Contributor
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. Reject This is the only new hot-tier concurrency knob that still accepts Suggested fix #[arg(
long = "hot-tier-files-per-stream-concurrency",
env = "P_HOT_TIER_FILES_PER_STREAM_CONCURRENCY",
+ value_parser = clap::value_parser!(usize).range(1..),
default_value = "4",
help = "Number of concurrent parquet file downloads per stream during hot tier sync"
)]
pub hot_tier_files_per_stream_concurrency: usize,📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
| #[arg( | ||||||||||||||||||||||||||||||||
| long = "hot-tier-latest-minutes", | ||||||||||||||||||||||||||||||||
| env = "P_HOT_TIER_LATEST_MINUTES", | ||||||||||||||||||||||||||||||||
| value_parser = clap::value_parser!(u64).range(1..), | ||||||||||||||||||||||||||||||||
| default_value = "10", | ||||||||||||||||||||||||||||||||
| help = "Files whose timestamp is within the last N minutes are 'latest'; rest are 'historic'." | ||||||||||||||||||||||||||||||||
| )] | ||||||||||||||||||||||||||||||||
| pub hot_tier_latest_minutes: u64, | ||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
| #[arg( | ||||||||||||||||||||||||||||||||
| long = "hot-tier-historic-sync-minutes", | ||||||||||||||||||||||||||||||||
| env = "P_HOT_TIER_HISTORIC_SYNC_MINUTES", | ||||||||||||||||||||||||||||||||
| value_parser = clap::value_parser!(u32).range(1..), | ||||||||||||||||||||||||||||||||
| default_value = "5", | ||||||||||||||||||||||||||||||||
| help = "Interval (minutes) at which the historic hot-tier sync runs." | ||||||||||||||||||||||||||||||||
| )] | ||||||||||||||||||||||||||||||||
| pub hot_tier_historic_sync_minutes: u32, | ||||||||||||||||||||||||||||||||
|
coderabbitai[bot] marked this conversation as resolved.
|
||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
| //TODO: remove this when smart cache is implemented | ||||||||||||||||||||||||||||||||
| #[arg( | ||||||||||||||||||||||||||||||||
| long = "index-storage-path", | ||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
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.
🧩 Analysis chain
🏁 Script executed:
Repository: parseablehq/parseable
Length of output: 3499
Cap these download knobs to
usize::MAXfor 32-bit builds.These values are cast to
usizein the S3/GCS/Azure ranged-download paths. On 32-bit targets, values aboveusize::MAXtruncate to zero, which causesstep_by(0)to panic and creates a zero-permit semaphore that deadlocks.Suggested fix
#[arg( long = "hot-tier-download-chunk-size", env = "P_HOT_TIER_DOWNLOAD_CHUNK_SIZE", - value_parser = clap::value_parser!(u64).range(5242880..), + value_parser = clap::value_parser!(u64).range(5242880..=(usize::MAX as u64)), default_value = "8388608", help = "Chunk size in bytes for parallel hot tier downloads (default 8 MiB)" )] pub hot_tier_download_chunk_size: u64, #[arg( long = "hot-tier-download-concurrency", env = "P_HOT_TIER_DOWNLOAD_CONCURRENCY", - value_parser = clap::value_parser!(u64).range(1..), + value_parser = clap::value_parser!(u64).range(1..=(usize::MAX as u64)), default_value = "16", help = "Number of concurrent range requests per hot tier download" )] pub hot_tier_download_concurrency: u64,📝 Committable suggestion
🤖 Prompt for AI Agents