JackieTien97 opened a new pull request #2488: URL: https://github.com/apache/iotdb/pull/2488
There are two problems in the process of current wal flushing. - Because wal uses FileChannel while flushing, it involves one more memory copy. FileChannel will copy the contents of HeapByteBuffer to DirectByteBuffer before calling native write method, and then call native write with DirectByteBuffer as a parameter, which will cause An extra memory copy operation. - Although 0.12 uses the thread pool to complete asynchronous flushing, to a certain extent, solves the problem of the surge of non-heap memory caused by the wal of 0.11, but when the non-heap memory is released is still depends on the jvm (depends on when gc is performed), jvm cannot know whether non-heap memory should be released in time, so it may also cause non-heap memory to not be released in time, but we are clear about that. So, I want to use DirectByteBufferPool to solve the above two questions. The detailed design documents is on the confluence(https://cwiki.apache.org/confluence/display/IOTDB/DirectByteBuffer+Pool+for+WAL). ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected]
