MCPcopy Create free account
hub / github.com/apple/foundationdb / overwriteProxiesCount

Method overwriteProxiesCount

fdbclient/DatabaseConfiguration.cpp:491–543  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

489}
490
491void DatabaseConfiguration::overwriteProxiesCount() {
492 Key commitProxiesKey = getKeyWithPrefix("commit_proxies");
493 Key grvProxiesKey = getKeyWithPrefix("grv_proxies");
494 Key proxiesKey = getKeyWithPrefix("proxies");
495 Optional<ValueRef> optCommitProxies = DatabaseConfiguration::get(commitProxiesKey);
496 Optional<ValueRef> optGrvProxies = DatabaseConfiguration::get(grvProxiesKey);
497 Optional<ValueRef> optProxies = DatabaseConfiguration::get(proxiesKey);
498
499 const int mutableGrvProxyCount = optGrvProxies.present() ? toInt(optGrvProxies.get()) : -1;
500 const int mutableCommitProxyCount = optCommitProxies.present() ? toInt(optCommitProxies.get()) : -1;
501 const int mutableProxiesCount = optProxies.present() ? toInt(optProxies.get()) : -1;
502
503 if (mutableProxiesCount > 1) {
504 TraceEvent(SevDebug, "OverwriteProxiesCount")
505 .detail("CPCount", commitProxyCount)
506 .detail("MutableCPCount", mutableCommitProxyCount)
507 .detail("GrvCount", grvProxyCount)
508 .detail("MutableGrvCPCount", mutableGrvProxyCount)
509 .detail("MutableProxiesCount", mutableProxiesCount);
510
511 if (mutableGrvProxyCount == -1 && mutableCommitProxyCount > 0) {
512 if (mutableProxiesCount > mutableCommitProxyCount) {
513 grvProxyCount = mutableProxiesCount - mutableCommitProxyCount;
514 } else {
515 // invalid configuration; provision min GrvProxies
516 grvProxyCount = 1;
517 commitProxyCount = mutableProxiesCount - 1;
518 }
519 } else if (mutableGrvProxyCount > 0 && mutableCommitProxyCount == -1) {
520 if (mutableProxiesCount > mutableGrvProxyCount) {
521 commitProxyCount = mutableProxiesCount - grvProxyCount;
522 } else {
523 // invalid configuration; provision min CommitProxies
524 commitProxyCount = 1;
525 grvProxyCount = mutableProxiesCount - 1;
526 }
527 } else if (mutableGrvProxyCount == -1 && mutableCommitProxyCount == -1) {
528 // Use DEFAULT_COMMIT_GRV_PROXIES_RATIO to split proxies between Grv & Commit proxies
529 const int derivedGrvProxyCount =
530 std::max(1,
531 std::min(CLIENT_KNOBS->DEFAULT_MAX_GRV_PROXIES,
532 mutableProxiesCount / (CLIENT_KNOBS->DEFAULT_COMMIT_GRV_PROXIES_RATIO + 1)));
533
534 grvProxyCount = derivedGrvProxyCount;
535 commitProxyCount = mutableProxiesCount - grvProxyCount;
536 }
537
538 TraceEvent(SevDebug, "OverwriteProxiesCountResult")
539 .detail("CommitProxyCount", commitProxyCount)
540 .detail("GrvProxyCount", grvProxyCount)
541 .detail("ProxyCount", mutableProxiesCount);
542 }
543}
544
545bool DatabaseConfiguration::setInternal(KeyRef key, ValueRef value) {
546 KeyRef ck = key.removePrefix(configKeysPrefix);

Callers

nothing calls this directly

Calls 7

getKeyWithPrefixFunction · 0.85
toIntFunction · 0.85
TraceEventClass · 0.85
detailMethod · 0.80
getFunction · 0.70
getMethod · 0.65
presentMethod · 0.45

Tested by

no test coverage detected