private void offerSyncRequest(SyncRequest syncRequest) {
    for (int i = 0; i < this.syncRunners.length; i++) {
      this.syncRunnerIndex = (this.syncRunnerIndex + 1) % this.syncRunners.length;
      if (this.syncRunners[this.syncRunnerIndex].offer(syncRequest)) {
        return;
      }
    }
    syncRequest.completableFuture
      .completeExceptionally(new IOException("There is no available syncRunner."));
  }
This method allows subclasses to inject different writers without having to extend other
methods like rollWriter().
@return Writer instance
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/FSHLog.java