Skip to content

Commit f38a2df

Browse files
committed
chore(coprocessor): expose s3 retry policy configs
1 parent 384f788 commit f38a2df

File tree

6 files changed

+40
-18
lines changed

6 files changed

+40
-18
lines changed

coprocessor/fhevm-engine/Cargo.lock

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coprocessor/fhevm-engine/sns-executor/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ num-traits = "0.2.19"
3939
aws-sdk-s3 = "1.78.0"
4040
bytesize = "2.0.1"
4141
futures = "0.3.31"
42+
humantime = "2.2.0"
4243

4344
# local dependencies
4445
fhevm-engine-common = { path = "../fhevm-engine-common" }

coprocessor/fhevm-engine/sns-executor/src/bin/sns_worker.rs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
use fhevm_engine_common::telemetry;
2-
use sns_executor::{compute_128bit_ct, process_s3_uploads, Config, DBConfig, HandleItem, S3Config};
2+
use sns_executor::{
3+
compute_128bit_ct, process_s3_uploads, Config, DBConfig, HandleItem, S3Config, S3RetryPolicy,
4+
};
35
use tokio::{signal::unix, spawn, sync::mpsc};
46
use tokio_util::sync::CancellationToken;
57
use tracing::{error, Level};
@@ -35,8 +37,14 @@ fn construct_config() -> Config {
3537
s3: S3Config {
3638
bucket_ct128: args.bucket_name_ct128,
3739
bucket_ct64: args.bucket_name_ct64,
38-
max_concurrent_uploads: args.max_concurrent_uploads,
39-
retry_policy: S3Config::default().retry_policy, // TODO:
40+
max_concurrent_uploads: args.s3_max_concurrent_uploads,
41+
retry_policy: S3RetryPolicy {
42+
max_retries_per_upload: args.s3_max_retries_per_upload,
43+
max_backoff: args.s3_max_backoff,
44+
max_retries_timeout: args.s3_max_retries_timeout,
45+
recheck_duration: args.s3_recheck_duration,
46+
regular_recheck_duration: args.s3_recheck_duration,
47+
},
4048
},
4149
}
4250
}

coprocessor/fhevm-engine/sns-executor/src/bin/utils/daemon_cli.rs

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1+
use std::time::Duration;
2+
13
use clap::{command, Parser};
4+
use humantime::parse_duration;
25

36
#[derive(Parser, Debug, Clone)]
47
#[command(version, about, long_about = None)]
@@ -52,7 +55,22 @@ pub struct Args {
5255

5356
/// Maximum number of concurrent uploads to S3
5457
#[arg(long, default_value_t = 100)]
55-
pub max_concurrent_uploads: u32,
58+
pub s3_max_concurrent_uploads: u32,
59+
60+
#[arg(long, default_value_t = 100)]
61+
pub s3_max_retries_per_upload: u32,
62+
63+
#[arg(long, default_value = "10s", value_parser = parse_duration)]
64+
pub s3_max_backoff: Duration,
65+
66+
#[arg(long, default_value = "120s", value_parser = parse_duration)]
67+
pub s3_max_retries_timeout: Duration,
68+
69+
#[arg(long, default_value = "2s", value_parser = parse_duration)]
70+
pub s3_recheck_duration: Duration,
71+
72+
#[arg(long, default_value = "120s", value_parser = parse_duration)]
73+
pub s3_regular_recheck_duration: Duration,
5674
}
5775

5876
pub fn parse_args() -> Args {

coprocessor/fhevm-engine/sns-executor/src/executor.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,7 @@ async fn process_tasks(
282282
// Enqueue the task for upload in DB
283283
task.enqueue_upload_task(db_txn).await?;
284284

285-
// Start uploading the ciphertexts
285+
// Start uploading the ciphertexts as soon as the ct128 is computed
286286
//
287287
// The service must continue running the squashed noise algorithm,
288288
// regardless of the availability of the upload worker.

coprocessor/fhevm-engine/sns-executor/src/lib.rs

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ pub struct S3Config {
4343
pub retry_policy: S3RetryPolicy,
4444
}
4545

46-
#[derive(Clone, Debug)]
46+
#[derive(Clone, Debug, Default)]
4747
pub struct S3RetryPolicy {
4848
pub max_retries_per_upload: u32,
4949
pub max_backoff: Duration,
@@ -52,18 +52,6 @@ pub struct S3RetryPolicy {
5252
pub regular_recheck_duration: Duration,
5353
}
5454

55-
impl Default for S3RetryPolicy {
56-
fn default() -> Self {
57-
Self {
58-
max_retries_per_upload: 60,
59-
max_backoff: Duration::from_secs(10),
60-
max_retries_timeout: Duration::from_secs(2 * 60),
61-
recheck_duration: Duration::from_secs(1),
62-
regular_recheck_duration: Duration::from_secs(60),
63-
}
64-
}
65-
}
66-
6755
#[derive(Clone)]
6856
pub struct Config {
6957
pub tenant_api_key: String,

0 commit comments

Comments
 (0)