From df6b676ccba46a7a70bb28e39298a2befedcacdf Mon Sep 17 00:00:00 2001 From: Young Liu Date: Fri, 24 Jul 2020 00:49:16 -0700 Subject: [PATCH] Fix status bug and backup minKnownCommittedVersion bug --- fdbserver/GrvProxyServer.actor.cpp | 2 +- fdbserver/MasterProxyServer.actor.cpp | 6 +++--- fdbserver/Status.actor.cpp | 2 +- fdbserver/workloads/ConfigureDatabase.actor.cpp | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/fdbserver/GrvProxyServer.actor.cpp b/fdbserver/GrvProxyServer.actor.cpp index cd074e9a1c..5a31c95ef5 100644 --- a/fdbserver/GrvProxyServer.actor.cpp +++ b/fdbserver/GrvProxyServer.actor.cpp @@ -60,7 +60,7 @@ struct GrvProxyStats { txnDefaultPriorityStartOut("TxnDefaultPriorityStartOut", cc), txnThrottled("TxnThrottled", cc), grvLatencySample("GRVLatencyMetrics", id, SERVER_KNOBS->LATENCY_METRICS_LOGGING_INTERVAL, SERVER_KNOBS->LATENCY_SAMPLE_SIZE), - grvLatencyBands("GRVLatencyMetrics", id, SERVER_KNOBS->STORAGE_LOGGING_DELAY) { + grvLatencyBands("GRVLatencyBands", id, SERVER_KNOBS->STORAGE_LOGGING_DELAY) { logger = traceCounters("GrvProxyMetrics", id, SERVER_KNOBS->WORKER_LOGGING_INTERVAL, &cc, "GrvProxyMetrics"); for(int i = 0; i < FLOW_KNOBS->BASIC_LOAD_BALANCE_BUCKETS; i++) { requestBuckets.push_back(0); diff --git a/fdbserver/MasterProxyServer.actor.cpp b/fdbserver/MasterProxyServer.actor.cpp index d55fa2c6ff..ac1e301318 100644 --- a/fdbserver/MasterProxyServer.actor.cpp +++ b/fdbserver/MasterProxyServer.actor.cpp @@ -149,8 +149,8 @@ struct ProxyStats { lastCommitVersionAssigned(0), commitLatencySample("CommitLatencyMetrics", id, SERVER_KNOBS->LATENCY_METRICS_LOGGING_INTERVAL, SERVER_KNOBS->LATENCY_SAMPLE_SIZE), grvLatencySample("GRVLatencyMetrics", id, SERVER_KNOBS->LATENCY_METRICS_LOGGING_INTERVAL, SERVER_KNOBS->LATENCY_SAMPLE_SIZE), - commitLatencyBands("CommitLatencyMetrics", id, SERVER_KNOBS->STORAGE_LOGGING_DELAY), - grvLatencyBands("GRVLatencyMetrics", id, SERVER_KNOBS->STORAGE_LOGGING_DELAY) { + commitLatencyBands("CommitLatencyBands", id, SERVER_KNOBS->STORAGE_LOGGING_DELAY), + grvLatencyBands("GRVLatencyBands", id, SERVER_KNOBS->STORAGE_LOGGING_DELAY) { specialCounter(cc, "LastAssignedCommitVersion", [this](){return this->lastCommitVersionAssigned;}); specialCounter(cc, "Version", [pVersion](){return *pVersion; }); specialCounter(cc, "CommittedVersion", [pCommittedVersion](){ return pCommittedVersion->get(); }); @@ -1323,7 +1323,7 @@ ACTOR Future commitBatch( // by reporting commit version first before updating self->committedVersion. Otherwise, a client may get a commit // version that the master is not aware of, and next GRV request may get a version less than self->committedVersion. TEST(self->committedVersion.get() > commitVersion); // A later version was reported committed first - if (SERVER_KNOBS->ASK_READ_VERSION_FROM_MASTER && commitVersion > self->committedVersion.get()) { + if (SERVER_KNOBS->ASK_READ_VERSION_FROM_MASTER) { wait(self->master.reportLiveCommittedVersion.getReply(ReportRawCommittedVersionRequest(commitVersion, lockedAfter, metadataVersionAfter, self->minKnownCommittedVersion), TaskPriority::ProxyMasterVersionReply)); } if( commitVersion > self->committedVersion.get() ) { diff --git a/fdbserver/Status.actor.cpp b/fdbserver/Status.actor.cpp index 094b073a62..d9c8d6249d 100644 --- a/fdbserver/Status.actor.cpp +++ b/fdbserver/Status.actor.cpp @@ -1628,7 +1628,7 @@ ACTOR static Future>> getProxie ACTOR static Future>> getGrvProxiesAndMetrics(Reference> db, std::unordered_map address_workers) { vector> results = wait(getServerMetrics( - db->get().client.grvProxies, address_workers, std::vector{ "GRVLatencyMetrics", "GrvLatencyBands" })); + db->get().client.grvProxies, address_workers, std::vector{ "GRVLatencyMetrics", "GRVLatencyBands" })); return results; } diff --git a/fdbserver/workloads/ConfigureDatabase.actor.cpp b/fdbserver/workloads/ConfigureDatabase.actor.cpp index 4349e09619..edde0de04e 100644 --- a/fdbserver/workloads/ConfigureDatabase.actor.cpp +++ b/fdbserver/workloads/ConfigureDatabase.actor.cpp @@ -261,9 +261,9 @@ struct ConfigureDatabaseWorkload : TestWorkload { return Void(); } - static int randomRoleNumber() { + static int randomRoleNumber(int requiredNum = 1) { int i = deterministicRandom()->randomInt(0,4); - return i ? i : -1; + return i >= requiredNum ? i : -1; } ACTOR Future singleDB( ConfigureDatabaseWorkload *self, Database cx ) { @@ -302,7 +302,7 @@ struct ConfigureDatabaseWorkload : TestWorkload { config += generateRegions(); if (deterministicRandom()->random01() < 0.5) config += " logs=" + format("%d", randomRoleNumber()); - if (deterministicRandom()->random01() < 0.5) config += " proxies=" + format("%d", randomRoleNumber()); + if (deterministicRandom()->random01() < 0.5) config += " proxies=" + format("%d", randomRoleNumber(2)); if (deterministicRandom()->random01() < 0.5) config += " resolvers=" + format("%d", randomRoleNumber()); wait(success( IssueConfigurationChange( cx, config, false ) ));