Fix status bug and backup minKnownCommittedVersion bug

This commit is contained in:
Young Liu 2020-07-24 00:49:16 -07:00
parent 0fc681cc3c
commit df6b676ccb
4 changed files with 8 additions and 8 deletions

View File

@ -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);

View File

@ -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<Void> 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() ) {

View File

@ -1628,7 +1628,7 @@ ACTOR static Future<vector<std::pair<MasterProxyInterface, EventMap>>> getProxie
ACTOR static Future<vector<std::pair<GrvProxyInterface, EventMap>>> getGrvProxiesAndMetrics(Reference<AsyncVar<ServerDBInfo>> db, std::unordered_map<NetworkAddress, WorkerInterface> address_workers) {
vector<std::pair<GrvProxyInterface, EventMap>> results = wait(getServerMetrics(
db->get().client.grvProxies, address_workers, std::vector<std::string>{ "GRVLatencyMetrics", "GrvLatencyBands" }));
db->get().client.grvProxies, address_workers, std::vector<std::string>{ "GRVLatencyMetrics", "GRVLatencyBands" }));
return results;
}

View File

@ -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<Void> 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 ) ));