Skip to content

Commit

Permalink
feat(cubestore): Select worker process pool
Browse files Browse the repository at this point in the history
  • Loading branch information
paveltiunov committed Nov 9, 2020
1 parent 14cf03c commit c282cdd
Show file tree
Hide file tree
Showing 16 changed files with 1,341 additions and 405 deletions.
3 changes: 2 additions & 1 deletion rust/.gitignore
@@ -1,4 +1,5 @@
/target
/.idea
upstream
.cubestore
.cubestore
.cargo/config.toml
68 changes: 67 additions & 1 deletion rust/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 4 additions & 1 deletion rust/cubestore/Cargo.toml
Expand Up @@ -47,4 +47,7 @@ itertools = "0.9.0"
bigdecimal = { version = "0.2.0", features = ["serde"] }
rust-s3 = "0.26.3"
aws-creds = "0.24.1"
aws-region = "0.22.1"
aws-region = "0.22.1"
procspawn = { version = "0.9.0", features = ["test-support"] }
deadqueue = "0.1.0"
ipc-channel = "0.14.1"
43 changes: 31 additions & 12 deletions rust/cubestore/src/bin/cubestored.rs
Expand Up @@ -4,9 +4,10 @@ use cubestore::config::Config;
use simple_logger::SimpleLogger;
use log::Level;
use std::env;
use tokio::runtime::Builder;
use log::{debug};

#[tokio::main]
async fn main() {
fn main() {
let log_level = match env::var("CUBESTORE_LOG_LEVEL").unwrap_or("info".to_string()).to_lowercase().as_str() {
"error" => Level::Error,
"warn" => Level::Warn,
Expand All @@ -21,16 +22,34 @@ async fn main() {
.with_module_level("cubestore", log_level.to_level_filter())
.init().unwrap();

let services = Config::default().configure().await;
let mut runtime = Builder::new()
.enable_all()
.threaded_scheduler()
.build()
.unwrap();

services.start_processing_loops().await.unwrap();

let (r1, r2, r3) = join3(
MySqlServer::listen("0.0.0.0:3306".to_string(), services.sql_service.clone()),
services.scheduler.write().await.run_scheduler(),
services.listener.run_listener()
).await;
r1.unwrap();
r2.unwrap();
r3.unwrap();
let config = Config::default();

config.configure_worker();

debug!("New process started");

runtime.enter(|| {
procspawn::init();
});

runtime.block_on(async move {
let services = config.configure().await;
services.start_processing_loops().await.unwrap();

let (r1, r2, r3) = join3(
MySqlServer::listen("0.0.0.0:3306".to_string(), services.sql_service.clone()),
services.scheduler.write().await.run_scheduler(),
services.listener.run_listener(),
).await;
r1.unwrap();
r2.unwrap();
r3.unwrap();
});
}

0 comments on commit c282cdd

Please sign in to comment.