You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "翟玉勇 (JIRA)" <ji...@apache.org> on 2018/09/26 07:07:00 UTC

[jira] [Created] (KAFKA-7442) forceUnmap mmap on linux

翟玉勇 created KAFKA-7442:
--------------------------

             Summary: forceUnmap mmap on linux
                 Key: KAFKA-7442
                 URL: https://issues.apache.org/jira/browse/KAFKA-7442
             Project: Kafka
          Issue Type: Improvement
          Components: log
    Affects Versions: 0.10.1.1
            Reporter: 翟玉勇


when resize OffsetIndex or TimeIndex,We should force unmap mmap for linux platform

{code}
def resize(newSize: Int) {
    inLock(lock) {
      val raf = new RandomAccessFile(_file, "rw")
      val roundedNewSize = roundDownToExactMultiple(newSize, entrySize)
      val position = mmap.position

      /* Windows won't let us modify the file length while the file is mmapped :-( */
      if(Os.isWindows)
        forceUnmap(mmap)
      try {
        raf.setLength(roundedNewSize)
        mmap = raf.getChannel().map(FileChannel.MapMode.READ_WRITE, 0, roundedNewSize)
        _maxEntries = mmap.limit / entrySize
        mmap.position(position)
      } finally {
        CoreUtils.swallow(raf.close())
      }
    }
  }
{code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)