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

Function keyServersValue

fdbclient/SystemData.cpp:60–97  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

58 return k.withPrefix(keyServersPrefix, arena);
59}
60const Value keyServersValue(RangeResult result, const std::vector<UID>& src, const std::vector<UID>& dest) {
61 if (!CLIENT_KNOBS->TAG_ENCODE_KEY_SERVERS) {
62 BinaryWriter wr(IncludeVersion(ProtocolVersion::withKeyServerValue()));
63 wr << src << dest;
64 return wr.toValue();
65 }
66
67 std::vector<Tag> srcTag;
68 std::vector<Tag> destTag;
69
70 bool foundOldLocality = false;
71 for (const KeyValueRef& kv : result) {
72 UID uid = decodeServerTagKey(kv.key);
73 if (std::find(src.begin(), src.end(), uid) != src.end()) {
74 srcTag.push_back(decodeServerTagValue(kv.value));
75 if (srcTag.back().locality == tagLocalityUpgraded) {
76 foundOldLocality = true;
77 break;
78 }
79 }
80 if (std::find(dest.begin(), dest.end(), uid) != dest.end()) {
81 destTag.push_back(decodeServerTagValue(kv.value));
82 if (destTag.back().locality == tagLocalityUpgraded) {
83 foundOldLocality = true;
84 break;
85 }
86 }
87 }
88
89 if (foundOldLocality || src.size() != srcTag.size() || dest.size() != destTag.size()) {
90 ASSERT_WE_THINK(foundOldLocality);
91 BinaryWriter wr(IncludeVersion(ProtocolVersion::withKeyServerValue()));
92 wr << src << dest;
93 return wr.toValue();
94 }
95
96 return keyServersValue(srcTag, destTag);
97}
98
99const Value keyServersValue(const std::vector<UID>& src,
100 const std::vector<UID>& dest,

Callers 9

finishMoveShardsFunction · 0.85
MoveKeys.actor.cppFile · 0.85
seedShardServersFunction · 0.85
SystemData.cppFile · 0.85

Calls 12

IncludeVersionFunction · 0.85
decodeServerTagKeyFunction · 0.85
findFunction · 0.85
decodeServerTagValueFunction · 0.85
toValueMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
push_backMethod · 0.45
backMethod · 0.45
sizeMethod · 0.45
emptyMethod · 0.45
isValidMethod · 0.45

Tested by

no test coverage detected