public synchronized long getShuffleWriteBytes()

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;
  }