mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2024-12-19 04:57:53 +00:00
use connection pool instead of new connection for member status writes
redis plus plus has an annoying feature where it will open a new connection for each tx or pipeline by default, rather than just fetching an existing connection from the pool. Let's change that
This commit is contained in:
parent
6fdc7be502
commit
b5d7d71e1e
@ -710,11 +710,11 @@ void PostgreSQL::initializeNetworks()
|
||||
if (_redisMemberStatus) {
|
||||
fprintf(stderr, "adding networks to redis...\n");
|
||||
if (_rc->clusterMode) {
|
||||
auto tx = _cluster->transaction(_myAddressStr, true);
|
||||
auto tx = _cluster->transaction(_myAddressStr, true, false);
|
||||
tx.sadd(setKey, networkSet.begin(), networkSet.end());
|
||||
tx.exec();
|
||||
} else {
|
||||
auto tx = _redis->transaction(true);
|
||||
auto tx = _redis->transaction(true, false);
|
||||
tx.sadd(setKey, networkSet.begin(), networkSet.end());
|
||||
tx.exec();
|
||||
}
|
||||
@ -766,13 +766,13 @@ void PostgreSQL::initializeMembers()
|
||||
if (!deletes.empty()) {
|
||||
try {
|
||||
if (_rc->clusterMode) {
|
||||
auto tx = _cluster->transaction(_myAddressStr, true);
|
||||
auto tx = _cluster->transaction(_myAddressStr, true, false);
|
||||
for (std::string k : deletes) {
|
||||
tx.del(k);
|
||||
}
|
||||
tx.exec();
|
||||
} else {
|
||||
auto tx = _redis->transaction(true);
|
||||
auto tx = _redis->transaction(true, false);
|
||||
for (std::string k : deletes) {
|
||||
tx.del(k);
|
||||
}
|
||||
@ -926,13 +926,13 @@ void PostgreSQL::initializeMembers()
|
||||
if (_redisMemberStatus) {
|
||||
fprintf(stderr, "Load member data into redis...\n");
|
||||
if (_rc->clusterMode) {
|
||||
auto tx = _cluster->transaction(_myAddressStr, true);
|
||||
auto tx = _cluster->transaction(_myAddressStr, true, false);
|
||||
for (auto it : networkMembers) {
|
||||
tx.sadd(it.first, it.second);
|
||||
}
|
||||
tx.exec();
|
||||
} else {
|
||||
auto tx = _redis->transaction(true);
|
||||
auto tx = _redis->transaction(true, false);
|
||||
for (auto it : networkMembers) {
|
||||
tx.sadd(it.first, it.second);
|
||||
}
|
||||
@ -1696,10 +1696,10 @@ void PostgreSQL::onlineNotification_Redis()
|
||||
try {
|
||||
if (!lastOnline.empty()) {
|
||||
if (_rc->clusterMode) {
|
||||
auto tx = _cluster->transaction(controllerId, true);
|
||||
auto tx = _cluster->transaction(controllerId, true, false);
|
||||
count = _doRedisUpdate(tx, controllerId, lastOnline);
|
||||
} else {
|
||||
auto tx = _redis->transaction(true);
|
||||
auto tx = _redis->transaction(true, false);
|
||||
count = _doRedisUpdate(tx, controllerId, lastOnline);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user