code: @Override
    public List<? extends OutputWriter<KeyValue<ByteBuffer, List<ByteBuffer>>>> createWriters(
        int shards) {
      ImmutableList.Builder<OutputWriter<KeyValue<ByteBuffer, List<ByteBuffer>>>> result =
          new ImmutableList.Builder<>();
      for (int i = 0; i < shards; i++) {
        result.add(new OrderSlicingOutputWriter(bucket,
            String.format(MapReduceConstants.MERGE_OUTPUT_DIR_FORMAT, mrJobId, tier, i)));
      }
      return result.build();
    }
docs: Returns a writer that writes the data the same way that the sort does, splitting the output
  every time the key goes backwards in sequence. This way the output is a collection of files
  that are individually fully sorted. This works in conjunction with
  {@link GoogleCloudStorageMergeInput} to convert a large number of sorted files into a much
  smaller number of sorted files.