[cpp worker] support cluster mode and object Put/Get works (#9682)

This commit is contained in:
SongGuyang
2020-08-28 13:53:36 +08:00
committed by GitHub
parent 0d22c0b653
commit cb70864c04
28 changed files with 490 additions and 58 deletions
+3
View File
@@ -199,6 +199,9 @@ RAY_CONFIG(int, num_workers_per_process_python, 1)
/// Number of workers per Java worker process
RAY_CONFIG(int, num_workers_per_process_java, 10)
/// Number of workers per CPP worker process
RAY_CONFIG(int, num_workers_per_process_cpp, 1)
/// Maximum number of ids in one batch to send to GCS to delete keys.
RAY_CONFIG(uint32_t, maximum_gcs_deletion_batch_size, 1000)
+2
View File
@@ -34,6 +34,8 @@ std::string LanguageString(Language language) {
return "python";
} else if (language == Language::JAVA) {
return "java";
} else if (language == Language::CPP) {
return "cpp";
}
RAY_CHECK(false);
return "";
+10 -3
View File
@@ -45,6 +45,7 @@ DEFINE_string(config_list, "", "The raylet config list of this node.");
DEFINE_string(python_worker_command, "", "Python worker command.");
DEFINE_string(java_worker_command, "", "Java worker command.");
DEFINE_string(agent_command, "", "Dashboard agent command.");
DEFINE_string(cpp_worker_command, "", "CPP worker command.");
DEFINE_string(redis_password, "", "The password of redis.");
DEFINE_string(temp_dir, "", "Temporary directory.");
DEFINE_string(session_dir, "", "The path of this ray session directory.");
@@ -84,6 +85,7 @@ int main(int argc, char *argv[]) {
const std::string python_worker_command = FLAGS_python_worker_command;
const std::string java_worker_command = FLAGS_java_worker_command;
const std::string agent_command = FLAGS_agent_command;
const std::string cpp_worker_command = FLAGS_cpp_worker_command;
const std::string redis_password = FLAGS_redis_password;
const std::string temp_dir = FLAGS_temp_dir;
const std::string session_dir = FLAGS_session_dir;
@@ -182,9 +184,14 @@ int main(int argc, char *argv[]) {
node_manager_config.worker_commands.emplace(
make_pair(ray::Language::JAVA, ParseCommandLine(java_worker_command)));
}
if (python_worker_command.empty() && java_worker_command.empty()) {
RAY_CHECK(0) << "Either Python worker command or Java worker command should be "
"provided.";
if (!cpp_worker_command.empty()) {
node_manager_config.worker_commands.emplace(
make_pair(ray::Language::CPP, ParseCommandLine(cpp_worker_command)));
}
if (python_worker_command.empty() && java_worker_command.empty() &&
cpp_worker_command.empty()) {
RAY_LOG(FATAL) << "At least one of Python/Java/CPP worker command "
<< "should be provided";
}
if (!agent_command.empty()) {
node_manager_config.agent_command = agent_command;
+4
View File
@@ -90,6 +90,10 @@ WorkerPool::WorkerPool(boost::asio::io_service &io_service, int num_workers,
state.num_workers_per_process =
RayConfig::instance().num_workers_per_process_java();
break;
case Language::CPP:
state.num_workers_per_process =
RayConfig::instance().num_workers_per_process_cpp();
break;
default:
RAY_LOG(FATAL) << "The number of workers per process for "
<< Language_Name(entry.first) << " worker is not set.";