foundationdb
foundationdb copied to clipboard
broadcastDBInfoRequest should minimize cross DC/Locality calls
broadcastDBInfoRequest()
today takes a list of workers, ordered by processID
, divides them into batches, and sends a batch to one worker. The worker receives the batch recursively calls broadcastDBInfoRequest()
to distribute the request.
This broadcast doesn't take the network topology into consideration. As a result, cluster controller may send a request to a remote DC, which then forwards the request back to the primary DC. A better way is to minimize cross DC or Locality traffic by dividing batches such that the workers in the same batch belong to a DC/Locality.