mirror of
https://github.com/apple/foundationdb.git
synced 2025-06-02 11:15:50 +08:00
Encapsulate TCServerInfo::inDesiredDC
This commit is contained in:
parent
6ac22756a0
commit
711462dfd7
@ -355,7 +355,7 @@ public:
|
|||||||
for (; idx < self->badTeams.size(); idx++) {
|
for (; idx < self->badTeams.size(); idx++) {
|
||||||
servers.clear();
|
servers.clear();
|
||||||
for (const auto& server : self->badTeams[idx]->getServers()) {
|
for (const auto& server : self->badTeams[idx]->getServers()) {
|
||||||
if (server->inDesiredDC && !self->server_status.get(server->getId()).isUnhealthy()) {
|
if (server->isInDesiredDC() && !self->server_status.get(server->getId()).isUnhealthy()) {
|
||||||
servers.push_back(server);
|
servers.push_back(server);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1259,11 +1259,7 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
server->inDesiredDC =
|
server->updateInDesiredDC(self->includedDCs);
|
||||||
(self->includedDCs.empty() ||
|
|
||||||
std::find(self->includedDCs.begin(),
|
|
||||||
self->includedDCs.end(),
|
|
||||||
server->lastKnownInterface.locality.dcId()) != self->includedDCs.end());
|
|
||||||
self->resetLocalitySet();
|
self->resetLocalitySet();
|
||||||
|
|
||||||
bool addedNewBadTeam = false;
|
bool addedNewBadTeam = false;
|
||||||
@ -3249,7 +3245,7 @@ void DDTeamCollection::traceServerInfo() const {
|
|||||||
.detail("ServerTeamOwned", server.second->teams.size())
|
.detail("ServerTeamOwned", server.second->teams.size())
|
||||||
.detail("MachineID", server.second->machine->machineID.contents().toString())
|
.detail("MachineID", server.second->machine->machineID.contents().toString())
|
||||||
.detail("StoreType", server.second->storeType.toString())
|
.detail("StoreType", server.second->storeType.toString())
|
||||||
.detail("InDesiredDC", server.second->inDesiredDC);
|
.detail("InDesiredDC", server.second->isInDesiredDC());
|
||||||
}
|
}
|
||||||
for (auto& server : server_info) {
|
for (auto& server : server_info) {
|
||||||
const UID& uid = server.first;
|
const UID& uid = server.first;
|
||||||
|
@ -150,6 +150,12 @@ Future<Void> TCServerInfo::serverMetricsPolling() {
|
|||||||
return TCServerInfoImpl::serverMetricsPolling(this);
|
return TCServerInfoImpl::serverMetricsPolling(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TCServerInfo::updateInDesiredDC(std::vector<Optional<Key>> const& includedDCs) {
|
||||||
|
inDesiredDC =
|
||||||
|
(includedDCs.empty() ||
|
||||||
|
std::find(includedDCs.begin(), includedDCs.end(), lastKnownInterface.locality.dcId()) != includedDCs.end());
|
||||||
|
}
|
||||||
|
|
||||||
TCServerInfo::~TCServerInfo() {
|
TCServerInfo::~TCServerInfo() {
|
||||||
if (collection && ssVersionTooFarBehind.get() && !lastKnownInterface.isTss()) {
|
if (collection && ssVersionTooFarBehind.get() && !lastKnownInterface.isTss()) {
|
||||||
collection->removeLaggingStorageServer(lastKnownInterface.locality.zoneId().get());
|
collection->removeLaggingStorageServer(lastKnownInterface.locality.zoneId().get());
|
||||||
|
@ -29,6 +29,7 @@ class TCMachineTeamInfo;
|
|||||||
class TCServerInfo : public ReferenceCounted<TCServerInfo> {
|
class TCServerInfo : public ReferenceCounted<TCServerInfo> {
|
||||||
friend class TCServerInfoImpl;
|
friend class TCServerInfoImpl;
|
||||||
UID id;
|
UID id;
|
||||||
|
bool inDesiredDC;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Version addedVersion; // Read version when this Server is added
|
Version addedVersion; // Read version when this Server is added
|
||||||
@ -47,7 +48,6 @@ public:
|
|||||||
Future<Void> onTSSPairRemoved;
|
Future<Void> onTSSPairRemoved;
|
||||||
Promise<Void> killTss;
|
Promise<Void> killTss;
|
||||||
Promise<Void> wakeUpTracker;
|
Promise<Void> wakeUpTracker;
|
||||||
bool inDesiredDC;
|
|
||||||
LocalityEntry localityEntry;
|
LocalityEntry localityEntry;
|
||||||
Promise<Void> updated;
|
Promise<Void> updated;
|
||||||
AsyncVar<bool> wrongStoreTypeToRemove;
|
AsyncVar<bool> wrongStoreTypeToRemove;
|
||||||
@ -65,6 +65,10 @@ public:
|
|||||||
|
|
||||||
UID const& getId() const { return id; }
|
UID const& getId() const { return id; }
|
||||||
|
|
||||||
|
bool isInDesiredDC() const { return inDesiredDC; }
|
||||||
|
|
||||||
|
void updateInDesiredDC(std::vector<Optional<Key>> const& includedDCs);
|
||||||
|
|
||||||
bool isCorrectStoreType(KeyValueStoreType configStoreType) const {
|
bool isCorrectStoreType(KeyValueStoreType configStoreType) const {
|
||||||
// A new storage server's store type may not be set immediately.
|
// A new storage server's store type may not be set immediately.
|
||||||
// If a storage server does not reply its storeType, it will be tracked by failure monitor and removed.
|
// If a storage server does not reply its storeType, it will be tracked by failure monitor and removed.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user