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]


Reply via email to