summaryrefslogtreecommitdiff
path: root/controller/RethinkDB.cpp
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2017-11-08 11:32:01 -0800
committerAdam Ierymenko <adam.ierymenko@gmail.com>2017-11-08 11:32:01 -0800
commitc12b68a6b2f8597e374a4c1386c2b95f4291932e (patch)
treee1d50ae52b23f4e751caa5cd276ca7782607e6fa /controller/RethinkDB.cpp
parent4166d8ca35ded34180d60b56105a853dd6b02ff4 (diff)
downloadinfinitytier-c12b68a6b2f8597e374a4c1386c2b95f4291932e.tar.gz
infinitytier-c12b68a6b2f8597e374a4c1386c2b95f4291932e.zip
More Central work.
Diffstat (limited to 'controller/RethinkDB.cpp')
-rw-r--r--controller/RethinkDB.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/controller/RethinkDB.cpp b/controller/RethinkDB.cpp
index 031bd516..2da55177 100644
--- a/controller/RethinkDB.cpp
+++ b/controller/RethinkDB.cpp
@@ -227,18 +227,18 @@ RethinkDB::RethinkDB(EmbeddedNetworkController *const nc,const Address &myAddres
R::Array batch;
R::Object tmpobj;
for(auto i=_lastOnline.begin();i!=_lastOnline.end();++i) {
- char nodeId[16];
- Utils::hex10(i->first,nodeId);
- tmpobj["id"] = nodeId;
+ char tmp[64];
+ OSUtils::ztsnprintf(tmp,sizeof(tmp),"%.16llx-%.10llx",i->first.first,i->first.second);
+ tmpobj["id"] = tmp;
tmpobj["ts"] = i->second;
batch.emplace_back(tmpobj);
if (batch.size() >= 256) {
- R::db(this->_db).table("NodeLastOnline").insert(R::args(batch),R::optargs("conflict","update")).run(*rdb);
+ R::db(this->_db).table("MemberLastRequest",R::optargs("read_mode","outdated")).insert(R::args(batch),R::optargs("conflict","update")).run(*rdb);
batch.clear();
}
}
if (batch.size() > 0)
- R::db(this->_db).table("NodeLastOnline").insert(R::args(batch),R::optargs("conflict","update")).run(*rdb);
+ R::db(this->_db).table("MemberLastRequest",R::optargs("read_mode","outdated")).insert(R::args(batch),R::optargs("conflict","update")).run(*rdb);
_lastOnline.clear();
}
} catch (std::exception &e) {
@@ -357,10 +357,10 @@ void RethinkDB::eraseMember(const uint64_t networkId,const uint64_t memberId)
_commitQueue.post(tmp);
}
-void RethinkDB::nodeIsOnline(const uint64_t memberId)
+void RethinkDB::nodeIsOnline(const uint64_t networkId,const uint64_t memberId)
{
std::lock_guard<std::mutex> l(_lastOnline_l);
- _lastOnline[memberId] = OSUtils::now();
+ _lastOnline[std::pair<uint64_t,uint64_t>(networkId,memberId)] = OSUtils::now();
}
} // namespace ZeroTier