diff options
author | Grant Limberg <grant.limberg@zerotier.com> | 2018-12-06 13:08:31 -0800 |
---|---|---|
committer | Grant Limberg <grant.limberg@zerotier.com> | 2018-12-06 13:08:31 -0800 |
commit | 1c86f25fab57f4c2bc3f314683a911959f90b9b8 (patch) | |
tree | 5f7551df0131c1ff3b28ecf5a0f3118ddb030b1e /controller | |
parent | 5535cad773b69cb9359185deead1a3d5ec7bad8a (diff) | |
download | infinitytier-1c86f25fab57f4c2bc3f314683a911959f90b9b8.tar.gz infinitytier-1c86f25fab57f4c2bc3f314683a911959f90b9b8.zip |
update # of threads for Postgres
Diffstat (limited to 'controller')
-rw-r--r-- | controller/DB.hpp | 2 | ||||
-rw-r--r-- | controller/PostgreSQL.cpp | 11 | ||||
-rw-r--r-- | controller/PostgreSQL.hpp | 4 |
3 files changed, 8 insertions, 9 deletions
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<uint64_t,uint64_t>,std::pair<int64_t,InetAddress>,_PairHasher > _lastOnline; |