@Override
  public void close() throws IOException {
    if (segmentsArray != null) {
      ByteBufferUtil.free(segmentsArray);
      segmentsArray = null;
    }
    if (writeChannel != null) {
      writeChannel.close();
      writeChannel = null;
    }
    if (readChannel != null) {
      readChannel.close();
      readChannel = null;
    }
    FileUtils.delete(path);
  }
A map from sequential {@code long} keys to {@code long} values backed by a file on disk where the key defines the
offset in the input file.
<p>
During write phase, values are stored in a sliding window of {@link ByteBuffer ByteBuffers} and flushed to disk when
the segment slides out of the window. During read phase, they file is memory-mapped and read.
planetiler-core/src/main/java/com/onthegomap/planetiler/collection/ArrayLongLongMapMmap.java