in src/main/java/com/uber/rss/clients/ReplicatedWriteClient.java [92:120]
public synchronized long getShuffleWriteBytes() {
if (shuffleWriteBytes >= 0) {
return shuffleWriteBytes;
}
long shuffleWriteBytes = -1;
String shuffleWriteBytesClientInfo = null;
for (int i = 0; i < clients.length; i++) {
ServerIdAwareSyncWriteClient client = clients[i];
if (client != null) {
long currentClientValue = client.getShuffleWriteBytes();
if (shuffleWriteBytes == -1) {
shuffleWriteBytes = currentClientValue;
shuffleWriteBytesClientInfo = client.toString();
} else if (shuffleWriteBytes != currentClientValue) {
throw new RssInvalidStateException(String.format(
"Inconsistent state, client (%s) wrote %s shuffle bytes, while another client (%s) wrote %s shuffle bytes",
shuffleWriteBytesClientInfo, shuffleWriteBytes, client, currentClientValue));
}
}
}
if (shuffleWriteBytes == -1) {
throw new RssException("No active client with server replication group: " + serverReplicationGroup);
}
return shuffleWriteBytes;
}