From 101b6717e354e6b2289ac8e3e0cfd56e85def7c8 Mon Sep 17 00:00:00 2001 From: Xiaoxi Wang Date: Wed, 27 Apr 2022 15:54:51 -0700 Subject: [PATCH] remove TSS storage metadata part --- fdbserver/DDTeamCollection.actor.cpp | 77 ++++++++++++---------------- fdbserver/DDTeamCollection.h | 6 +-- fdbserver/Status.actor.cpp | 19 ++++--- 3 files changed, 46 insertions(+), 56 deletions(-) diff --git a/fdbserver/DDTeamCollection.actor.cpp b/fdbserver/DDTeamCollection.actor.cpp index 3ed99066bd..d50f6f5a26 100644 --- a/fdbserver/DDTeamCollection.actor.cpp +++ b/fdbserver/DDTeamCollection.actor.cpp @@ -132,7 +132,9 @@ public: loop { choose { - when(wait(self->buildTeams())) { return Void(); } + when(wait(self->buildTeams())) { + return Void(); + } when(wait(self->restartTeamBuilder.onTrigger())) {} } } @@ -510,7 +512,9 @@ public: while (self->pauseWiggle && !self->pauseWiggle->get() && self->waitUntilRecruited.get()) { choose { when(wait(self->waitUntilRecruited.onChange() || self->pauseWiggle->onChange())) {} - when(wait(delay(SERVER_KNOBS->PERPETUAL_WIGGLE_DELAY, g_network->getCurrentTask()))) { break; } + when(wait(delay(SERVER_KNOBS->PERPETUAL_WIGGLE_DELAY, g_network->getCurrentTask()))) { + break; + } } } @@ -1324,7 +1328,7 @@ public: // Restart the storeTracker for the new interface. This will cancel the previous // keyValueStoreTypeTracker // storeTypeTracker = (isTss) ? Never() : keyValueStoreTypeTracker(self, server); - storageMetadataTracker = updateStorageMetadata(self, server, isTss); + storageMetadataTracker = self->updateStorageMetadata(server, isTss); hasWrongDC = !self->isCorrectDC(*server); hasInvalidLocality = !self->isValidLocality(self->configuration.storagePolicy, server->getLastKnownInterface().locality); @@ -1343,7 +1347,9 @@ public: .detail("ConfigStoreType", self->configuration.storageServerStoreType) .detail("WrongStoreTypeRemoved", server->wrongStoreTypeToRemove.get()); } - when(wait(server->wakeUpTracker.getFuture())) { server->wakeUpTracker = Promise(); } + when(wait(server->wakeUpTracker.getFuture())) { + server->wakeUpTracker = Promise(); + } when(wait(storageMetadataTracker)) {} when(wait(server->ssVersionTooFarBehind.onChange())) {} when(wait(self->disableFailingLaggingServers.onChange())) {} @@ -1494,20 +1500,6 @@ public: return Void(); } - ACTOR static Future keyValueStoreTypeTracker(DDTeamCollection* self, TCServerInfo* server) { - // Update server's storeType, especially when it was created - wait(server->updateStoreType()); - - if (server->getStoreType() != self->configuration.storageServerStoreType) { - if (self->wrongStoreTypeRemover.isReady()) { - self->wrongStoreTypeRemover = removeWrongStoreType(self); - self->addActor.send(self->wrongStoreTypeRemover); - } - } - - return Never(); - } - ACTOR static Future storageServerFailureTracker(DDTeamCollection* self, TCServerInfo* server, Database cx, @@ -2067,7 +2059,9 @@ public: .detail("ExtraHealthyTeamCount", extraTeamCount) .detail("HealthyTeamCount", self->healthyTeamCount); } - when(wait(pauseChanged)) { continue; } + when(wait(pauseChanged)) { + continue; + } } } } @@ -2591,7 +2585,9 @@ public: } } } - when(wait(recruitStorage->onChange())) { fCandidateWorker = Future(); } + when(wait(recruitStorage->onChange())) { + fCandidateWorker = Future(); + } when(wait(self->zeroHealthyTeams->onChange())) { if (!pendingTSSCheck && self->zeroHealthyTeams->get() && (self->isTssRecruiting || self->tss_info_by_pair.size() > 0)) { @@ -2876,18 +2872,16 @@ public: return Void(); } - ACTOR static Future updateStorageMetadata(DDTeamCollection* self, TCServerInfo* server, bool isTss) { + ACTOR static Future updateStorageMetadata(DDTeamCollection* self, TCServerInfo* server) { state KeyBackedObjectMap metadataMap( serverMetadataKeys.begin, IncludeVersion()); state Reference tr = makeReference(self->cx); // Update server's storeType, especially when it was created wait(server->updateStoreType()); - state StorageMetadataType data( - StorageMetadataType::currentTime(), - server->getStoreType(), - isTss ? !server->isCorrectStoreType(self->configuration.testingStorageServerStoreType) - : !server->isCorrectStoreType(self->configuration.storageServerStoreType)); + state StorageMetadataType data(StorageMetadataType::currentTime(), + server->getStoreType(), + !server->isCorrectStoreType(self->configuration.storageServerStoreType)); // read storage metadata loop { @@ -2907,19 +2901,18 @@ public: } } // printf("------ updated metadata %s\n", server->getId().toString().c_str()); - if (!isTss) { - // wrong store type handler - if (!server->isCorrectStoreType(self->configuration.storageServerStoreType) && - self->wrongStoreTypeRemover.isReady()) { - self->wrongStoreTypeRemover = removeWrongStoreType(self); - self->addActor.send(self->wrongStoreTypeRemover); - } - // add server to wiggler - if (self->storageWiggler->contains(server->getId())) { - self->storageWiggler->updateMetadata(server->getId(), data); - } else { - self->storageWiggler->addServer(server->getId(), data); - } + + // wrong store type handler + if (!server->isCorrectStoreType(self->configuration.storageServerStoreType) && + self->wrongStoreTypeRemover.isReady()) { + self->wrongStoreTypeRemover = removeWrongStoreType(self); + self->addActor.send(self->wrongStoreTypeRemover); + } + // add server to wiggler + if (self->storageWiggler->contains(server->getId())) { + self->storageWiggler->updateMetadata(server->getId(), data); + } else { + self->storageWiggler->addServer(server->getId(), data); } return Never(); @@ -3427,10 +3420,6 @@ Future DDTeamCollection::removeBadTeams() { return DDTeamCollectionImpl::removeBadTeams(this); } -Future DDTeamCollection::keyValueStoreTypeTracker(TCServerInfo* server) { - return DDTeamCollectionImpl::keyValueStoreTypeTracker(this, server); -} - Future DDTeamCollection::storageServerFailureTracker(TCServerInfo* server, Database cx, ServerStatus* status, @@ -3527,7 +3516,7 @@ Future DDTeamCollection::readStorageWiggleMap() { } Future DDTeamCollection::updateStorageMetadata(TCServerInfo* server, bool isTss) { - return DDTeamCollectionImpl::updateStorageMetadata(this, server, isTss); + return isTss ? Never() : DDTeamCollectionImpl::updateStorageMetadata(this, server); } void DDTeamCollection::resetLocalitySet() { diff --git a/fdbserver/DDTeamCollection.h b/fdbserver/DDTeamCollection.h index 99c04b0c2a..4d03ff0f94 100644 --- a/fdbserver/DDTeamCollection.h +++ b/fdbserver/DDTeamCollection.h @@ -432,9 +432,6 @@ class DDTeamCollection : public ReferenceCounted { bool isCorrectDC(TCServerInfo const& server) const; - // Set the server's storeType; Error is caught by the caller - Future keyValueStoreTypeTracker(TCServerInfo* server); - Future storageServerFailureTracker(TCServerInfo* server, Database cx, ServerStatus* status, @@ -486,7 +483,8 @@ class DDTeamCollection : public ReferenceCounted { }); } - // Read storage metadata from database, and do necessary updates + // Read storage metadata from database, get the server's storeType, and do necessary updates. Error is caught by the + // caller Future updateStorageMetadata(TCServerInfo* server, bool isTss); Future serverGetTeamRequests(TeamCollectionInterface tci); diff --git a/fdbserver/Status.actor.cpp b/fdbserver/Status.actor.cpp index 8e0f825376..32ff6b798a 100644 --- a/fdbserver/Status.actor.cpp +++ b/fdbserver/Status.actor.cpp @@ -584,13 +584,16 @@ struct RolesInfo { } } - TraceEventFields const& metadata = metrics.at("Metadata"); - JsonBuilderObject metadataObj; - metadataObj["created_time_datetime"] = metadata.getValue("CreatedTimeDatetime"); - metadataObj["created_time_timestamp"] = metadata.getDouble("CreatedTimeTimestamp"); - metadataObj["storage_engine"] = metadata.getValue("StoreType"); - obj["storage_metadata"] = metadataObj; - // printf("%s\n", metadataObj.getJson().c_str()); + if (!iface.isTss()) { // only storage server has Metadata field + TraceEventFields const& metadata = metrics.at("Metadata"); + JsonBuilderObject metadataObj; + metadataObj["created_time_datetime"] = metadata.getValue("CreatedTimeDatetime"); + metadataObj["created_time_timestamp"] = metadata.getDouble("CreatedTimeTimestamp"); + metadataObj["storage_engine"] = metadata.getValue("StoreType"); + obj["storage_metadata"] = metadataObj; + // printf("%s\n", metadataObj.getJson().c_str()); + } + } catch (Error& e) { if (e.code() != error_code_attribute_not_found) throw e; @@ -1974,7 +1977,7 @@ ACTOR static Future>> ge metadataField.addField("CreatedTimeDatetime", epochsToGMTString(metadata[i].get().createdTime)); metadataField.addField("StoreType", metadata[i].get().storeType.toString()); results[i].second.emplace("Metadata", metadataField); - } else { + } else if (!servers[i].isTss()) { TraceEventFields metadataField; metadataField.addField("CreatedTimeTimestamp", "0"); metadataField.addField("CreatedTimeDatetime", "[removed]");