From 1c86f25fab57f4c2bc3f314683a911959f90b9b8 Mon Sep 17 00:00:00 2001 From: Grant Limberg Date: Thu, 6 Dec 2018 13:08:31 -0800 Subject: update # of threads for Postgres --- controller/DB.hpp | 2 -- controller/PostgreSQL.cpp | 11 +++++------ controller/PostgreSQL.hpp | 4 +++- 3 files changed, 8 insertions(+), 9 deletions(-) (limited to 'controller') diff --git a/controller/DB.hpp b/controller/DB.hpp index 4b2940cd..b1d8673e 100644 --- a/controller/DB.hpp +++ b/controller/DB.hpp @@ -35,8 +35,6 @@ #include "../ext/json/json.hpp" -#define ZT_CONTROLLER_RETHINKDB_COMMIT_THREADS 2 - namespace ZeroTier { diff --git a/controller/PostgreSQL.cpp b/controller/PostgreSQL.cpp index ff1d6c59..e0100613 100644 --- a/controller/PostgreSQL.cpp +++ b/controller/PostgreSQL.cpp @@ -77,7 +77,7 @@ PostgreSQL::PostgreSQL(EmbeddedNetworkController *const nc, const Identity &myId _heartbeatThread = std::thread(&PostgreSQL::heartbeat, this); _membersDbWatcher = std::thread(&PostgreSQL::membersDbWatcher, this); _networksDbWatcher = std::thread(&PostgreSQL::networksDbWatcher, this); - for (int i = 0; i < ZT_CONTROLLER_RETHINKDB_COMMIT_THREADS; ++i) { + for (int i = 0; i < ZT_CENTRAL_CONTROLLER_COMMIT_THREADS; ++i) { _commitThread[i] = std::thread(&PostgreSQL::commitThread, this); } _onlineNotificationThread = std::thread(&PostgreSQL::onlineNotificationThread, this); @@ -91,7 +91,7 @@ PostgreSQL::~PostgreSQL() _heartbeatThread.join(); _membersDbWatcher.join(); _networksDbWatcher.join(); - for (int i = 0; i < ZT_CONTROLLER_RETHINKDB_COMMIT_THREADS; ++i) { + for (int i = 0; i < ZT_CENTRAL_CONTROLLER_COMMIT_THREADS; ++i) { _commitThread[i].join(); } _onlineNotificationThread.join(); @@ -518,8 +518,9 @@ void PostgreSQL::heartbeat() } while (_run == 1) { if(PQstatus(conn) != CONNECTION_OK) { + fprintf(stderr, "%s heartbeat thread lost connection to Database\n", _myAddressStr.c_str()); PQfinish(conn); - conn = getPgConn(); + exit(6); } if (conn) { std::string major = std::to_string(ZEROTIER_ONE_VERSION_MAJOR); @@ -1161,8 +1162,7 @@ void PostgreSQL::onlineNotificationThread() if (PQstatus(conn) != CONNECTION_OK) { fprintf(stderr, "ERROR: Online Notification thread lost connection to Postgres."); PQfinish(conn); - conn = getPgConn(); - continue; + exit(5); } // map used to send notifications to front end @@ -1326,7 +1326,6 @@ void PostgreSQL::onlineNotificationThread() } fprintf(stderr, "%s: Fell out of run loop in onlineNotificationThread", _myAddressStr.c_str()); PQfinish(conn); - exit(5); } PGconn *PostgreSQL::getPgConn(OverrideMode m) { diff --git a/controller/PostgreSQL.hpp b/controller/PostgreSQL.hpp index 6f127d5a..a20bfe99 100644 --- a/controller/PostgreSQL.hpp +++ b/controller/PostgreSQL.hpp @@ -23,6 +23,8 @@ #include "DB.hpp" +#define ZT_CENTRAL_CONTROLLER_COMMIT_THREADS 4 + extern "C" { typedef struct pg_conn PGconn; } @@ -79,7 +81,7 @@ private: std::thread _heartbeatThread; std::thread _membersDbWatcher; std::thread _networksDbWatcher; - std::thread _commitThread[ZT_CONTROLLER_RETHINKDB_COMMIT_THREADS]; + std::thread _commitThread[ZT_CENTRAL_CONTROLLER_COMMIT_THREADS]; std::thread _onlineNotificationThread; std::unordered_map< std::pair,std::pair,_PairHasher > _lastOnline; -- cgit v1.2.3