diff --git a/Cargo.lock b/Cargo.lock index 8c5e7c540..bba7d51ad 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -593,29 +593,6 @@ dependencies = [ "crc32fast", ] -[[package]] -name = "aws-smithy-experimental" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61b434f45060a1c045c11e99b09c5ae42a9de6ba7792b0542c43fd2db13f296e" -dependencies = [ - "aws-smithy-async", - "aws-smithy-runtime", - "aws-smithy-runtime-api", - "aws-smithy-types", - "h2 0.4.6", - "http 1.1.0", - "hyper 1.5.2", - "hyper-rustls 0.27.3", - "hyper-util", - "once_cell", - "pin-project-lite", - "rustls 0.23.18", - "tokio", - "tower 0.4.13", - "tracing", -] - [[package]] name = "aws-smithy-http" version = "0.60.11" @@ -1669,17 +1646,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.85", -] - [[package]] name = "dlv-list" version = "0.5.2" @@ -1778,18 +1744,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "enum-as-inner" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" -dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", - "syn 2.0.85", -] - [[package]] name = "equivalent" version = "1.0.1" @@ -2301,49 +2255,6 @@ dependencies = [ "serde", ] -[[package]] -name = "hickory-proto" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "447afdcdb8afb9d0a852af6dc65d9b285ce720ed7a59e42a8bf2e931c67bc1b5" -dependencies = [ - "async-trait", - "cfg-if", - "data-encoding", - "enum-as-inner 0.6.1", - "futures-channel", - "futures-io", - "futures-util", - "idna 1.0.3", - "ipnet", - "once_cell", - "rand", - "thiserror", - "tinyvec", - "tokio", - "tracing", - "url", -] - -[[package]] -name = "hickory-resolver" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a2e2aba9c389ce5267d31cf1e4dace82390ae276b0b364ea55630b1fa1b44b4" -dependencies = [ - "cfg-if", - "futures-util", - "hickory-proto", - "lru-cache", - "once_cell", - "parking_lot", - "rand", - "smallvec", - "thiserror", - "tokio", - "tracing", -] - [[package]] name = "hkdf" version = "0.12.4" @@ -2630,124 +2541,6 @@ dependencies = [ "cc", ] -[[package]] -name = "icu_collections" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locid" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" - -[[package]] -name = "icu_normalizer" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "utf16_iter", - "utf8_iter", - "write16", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" - -[[package]] -name = "icu_properties" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_locid_transform", - "icu_properties_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" - -[[package]] -name = "icu_provider" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_provider_macros", - "stable_deref_trait", - "tinystr", - "writeable", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.85", -] - [[package]] name = "ident_case" version = "1.0.1" @@ -2775,27 +2568,6 @@ dependencies = [ "unicode-normalization", ] -[[package]] -name = "idna" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - [[package]] name = "indenter" version = "0.3.3" @@ -2885,8 +2657,6 @@ dependencies = [ "aws-sdk-s3", "aws-sdk-sns", "aws-sdk-sqs", - "aws-smithy-experimental", - "aws-smithy-runtime-api", "axum", "base64 0.22.1", "bincode", @@ -2896,7 +2666,6 @@ dependencies = [ "dotenvy", "eyre", "futures", - "hickory-resolver", "iris-mpc-common", "iris-mpc-gpu", "iris-mpc-store", @@ -3276,12 +3045,6 @@ version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" -[[package]] -name = "litemap" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" - [[package]] name = "lock_api" version = "0.4.12" @@ -5481,12 +5244,6 @@ dependencies = [ "url", ] -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - [[package]] name = "static_assertions" version = "1.1.0" @@ -5559,17 +5316,6 @@ dependencies = [ "futures-core", ] -[[package]] -name = "synstructure" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.85", -] - [[package]] name = "system-configuration" version = "0.5.1" @@ -5741,16 +5487,6 @@ dependencies = [ "crunchy", ] -[[package]] -name = "tinystr" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" -dependencies = [ - "displaydoc", - "zerovec", -] - [[package]] name = "tinytemplate" version = "1.2.1" @@ -6146,7 +5882,7 @@ dependencies = [ "async-trait", "cfg-if", "data-encoding", - "enum-as-inner 0.4.0", + "enum-as-inner", "futures-channel", "futures-io", "futures-util", @@ -6285,18 +6021,6 @@ version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - [[package]] name = "utf8parse" version = "0.2.2" @@ -6765,18 +6489,6 @@ dependencies = [ "url", ] -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - -[[package]] -name = "writeable" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" - [[package]] name = "wyz" version = "0.5.1" @@ -6812,30 +6524,6 @@ dependencies = [ "time", ] -[[package]] -name = "yoke" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" -dependencies = [ - "serde", - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.85", - "synstructure", -] - [[package]] name = "zerocopy" version = "0.7.35" @@ -6857,51 +6545,8 @@ dependencies = [ "syn 2.0.85", ] -[[package]] -name = "zerofrom" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.85", - "synstructure", -] - [[package]] name = "zeroize" version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" - -[[package]] -name = "zerovec" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.85", -] diff --git a/deploy/stage/smpcv2-0-stage/values-iris-mpc.yaml b/deploy/stage/smpcv2-0-stage/values-iris-mpc.yaml index d700308e3..eea80b51f 100644 --- a/deploy/stage/smpcv2-0-stage/values-iris-mpc.yaml +++ b/deploy/stage/smpcv2-0-stage/values-iris-mpc.yaml @@ -80,15 +80,9 @@ env: - name: SMPC__LOAD_CHUNKS_PARALLELISM value: "64" - - name: SMPC__LOAD_CHUNKS_DEFAULT_CLIENT - value: "false" - - name: SMPC__LOAD_CHUNKS_BUFFER_SIZE value: "1024" - - name: SMPC__LOAD_CHUNKS_STATIC_IPS - value: "16" - - name: SMPC__PAGE_LOCK_CHUNK_PERCENTAGE value: "10" diff --git a/deploy/stage/smpcv2-1-stage/values-iris-mpc.yaml b/deploy/stage/smpcv2-1-stage/values-iris-mpc.yaml index 11b7596e4..906ff0371 100644 --- a/deploy/stage/smpcv2-1-stage/values-iris-mpc.yaml +++ b/deploy/stage/smpcv2-1-stage/values-iris-mpc.yaml @@ -80,15 +80,9 @@ env: - name: SMPC__LOAD_CHUNKS_PARALLELISM value: "64" - - name: SMPC__LOAD_CHUNKS_DEFAULT_CLIENT - value: "false" - - name: SMPC__LOAD_CHUNKS_BUFFER_SIZE value: "1024" - - name: SMPC__LOAD_CHUNKS_STATIC_IPS - value: "16" - - name: SMPC__PAGE_LOCK_CHUNK_PERCENTAGE value: "10" diff --git a/deploy/stage/smpcv2-2-stage/values-iris-mpc.yaml b/deploy/stage/smpcv2-2-stage/values-iris-mpc.yaml index 54a17fc26..e88e40b05 100644 --- a/deploy/stage/smpcv2-2-stage/values-iris-mpc.yaml +++ b/deploy/stage/smpcv2-2-stage/values-iris-mpc.yaml @@ -80,14 +80,8 @@ env: - name: SMPC__LOAD_CHUNKS_PARALLELISM value: "64" - - name: SMPC__LOAD_CHUNKS_DEFAULT_CLIENT - value: "false" - - name: SMPC__LOAD_CHUNKS_BUFFER_SIZE value: "1024" - - - name: SMPC__LOAD_CHUNKS_STATIC_IPS - value: "16" - name: SMPC__PAGE_LOCK_CHUNK_PERCENTAGE value: "10" diff --git a/iris-mpc-common/src/config/mod.rs b/iris-mpc-common/src/config/mod.rs index e6f7068b1..628d85b8d 100644 --- a/iris-mpc-common/src/config/mod.rs +++ b/iris-mpc-common/src/config/mod.rs @@ -112,15 +112,9 @@ pub struct Config { #[serde(default)] pub fixed_shared_secrets: bool, - #[serde(default)] - pub load_chunks_default_client: bool, - #[serde(default)] pub load_chunks_buffer_size: usize, - #[serde(default)] - pub load_chunks_static_ips: usize, - /// Percentage of the chunk size to page lock at each iteration /// Must be a positive integer between [1-100] /// The first memory chunk will be page-locked before starting db & s3 diff --git a/iris-mpc/Cargo.toml b/iris-mpc/Cargo.toml index 8d8717072..605a831d8 100644 --- a/iris-mpc/Cargo.toml +++ b/iris-mpc/Cargo.toml @@ -37,11 +37,6 @@ metrics = "0.22.1" metrics-exporter-statsd = "0.7" serde = { version = "1.0.214", features = ["derive"] } bincode = "1.3.3" -#hyper = { version = "0.14", features = ["full"] } -aws-smithy-experimental = { version = "0.1.5", features = ["crypto-ring"] } -aws-smithy-runtime-api = "1.7.3" - -hickory-resolver = { version = "0.24.2", default-features = false, features = ["tokio-runtime"] } [dev-dependencies] criterion = "0.5" diff --git a/iris-mpc/src/bin/server.rs b/iris-mpc/src/bin/server.rs index 3035f0471..81dae67f5 100644 --- a/iris-mpc/src/bin/server.rs +++ b/iris-mpc/src/bin/server.rs @@ -7,16 +7,10 @@ use aws_sdk_s3::{ }; use aws_sdk_sns::{types::MessageAttributeValue, Client as SNSClient}; use aws_sdk_sqs::{config::Region, Client}; -use aws_smithy_experimental::hyper_1_0::{CryptoMode, HyperClientBuilder}; -use aws_smithy_runtime_api::client::dns::{DnsFuture, ResolveDns}; use axum::{response::IntoResponse, routing::get, Router}; use clap::Parser; use eyre::{eyre, Context}; use futures::{stream::BoxStream, StreamExt}; -use hickory_resolver::{ - config::{ResolverConfig, ResolverOpts}, - TokioAsyncResolver, -}; use iris_mpc_common::{ config::{Config, Opt}, galois_engine::degree4::{GaloisRingIrisCodeShare, GaloisRingTrimmedMaskCodeShare}, @@ -60,15 +54,12 @@ use serde::{Deserialize, Serialize}; use std::{ backtrace::Backtrace, collections::{HashMap, HashSet}, - fmt::{Debug, Formatter}, - mem, - net::IpAddr, - panic, + fmt::Debug, + mem, panic, sync::{ - atomic::{AtomicBool, AtomicUsize, Ordering}, + atomic::{AtomicBool, Ordering}, Arc, LazyLock, Mutex, }, - time, time::{Duration, Instant}, }; use telemetry_batteries::tracing::{datadog::DatadogBattery, TracingShutdownHandle}; @@ -692,94 +683,12 @@ async fn main() -> eyre::Result<()> { Ok(()) } -struct StaticResolver { - ips: Arc>, - current: Arc, -} - -impl StaticResolver { - fn new(ips: Vec) -> Self { - Self { - ips: Arc::new(ips), - current: Arc::new(AtomicUsize::new(0)), - } - } -} - -impl Debug for StaticResolver { - fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { - // Load the current index atomically - let current_index = self.current.load(Ordering::SeqCst); - f.debug_struct("StaticResolver") - .field("ips", &self.ips) - .field("current_index", ¤t_index) - .finish() - } -} - -impl Clone for StaticResolver { - fn clone(&self) -> Self { - Self { - ips: Arc::clone(&self.ips), - current: Arc::clone(&self.current), - } - } -} - -impl ResolveDns for StaticResolver { - fn resolve_dns<'a>(&'a self, _name: &'a str) -> DnsFuture<'a> { - let current_index = self.current.fetch_add(1, Ordering::SeqCst); - let index = current_index % self.ips.len(); - let selected_ip = self.ips[index]; - let future = async move { - tracing::info!("Returning IP {:?} for host {}", selected_ip, _name); - Ok(vec![selected_ip]) - }; - DnsFuture::new(Box::pin(future)) - } -} - -async fn resolve_export_bucket_ips(host: String, n_ips: usize) -> eyre::Result> { - let mut all_ips = vec![]; - let mut resolver_opts = ResolverOpts::default(); - resolver_opts.positive_max_ttl = Some(time::Duration::from_millis(10)); - let resolver = TokioAsyncResolver::tokio(ResolverConfig::default(), resolver_opts); - loop { - // Check if we've collected enough unique IPs - if all_ips.len() >= n_ips { - break; - } - match resolver.lookup_ip(&host).await { - Ok(lookup_result) => { - let ips: Vec = lookup_result.iter().collect(); - tracing::info!("Resolved {:?} for host {}", ips, host); - for ip in lookup_result.iter() { - // Attempt to insert the IP into the HashSet - if !all_ips.contains(&ip) { - all_ips.push(ip); - tracing::info!("Added IP {:?} for host {}", ip, host); - } - } - } - Err(e) => { - tracing::error!("Failed to resolve host {}: {}", host, e); - } - } - tokio::time::sleep(Duration::from_millis(20)).await; - } - Ok(all_ips) -} - async fn server_main(config: Config) -> eyre::Result<()> { let shutdown_handler = Arc::new(ShutdownHandler::new( config.shutdown_last_results_sync_timeout_secs, )); shutdown_handler.wait_for_shutdown_signal().await; - let db_chunks_bucket_host = format!( - "{}.s3.{}.amazonaws.com", - config.db_chunks_bucket_name, REGION - ); // Load batch_size config *CURRENT_BATCH_SIZE.lock().unwrap() = config.max_batch_size; let max_sync_lookback: usize = config.max_batch_size * 2; @@ -800,6 +709,8 @@ async fn server_main(config: Config) -> eyre::Result<()> { // Increase S3 retries to 5 let retry_config = RetryConfig::standard().with_max_attempts(5); + + // Increase S3 connect timeouts to 10s let timeout_config = TimeoutConfig::builder() .connect_timeout(Duration::from_secs(10)) .build(); @@ -807,31 +718,13 @@ async fn server_main(config: Config) -> eyre::Result<()> { let s3_config = S3ConfigBuilder::from(&shared_config) .retry_config(retry_config.clone()) .build(); - let db_chunks_s3_config = match config.load_chunks_default_client { - true => { - S3ConfigBuilder::from(&shared_config) - // disable stalled stream protection to avoid panics during s3 import - .stalled_stream_protection(StalledStreamProtectionConfig::disabled()) - .retry_config(retry_config) - .timeout_config(timeout_config) - .build() - } - false => { - let db_chunks_bucket_ips = - resolve_export_bucket_ips(db_chunks_bucket_host, config.load_chunks_static_ips); - let static_resolver = StaticResolver::new(db_chunks_bucket_ips.await?); - let http_client = HyperClientBuilder::new() - .crypto_mode(CryptoMode::Ring) - .build_with_resolver(static_resolver); - S3ConfigBuilder::from(&shared_config) - // disable stalled stream protection to avoid panics during s3 import - .stalled_stream_protection(StalledStreamProtectionConfig::disabled()) - .retry_config(retry_config) - .timeout_config(timeout_config) - .http_client(http_client) - .build() - } - }; + + let db_chunks_s3_config = S3ConfigBuilder::from(&shared_config) + // disable stalled stream protection to avoid panics during s3 import + .stalled_stream_protection(StalledStreamProtectionConfig::disabled()) + .retry_config(retry_config) + .timeout_config(timeout_config) + .build(); let s3_client = Arc::new(S3Client::from_conf(s3_config)); let db_chunks_s3_client = Arc::new(S3Client::from_conf(db_chunks_s3_config)); @@ -1193,7 +1086,6 @@ async fn server_main(config: Config) -> eyre::Result<()> { tokio::runtime::Handle::current().block_on(async { let total_load_time = Instant::now(); - tracing::info!("Page-lock host memory"); let dbs = [ (actor.left_code_db_slices.code_gr.clone(), IRIS_CODE_LENGTH), (actor.right_code_db_slices.code_gr.clone(), IRIS_CODE_LENGTH), @@ -1203,7 +1095,7 @@ async fn server_main(config: Config) -> eyre::Result<()> { let n_page_lock_iters = 100 / config.page_lock_chunk_percentage; let page_lock_chunk_size = config.max_db_size / n_page_lock_iters; tracing::info!( - "Will page lock chunks in {} iters each {} items", + "Will page lock chunks in {} iters, each {} items", n_page_lock_iters, page_lock_chunk_size ); @@ -1750,6 +1642,7 @@ async fn server_main(config: Config) -> eyre::Result<()> { Ok(()) } +// Helper function to load Aurora db records from the stream into memory async fn load_db_records<'a>( actor: &mut ServerActor, mut record_counter: i32,