Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 36 additions & 11 deletions fdbrpc/FlowTransport.actor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -365,7 +365,10 @@ ACTOR Future<Void> pingLatencyLogger(TransportData* self) {
lastAddress = *it;
auto peer = self->getPeer(lastAddress);
if (!peer) {
TraceEvent(SevWarnAlways, "MissingNetworkAddress").suppressFor(10.0).detail("PeerAddr", lastAddress);
TraceEvent(SevWarnAlways, "MissingNetworkAddress")
.suppressFor(10.0)
.detail("PeerAddr", lastAddress)
.detail("PeerAddress", lastAddress);
}
if (peer->lastLoggedTime <= 0.0) {
peer->lastLoggedTime = peer->lastConnectTime;
Expand All @@ -376,6 +379,7 @@ ACTOR Future<Void> pingLatencyLogger(TransportData* self) {
TraceEvent("PingLatency")
.detail("Elapsed", now() - peer->lastLoggedTime)
.detail("PeerAddr", lastAddress)
.detail("PeerAddress", lastAddress)
.detail("MinLatency", peer->pingLatencies.min())
.detail("MaxLatency", peer->pingLatencies.max())
.detail("MeanLatency", peer->pingLatencies.mean())
Expand Down Expand Up @@ -649,6 +653,7 @@ ACTOR Future<Void> connectionKeeper(Reference<Peer> self,
Future<Void> reader = Void()) {
TraceEvent(SevDebug, "ConnectionKeeper", conn ? conn->getDebugID() : UID())
.detail("PeerAddr", self->destination)
.detail("PeerAddress", self->destination)
.detail("ConnSet", (bool)conn);
ASSERT_WE_THINK(FlowTransport::transport().getLocalAddress() != self->destination);

Expand Down Expand Up @@ -691,6 +696,7 @@ ACTOR Future<Void> connectionKeeper(Reference<Peer> self,
TraceEvent("ConnectingTo", conn ? conn->getDebugID() : UID())
.suppressFor(1.0)
.detail("PeerAddr", self->destination)
.detail("PeerAddress", self->destination)
.detail("PeerReferences", self->peerReferences)
.detail("FailureStatus",
IFailureMonitor::failureMonitor().getState(self->destination).isAvailable() ? "OK"
Expand Down Expand Up @@ -722,7 +728,8 @@ ACTOR Future<Void> connectionKeeper(Reference<Peer> self,

TraceEvent("ConnectionExchangingConnectPacket", conn->getDebugID())
.suppressFor(1.0)
.detail("PeerAddr", self->destination);
.detail("PeerAddr", self->destination)
.detail("PeerAddress", self->destination);
self->prependConnectPacket();
reader = connectionReader(self->transport, conn, self, Promise<Reference<Peer>>());
}
Expand All @@ -737,7 +744,8 @@ ACTOR Future<Void> connectionKeeper(Reference<Peer> self,
}
TraceEvent("ConnectionTimedOut", conn ? conn->getDebugID() : UID())
.suppressFor(1.0)
.detail("PeerAddr", self->destination);
.detail("PeerAddr", self->destination)
.detail("PeerAddress", self->destination);

throw;
}
Expand All @@ -756,7 +764,8 @@ ACTOR Future<Void> connectionKeeper(Reference<Peer> self,
self->resetConnection.onTrigger());
TraceEvent("ConnectionReset", conn ? conn->getDebugID() : UID())
.suppressFor(1.0)
.detail("PeerAddr", self->destination);
.detail("PeerAddr", self->destination)
.detail("PeerAddress", self->destination);
throw connection_failed();
} catch (Error& e) {
if (e.code() == error_code_connection_failed || e.code() == error_code_actor_cancelled ||
Expand All @@ -782,7 +791,8 @@ ACTOR Future<Void> connectionKeeper(Reference<Peer> self,
if (now() - firstConnFailedTime.get() > FLOW_KNOBS->PEER_UNAVAILABLE_FOR_LONG_TIME_TIMEOUT) {
TraceEvent(SevWarnAlways, "PeerUnavailableForLongTime", conn ? conn->getDebugID() : UID())
.suppressFor(1.0)
.detail("PeerAddr", self->destination);
.detail("PeerAddr", self->destination)
.detail("PeerAddress", self->destination);
firstConnFailedTime = now() - FLOW_KNOBS->PEER_UNAVAILABLE_FOR_LONG_TIME_TIMEOUT / 2.0;
}
} else {
Expand Down Expand Up @@ -811,13 +821,15 @@ ACTOR Future<Void> connectionKeeper(Reference<Peer> self,
TraceEvent(ok ? SevInfo : SevWarnAlways, "ConnectionClosed", conn ? conn->getDebugID() : UID())
.errorUnsuppressed(e)
.suppressFor(1.0)
.detail("PeerAddr", self->destination);
.detail("PeerAddr", self->destination)
.detail("PeerAddress", self->destination);
} else {
TraceEvent(
ok ? SevInfo : SevWarnAlways, "IncompatibleConnectionClosed", conn ? conn->getDebugID() : UID())
.errorUnsuppressed(e)
.suppressFor(1.0)
.detail("PeerAddr", self->destination);
.detail("PeerAddr", self->destination)
.detail("PeerAddress", self->destination);

// Since the connection has closed, we need to check the protocol version the next time we connect
self->compatible = true;
Expand All @@ -832,7 +844,8 @@ ACTOR Future<Void> connectionKeeper(Reference<Peer> self,
} else if (now() - it.first > FLOW_KNOBS->TOO_MANY_CONNECTIONS_CLOSED_TIMEOUT) {
TraceEvent(SevWarnAlways, "TooManyConnectionsClosed", conn ? conn->getDebugID() : UID())
.suppressFor(5.0)
.detail("PeerAddr", self->destination);
.detail("PeerAddr", self->destination)
.detail("PeerAddress", self->destination);
self->transport->degraded->set(true);
}
it.second = now();
Expand Down Expand Up @@ -877,7 +890,11 @@ ACTOR Future<Void> connectionKeeper(Reference<Peer> self,

if (self->peerReferences <= 0 && self->reliable.empty() && self->unsent.empty() &&
self->outstandingReplies == 0) {
TraceEvent("PeerDestroy").errorUnsuppressed(e).suppressFor(1.0).detail("PeerAddr", self->destination);
TraceEvent("PeerDestroy")
.errorUnsuppressed(e)
.suppressFor(1.0)
.detail("PeerAddr", self->destination)
.detail("PeerAddress", self->destination);
self->connect.cancel();
self->transport->peers.erase(self->destination);
self->transport->orderedAddresses.erase(self->destination);
Expand Down Expand Up @@ -1063,7 +1080,8 @@ ACTOR static void deliver(TransportData* self,
TraceEvent(SevError, "ReceiverError")
.error(e)
.detail("Token", destination.token.toString())
.detail("Peer", destination.getPrimaryAddress());
.detail("Peer", destination.getPrimaryAddress())
.detail("PeerAddress", destination.getPrimaryAddress());
if (!FlowTransport::isClient()) {
flushAndExit(FDB_EXIT_ERROR);
}
Expand Down Expand Up @@ -1360,6 +1378,10 @@ ACTOR static Future<Void> connectionReader(TransportData* transport,
pkt.canonicalRemotePort
? NetworkAddress(pkt.canonicalRemoteIp(), pkt.canonicalRemotePort)
: conn->getPeerAddress())
.detail("PeerAddress",
pkt.canonicalRemotePort
? NetworkAddress(pkt.canonicalRemoteIp(), pkt.canonicalRemotePort)
: conn->getPeerAddress())
.detail("ConnectionId", connectionId);
transport->lastIncompatibleMessage = now();
}
Expand All @@ -1385,6 +1407,7 @@ ACTOR static Future<Void> connectionReader(TransportData* transport,
TraceEvent("ConnectionEstablished", conn->getDebugID())
.suppressFor(1.0)
.detail("Peer", conn->getPeerAddress())
.detail("PeerAddress", conn->getPeerAddress())
.detail("ConnectionId", connectionId);
}

Expand All @@ -1400,7 +1423,9 @@ ACTOR static Future<Void> connectionReader(TransportData* transport,
// Outgoing connection; port information should be what we expect
TraceEvent("ConnectedOutgoing")
.suppressFor(1.0)
.detail("PeerAddr", NetworkAddress(pkt.canonicalRemoteIp(), pkt.canonicalRemotePort));
.detail("PeerAddr", NetworkAddress(pkt.canonicalRemoteIp(), pkt.canonicalRemotePort))
.detail("PeerAddress",
NetworkAddress(pkt.canonicalRemoteIp(), pkt.canonicalRemotePort));
peer->compatible = compatible;
if (!compatible) {
peer->transport->numIncompatibleConnections++;
Expand Down
5 changes: 4 additions & 1 deletion fdbrpc/sim2.actor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -361,7 +361,8 @@ struct Sim2Conn final : IConnection, ReferenceCounted<Sim2Conn> {
TraceEvent("SimulatedDisconnection")
.detail("Phase", "Connect")
.detail("Address", process->address)
.detail("Peer", peerProcess->address);
.detail("Peer", peerProcess->address)
.detail("PeerAddress", peerProcess->address);
throw connection_failed();
}

Expand Down Expand Up @@ -583,6 +584,7 @@ struct Sim2Conn final : IConnection, ReferenceCounted<Sim2Conn> {
TraceEvent("ConnectionFailure", dbgid)
.detail("MyAddr", process->address)
.detail("PeerAddr", peerProcess->address)
.detail("PeerAddress", peerProcess->address)
.detail("PeerIsValid", peer.isValid())
.detail("SendClosed", a > .33)
.detail("RecvClosed", a < .66)
Expand Down Expand Up @@ -616,6 +618,7 @@ struct Sim2Conn final : IConnection, ReferenceCounted<Sim2Conn> {
.detail("MyAddr", self->process->address)
.detail("IsPublic", self->process->address.isPublic())
.detail("PeerAddr", self->peerEndpoint)
.detail("PeerAddress", self->peerEndpoint)
.detail("PeerId", self->peerId)
.detail("Opened", self->opened);
return Void();
Expand Down
1 change: 1 addition & 0 deletions fdbserver/CommitProxyServer.actor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1031,6 +1031,7 @@ ACTOR Future<Void> getResolution(CommitBatchContext* self) {
for (int r = 0; r < self->pProxyCommitData->resolvers.size(); r++) {
TraceEvent(SevWarnAlways, "ResetResolverNetwork", self->pProxyCommitData->dbgid)
.detail("PeerAddr", self->pProxyCommitData->resolvers[r].address())
.detail("PeerAddress", self->pProxyCommitData->resolvers[r].address())
.detail("CurrentBatch", self->localBatchNumber)
.detail("InProcessBatch", self->pProxyCommitData->latestLocalCommitBatchLogging.get());
FlowTransport::transport().resetConnection(self->pProxyCommitData->resolvers[r].address());
Expand Down
4 changes: 3 additions & 1 deletion fdbserver/DataDistribution.actor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1182,7 +1182,8 @@ Future<Void> sendSnapReq(RequestStream<Req> stream, Req req, Error e) {
TraceEvent("SnapDataDistributor_ReqError")
.errorUnsuppressed(reply.getError())
.detail("ConvertedErrorType", e.what())
.detail("Peer", stream.getEndpoint().getPrimaryAddress());
.detail("Peer", stream.getEndpoint().getPrimaryAddress())
.detail("PeerAddress", stream.getEndpoint().getPrimaryAddress());
throw e;
}
return Void();
Expand All @@ -1197,6 +1198,7 @@ ACTOR Future<ErrorOr<Void>> trySendSnapReq(RequestStream<WorkerSnapRequest> stre
TraceEvent("SnapDataDistributor_ReqError")
.errorUnsuppressed(reply.getError())
.detail("Peer", stream.getEndpoint().getPrimaryAddress())
.detail("PeerAddress", stream.getEndpoint().getPrimaryAddress())
.detail("Retry", snapReqRetry);
if (reply.getError().code() != error_code_request_maybe_delivered ||
++snapReqRetry > SERVER_KNOBS->SNAP_NETWORK_FAILURE_RETRY_LIMIT)
Expand Down
3 changes: 2 additions & 1 deletion fdbserver/LogRouter.actor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -703,7 +703,8 @@ ACTOR Future<Void> logRouterPeekStream(LogRouterData* self, TLogPeekStreamReques
TraceEvent(SevDebug, "LogRouterPeekStreamEnd", self->dbgid)
.errorUnsuppressed(e)
.detail("Tag", req.tag)
.detail("PeerAddr", req.reply.getEndpoint().getPrimaryAddress());
.detail("PeerAddr", req.reply.getEndpoint().getPrimaryAddress())
.detail("PeerAddress", req.reply.getEndpoint().getPrimaryAddress());

if (e.code() == error_code_end_of_stream || e.code() == error_code_operation_obsolete) {
req.reply.sendError(e);
Expand Down
1 change: 1 addition & 0 deletions fdbserver/LogSystemPeekCursor.actor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ ACTOR Future<Void> tryEstablishPeekStream(ILogSystem::ServerPeekCursor* self) {
DebugLogTraceEvent(SevDebug, "SPC_StreamCreated", self->randomID)
.detail("Tag", self->tag)
.detail("PeerAddr", self->interf->get().interf().peekStreamMessages.getEndpoint().getPrimaryAddress())
.detail("PeerAddress", self->interf->get().interf().peekStreamMessages.getEndpoint().getPrimaryAddress())
.detail("PeerToken", self->interf->get().interf().peekStreamMessages.getEndpoint().token);
return Void();
}
Expand Down
3 changes: 2 additions & 1 deletion fdbserver/OldTLogServer_4_6.actor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1143,7 +1143,8 @@ ACTOR Future<Void> tLogPeekStream(TLogData* self, TLogPeekStreamRequest req, Ref
self->activePeekStreams--;
TraceEvent(SevDebug, "TLogPeekStreamEnd", logData->logId)
.errorUnsuppressed(e)
.detail("PeerAddr", req.reply.getEndpoint().getPrimaryAddress());
.detail("PeerAddr", req.reply.getEndpoint().getPrimaryAddress())
.detail("PeerAddress", req.reply.getEndpoint().getPrimaryAddress());

if (e.code() == error_code_end_of_stream || e.code() == error_code_operation_obsolete) {
req.reply.sendError(e);
Expand Down
3 changes: 2 additions & 1 deletion fdbserver/OldTLogServer_6_0.actor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1459,7 +1459,8 @@ ACTOR Future<Void> tLogPeekStream(TLogData* self, TLogPeekStreamRequest req, Ref
self->activePeekStreams--;
TraceEvent(SevDebug, "TLogPeekStreamEnd", logData->logId)
.errorUnsuppressed(e)
.detail("PeerAddr", req.reply.getEndpoint().getPrimaryAddress());
.detail("PeerAddr", req.reply.getEndpoint().getPrimaryAddress())
.detail("PeerAddress", req.reply.getEndpoint().getPrimaryAddress());

if (e.code() == error_code_end_of_stream || e.code() == error_code_operation_obsolete) {
req.reply.sendError(e);
Expand Down
3 changes: 2 additions & 1 deletion fdbserver/OldTLogServer_6_2.actor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1887,7 +1887,8 @@ ACTOR Future<Void> tLogPeekStream(TLogData* self, TLogPeekStreamRequest req, Ref
self->activePeekStreams--;
TraceEvent(SevDebug, "TLogPeekStreamEnd", logData->logId)
.errorUnsuppressed(e)
.detail("PeerAddr", req.reply.getEndpoint().getPrimaryAddress());
.detail("PeerAddr", req.reply.getEndpoint().getPrimaryAddress())
.detail("PeerAddress", req.reply.getEndpoint().getPrimaryAddress());

if (e.code() == error_code_end_of_stream || e.code() == error_code_operation_obsolete) {
req.reply.sendError(e);
Expand Down
3 changes: 2 additions & 1 deletion fdbserver/TLogServer.actor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2186,7 +2186,8 @@ ACTOR Future<Void> tLogPeekStream(TLogData* self, TLogPeekStreamRequest req, Ref
TraceEvent(SevDebug, "TLogPeekStreamEnd", logData->logId)
.errorUnsuppressed(e)
.detail("Tag", req.tag)
.detail("PeerAddr", req.reply.getEndpoint().getPrimaryAddress());
.detail("PeerAddr", req.reply.getEndpoint().getPrimaryAddress())
.detail("PeerAddress", req.reply.getEndpoint().getPrimaryAddress());

if (e.code() == error_code_end_of_stream || e.code() == error_code_operation_obsolete) {
req.reply.sendError(e);
Expand Down
13 changes: 10 additions & 3 deletions fdbserver/include/fdbserver/ClusterController.actor.h
Original file line number Diff line number Diff line change
Expand Up @@ -3034,7 +3034,8 @@ class ClusterControllerData {
TraceEvent("ClusterControllerReceivedPeerRecovering")
.suppressFor(10.0)
.detail("Worker", req.address)
.detail("Peer", peer);
.detail("Peer", peer)
.detail("PeerAddress", peer);
health.degradedPeers.erase(peer);
health.disconnectedPeers.erase(peer);
}
Expand Down Expand Up @@ -3066,15 +3067,21 @@ class ClusterControllerData {
for (auto& [workerAddress, health] : workerHealth) {
for (auto it = health.degradedPeers.begin(); it != health.degradedPeers.end();) {
if (currentTime - it->second.lastRefreshTime > SERVER_KNOBS->CC_DEGRADED_LINK_EXPIRATION_INTERVAL) {
TraceEvent("WorkerPeerHealthRecovered").detail("Worker", workerAddress).detail("Peer", it->first);
TraceEvent("WorkerPeerHealthRecovered")
.detail("Worker", workerAddress)
.detail("Peer", it->first)
.detail("PeerAddress", it->first);
health.degradedPeers.erase(it++);
} else {
++it;
}
}
for (auto it = health.disconnectedPeers.begin(); it != health.disconnectedPeers.end();) {
if (currentTime - it->second.lastRefreshTime > SERVER_KNOBS->CC_DEGRADED_LINK_EXPIRATION_INTERVAL) {
TraceEvent("WorkerPeerHealthRecovered").detail("Worker", workerAddress).detail("Peer", it->first);
TraceEvent("WorkerPeerHealthRecovered")
.detail("Worker", workerAddress)
.detail("Peer", it->first)
.detail("PeerAddress", it->first);
health.disconnectedPeers.erase(it++);
} else {
++it;
Expand Down
23 changes: 15 additions & 8 deletions fdbserver/storageserver.actor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3192,7 +3192,8 @@ ACTOR Future<std::pair<ChangeFeedStreamReply, bool>> getChangeFeedMutations(Stor
.detail("Range", req.range)
.detail("Begin", req.begin)
.detail("End", req.end)
.detail("PeerAddr", req.reply.getEndpoint().getPrimaryAddress());
.detail("PeerAddr", req.reply.getEndpoint().getPrimaryAddress())
.detail("PeerAddress", req.reply.getEndpoint().getPrimaryAddress());
}

if (data->version.get() < req.begin) {
Expand Down Expand Up @@ -3239,7 +3240,8 @@ ACTOR Future<std::pair<ChangeFeedStreamReply, bool>> getChangeFeedMutations(Stor
.detail("FetchVersion", feedInfo->fetchVersion)
.detail("DurableFetchVersion", feedInfo->durableFetchVersion.get())
.detail("DurableValidationVersion", durableValidationVersion)
.detail("PeerAddr", req.reply.getEndpoint().getPrimaryAddress());
.detail("PeerAddr", req.reply.getEndpoint().getPrimaryAddress())
.detail("PeerAddress", req.reply.getEndpoint().getPrimaryAddress());
}

if (req.end > emptyVersion + 1) {
Expand Down Expand Up @@ -3667,7 +3669,8 @@ ACTOR Future<std::pair<ChangeFeedStreamReply, bool>> getChangeFeedMutations(Stor
.detail("PopVersion", reply.popVersion)
.detail("Count", reply.mutations.size())
.detail("GotAll", gotAll)
.detail("PeerAddr", req.reply.getEndpoint().getPrimaryAddress());
.detail("PeerAddr", req.reply.getEndpoint().getPrimaryAddress())
.detail("PeerAddress", req.reply.getEndpoint().getPrimaryAddress());
}

// If the SS's version advanced at all during any of the waits, the read from memory may have missed some
Expand Down Expand Up @@ -3749,7 +3752,8 @@ ACTOR Future<Void> changeFeedStreamQ(StorageServer* data, ChangeFeedStreamReques
.detail("Begin", req.begin)
.detail("End", req.end)
.detail("CanReadPopped", req.canReadPopped)
.detail("PeerAddr", req.reply.getEndpoint().getPrimaryAddress());
.detail("PeerAddr", req.reply.getEndpoint().getPrimaryAddress())
.detail("PeerAddress", req.reply.getEndpoint().getPrimaryAddress());
}

Version checkTooOldVersion = (!req.canReadPopped || req.end == MAX_VERSION) ? req.begin : req.end;
Expand Down Expand Up @@ -3791,7 +3795,8 @@ ACTOR Future<Void> changeFeedStreamQ(StorageServer* data, ChangeFeedStreamReques
.detail("End", req.end)
.detail("CanReadPopped", req.canReadPopped)
.detail("Version", req.begin - 1)
.detail("PeerAddr", req.reply.getEndpoint().getPrimaryAddress());
.detail("PeerAddr", req.reply.getEndpoint().getPrimaryAddress())
.detail("PeerAddress", req.reply.getEndpoint().getPrimaryAddress());
}

loop {
Expand All @@ -3808,7 +3813,8 @@ ACTOR Future<Void> changeFeedStreamQ(StorageServer* data, ChangeFeedStreamReques
.detail("End", req.end)
.detail("CanReadPopped", req.canReadPopped)
.detail("Version", blockedVersion.present() ? blockedVersion.get() : data->prevVersion)
.detail("PeerAddr", req.reply.getEndpoint().getPrimaryAddress());
.detail("PeerAddr", req.reply.getEndpoint().getPrimaryAddress())
.detail("PeerAddress", req.reply.getEndpoint().getPrimaryAddress());
}
removeUID = true;
}
Expand All @@ -3830,7 +3836,8 @@ ACTOR Future<Void> changeFeedStreamQ(StorageServer* data, ChangeFeedStreamReques
.detail("End", req.end)
.detail("CanReadPopped", req.canReadPopped)
.detail("Version", blockedVersion.present() ? blockedVersion.get() : data->prevVersion)
.detail("PeerAddr", req.reply.getEndpoint().getPrimaryAddress());
.detail("PeerAddr", req.reply.getEndpoint().getPrimaryAddress())
.detail("PeerAddress", req.reply.getEndpoint().getPrimaryAddress());
}
}
std::pair<ChangeFeedStreamReply, bool> _feedReply = wait(feedReplyFuture);
Expand Down Expand Up @@ -5967,7 +5974,7 @@ ACTOR Future<GetMappedKeyValuesReply> mapKeyValues(StorageServer* data,
pOriginalReq->options.get().debugID.get().first(),
"storageserver.mapKeyValues.BeforeLoop");

for (; offset<sz&& * remainingLimitBytes> 0; offset += SERVER_KNOBS->MAX_PARALLEL_QUICK_GET_VALUE) {
for (; (offset < sz) && (*remainingLimitBytes > 0); offset += SERVER_KNOBS->MAX_PARALLEL_QUICK_GET_VALUE) {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This may break CI's format (clang-format v15) check.

@kakaiu kakaiu Jul 19, 2024

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We may want to update clang-format to v16 in CI. Once I save storageserver.actor.cpp and clang-format v16 is automatically triggered, this never comes back until I manually do fmt.

// Divide into batches of MAX_PARALLEL_QUICK_GET_VALUE subqueries
for (int i = 0; i + offset < sz && i < SERVER_KNOBS->MAX_PARALLEL_QUICK_GET_VALUE; i++) {
KeyValueRef* it = &input.data[i + offset];
Expand Down
Loading