From 68a8ec12fa295f4131422faf2dadf7c17af839fb Mon Sep 17 00:00:00 2001 From: Marcin Copik Date: Mon, 21 Oct 2024 00:17:21 +0000 Subject: [PATCH 1/2] [control-plane] Remove debug output --- control-plane/src/tcpserver.cpp | 6 ------ 1 file changed, 6 deletions(-) diff --git a/control-plane/src/tcpserver.cpp b/control-plane/src/tcpserver.cpp index 4d058cf..2d64cea 100644 --- a/control-plane/src/tcpserver.cpp +++ b/control-plane/src/tcpserver.cpp @@ -161,9 +161,6 @@ namespace praas::control_plane::tcpserver { // Waiting for data - _logger->info( - "There are {} bytes to read, {} expected", buffer->readableBytes(), conn_data->bytes_to_read - ); if (conn_data->bytes_to_read > 0) { auto msg = praas::common::message::MessageParser::parse(conn_data->cur_msg); @@ -181,9 +178,6 @@ namespace praas::control_plane::tcpserver { consumed = handle_message(connectionPtr, buffer, *conn_data, msg); } - _logger->info( - "Consumed message? {} There are {} bytes remaining", consumed, buffer->readableBytes() - ); if (consumed && buffer->readableBytes() > 0) { handle_message(connectionPtr, buffer); } From 81897764d5bcb483b79acfdb4b9a44b01ee4997b Mon Sep 17 00:00:00 2001 From: Marcin Copik Date: Mon, 21 Oct 2024 00:20:35 +0000 Subject: [PATCH 2/2] [control-plane] Support process resource definitions in FaaS invoke --- control-plane/include/praas/control-plane/worker.hpp | 4 +++- control-plane/src/backend.cpp | 4 ++-- control-plane/src/downscaler.cpp | 2 +- control-plane/src/http.cpp | 9 +++++++-- control-plane/src/worker.cpp | 11 +++++++++-- 5 files changed, 22 insertions(+), 8 deletions(-) diff --git a/control-plane/include/praas/control-plane/worker.hpp b/control-plane/include/praas/control-plane/worker.hpp index ef6b42f..96f7a2c 100644 --- a/control-plane/include/praas/control-plane/worker.hpp +++ b/control-plane/include/praas/control-plane/worker.hpp @@ -64,7 +64,9 @@ namespace praas::control_plane::worker { void handle_invocation( HttpServer::request_t request, HttpServer::callback_t&& callback, const std::string& app_id, std::string function_name, std::chrono::high_resolution_clock::time_point start, - std::optional process_name + std::optional process_name, + std::optional vcpus, + std::optional memory ); //////////////////////////////////////////////////////////////////////////////// diff --git a/control-plane/src/backend.cpp b/control-plane/src/backend.cpp index fbb469a..0239237 100644 --- a/control-plane/src/backend.cpp +++ b/control-plane/src/backend.cpp @@ -265,11 +265,11 @@ namespace praas::control_plane::backend { req.SetNetworkInterfaceIds({eni_interface}); _ec2_client->DescribeNetworkInterfacesAsync( + req, [this](auto* ptr, auto res, auto outcome, auto& context) mutable { _callback_describe_eni(ptr, res, outcome, context); }, - nullptr, - req + nullptr ); } diff --git a/control-plane/src/downscaler.cpp b/control-plane/src/downscaler.cpp index f8a5ee6..992ab2e 100644 --- a/control-plane/src/downscaler.cpp +++ b/control-plane/src/downscaler.cpp @@ -76,7 +76,7 @@ namespace praas::control_plane::downscaler { auto lock = ptr->read_lock(); auto name = ptr->name(); - _process_list[name] = ProcessStats{std::move(ptr), now_timestamp}; + _process_list[name] = ProcessStats{std::move(ptr), static_cast(now_timestamp)}; } else { auto lock = ptr->read_lock(); diff --git a/control-plane/src/http.cpp b/control-plane/src/http.cpp index fc3d447..6cb266d 100644 --- a/control-plane/src/http.cpp +++ b/control-plane/src/http.cpp @@ -175,12 +175,17 @@ namespace praas::control_plane { ) { std::string pid = request->getParameter("process_name"); + std::string vcpus_str = request->getParameter("vcpus"); + std::string memory_str = request->getParameter("memory"); - _logger->info("Push new invocation request of {}", function_name); + _logger->info("Push new invocation request of {}, vcpus {}, memory {}", function_name, vcpus_str, memory_str); auto start = std::chrono::high_resolution_clock::now(); _workers.add_task( &worker::Workers::handle_invocation, request, std::move(callback), app_name, function_name, - start, !pid.empty() ? std::make_optional(pid) : std::nullopt + start, + !pid.empty() ? std::make_optional(pid) : std::nullopt, + !vcpus_str.empty() ? std::make_optional(vcpus_str) : std::nullopt, + !memory_str.empty() ? std::make_optional(memory_str) : std::nullopt ); } diff --git a/control-plane/src/worker.cpp b/control-plane/src/worker.cpp index 33053bc..538ac9a 100644 --- a/control-plane/src/worker.cpp +++ b/control-plane/src/worker.cpp @@ -22,7 +22,9 @@ namespace praas::control_plane::worker { void Workers::handle_invocation( HttpServer::request_t request, HttpServer::callback_t&& callback, const std::string& app_id, std::string function_name, std::chrono::high_resolution_clock::time_point start, - std::optional process_name + std::optional process_name, + std::optional vcpus, + std::optional memory ) { Resources::RWAccessor acc; @@ -91,7 +93,12 @@ namespace praas::control_plane::worker { // Get a process or allocate one. // FIXME: make resources configurable acc.get()->get_controlplane_process( - _backend, *_server, process::Resources{"1", "2048", ""}, + _backend, *_server, + process::Resources{ + !vcpus.has_value() ? "1024" : vcpus.value(), + !memory.has_value() ? "2048" : memory.value(), + "" + }, [start, function_name, request = std::move(request), callback = std::move(callback)]( process::ProcessPtr proc_ptr, const std::optional& error_msg ) mutable {