docs: private JournalSegment<E> loadSegment(long segmentId) {
      File segmentFile = JournalSegmentFile.createSegmentFile(name, directory, segmentId);
      ByteBuffer buffer = ByteBuffer.allocate(JournalSegmentDescriptor.BYTES);
      try (FileChannel channel = openChannel(segmentFile)) {
        channel.read(buffer);
        buffer.flip();
        JournalSegmentDescriptor descriptor = new JournalSegmentDescriptor(buffer);
        JournalSegment<E> segment = newSegment(new JournalSegmentFile(segmentFile), descriptor);
        log.debug("Loaded disk segment: {} ({})", descriptor.id(), segmentFile.getName());
        return segment;
      } catch (IOException e) {
        throw new StorageException(e);
      }
    }