mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-01-30 08:04:04 +00:00
Controller performance tweaks.
This commit is contained in:
parent
37629aaf87
commit
8f592ff6e8
@ -53,7 +53,7 @@ using json = nlohmann::json;
|
||||
#define ZT_NETCONF_CONTROLLER_API_VERSION 3
|
||||
|
||||
// Number of requests to remember in member history
|
||||
#define ZT_NETCONF_DB_MEMBER_HISTORY_LENGTH 24
|
||||
#define ZT_NETCONF_DB_MEMBER_HISTORY_LENGTH 2
|
||||
|
||||
// Min duration between requests for an address/nwid combo to prevent floods
|
||||
#define ZT_NETCONF_MIN_REQUEST_PERIOD 1000
|
||||
@ -62,7 +62,7 @@ using json = nlohmann::json;
|
||||
#define ZT_NETCONF_NODE_ACTIVE_THRESHOLD (ZT_NETWORK_AUTOCONF_DELAY * 2)
|
||||
|
||||
// Timeout for disk read cache (ms)
|
||||
#define ZT_NETCONF_DB_CACHE_TTL 5000
|
||||
#define ZT_NETCONF_DB_CACHE_TTL 60000
|
||||
|
||||
namespace ZeroTier {
|
||||
|
||||
@ -503,7 +503,7 @@ unsigned int EmbeddedNetworkController::handleControlPlaneHttpGET(
|
||||
json network;
|
||||
{
|
||||
Mutex::Lock _l(_db_m);
|
||||
network = _db.get("network",nwids,0);
|
||||
network = _db.get("network",nwids,ZT_NETCONF_DB_CACHE_TTL);
|
||||
}
|
||||
if (!network.size())
|
||||
return 404;
|
||||
@ -518,7 +518,7 @@ unsigned int EmbeddedNetworkController::handleControlPlaneHttpGET(
|
||||
json member;
|
||||
{
|
||||
Mutex::Lock _l(_db_m);
|
||||
member = _db.get("network",nwids,"member",Address(address).toString(),0);
|
||||
member = _db.get("network",nwids,"member",Address(address).toString(),ZT_NETCONF_DB_CACHE_TTL);
|
||||
}
|
||||
if (!member.size())
|
||||
return 404;
|
||||
@ -534,7 +534,7 @@ unsigned int EmbeddedNetworkController::handleControlPlaneHttpGET(
|
||||
|
||||
responseBody = "{";
|
||||
std::string pfx(std::string("network/") + nwids + "member/");
|
||||
_db.filter(pfx,120000,[&responseBody](const std::string &n,const json &member) {
|
||||
_db.filter(pfx,ZT_NETCONF_DB_CACHE_TTL,[&responseBody](const std::string &n,const json &member) {
|
||||
if (member.size() > 0) {
|
||||
responseBody.append((responseBody.length() == 1) ? "\"" : ",\"");
|
||||
responseBody.append(OSUtils::jsonString(member["id"],""));
|
||||
@ -642,7 +642,7 @@ unsigned int EmbeddedNetworkController::handleControlPlaneHttpPOST(
|
||||
json member;
|
||||
{
|
||||
Mutex::Lock _l(_db_m);
|
||||
member = _db.get("network",nwids,"member",Address(address).toString(),0);
|
||||
member = _db.get("network",nwids,"member",Address(address).toString(),ZT_NETCONF_DB_CACHE_TTL);
|
||||
}
|
||||
json origMember(member); // for detecting changes
|
||||
_initMember(member);
|
||||
@ -825,7 +825,7 @@ unsigned int EmbeddedNetworkController::handleControlPlaneHttpPOST(
|
||||
uint64_t tryNwid = nwidPrefix | (nwidPostfix & 0xffffffULL);
|
||||
if ((tryNwid & 0xffffffULL) == 0ULL) tryNwid |= 1ULL;
|
||||
Utils::snprintf(nwids,sizeof(nwids),"%.16llx",(unsigned long long)tryNwid);
|
||||
if (_db.get("network",nwids,120000).size() <= 0) {
|
||||
if (_db.get("network",nwids,ZT_NETCONF_DB_CACHE_TTL).size() <= 0) {
|
||||
nwid = tryNwid;
|
||||
break;
|
||||
}
|
||||
@ -834,7 +834,7 @@ unsigned int EmbeddedNetworkController::handleControlPlaneHttpPOST(
|
||||
return 503;
|
||||
}
|
||||
|
||||
network = _db.get("network",nwids,0);
|
||||
network = _db.get("network",nwids,ZT_NETCONF_DB_CACHE_TTL);
|
||||
}
|
||||
json origNetwork(network); // for detecting changes
|
||||
_initNetwork(network);
|
||||
@ -1096,7 +1096,7 @@ unsigned int EmbeddedNetworkController::handleControlPlaneHttpDELETE(
|
||||
json network;
|
||||
{
|
||||
Mutex::Lock _l(_db_m);
|
||||
network = _db.get("network",nwids,0);
|
||||
network = _db.get("network",nwids,ZT_NETCONF_DB_CACHE_TTL);
|
||||
}
|
||||
if (!network.size())
|
||||
return 404;
|
||||
@ -1107,7 +1107,7 @@ unsigned int EmbeddedNetworkController::handleControlPlaneHttpDELETE(
|
||||
|
||||
Mutex::Lock _l(_db_m);
|
||||
|
||||
json member = _db.get("network",nwids,"member",Address(address).toString(),0);
|
||||
json member = _db.get("network",nwids,"member",Address(address).toString(),ZT_NETCONF_DB_CACHE_TTL);
|
||||
_db.erase("network",nwids,"member",Address(address).toString());
|
||||
|
||||
if (!member.size())
|
||||
|
@ -44,7 +44,7 @@
|
||||
#include "JSONDB.hpp"
|
||||
|
||||
// Number of background threads to start -- not actually started until needed
|
||||
#define ZT_EMBEDDEDNETWORKCONTROLLER_BACKGROUND_THREAD_COUNT 2
|
||||
#define ZT_EMBEDDEDNETWORKCONTROLLER_BACKGROUND_THREAD_COUNT 4
|
||||
|
||||
// TTL for circuit tests
|
||||
#define ZT_EMBEDDEDNETWORKCONTROLLER_CIRCUIT_TEST_EXPIRATION 120000
|
||||
|
Loading…
x
Reference in New Issue
Block a user