Ivan Bessonov created IGNITE-20769:
--------------------------------------

             Summary: Optimize append to logit log storage
                 Key: IGNITE-20769
                 URL: https://issues.apache.org/jira/browse/IGNITE-20769
             Project: Ignite
          Issue Type: Improvement
            Reporter: Ivan Bessonov


There are several obvious places where we copy data multiple times:
 * {{LogEntryEncoder#encode}} always uses a new array, and it always copies 
{{LogEntry#data}} into it, which is sort of pointless.
 * {{SegmentFile#encodeData}} copies that data one more time.

According to benchmarks ({{{}LogStorageBenchmark{}}}), if fsync is disabled, 
then we only spend 30-40% (roughly) of time actually writing the data into mmap 
buffer. The rest is all sorts of data manipulation.

Optional:
 * maybe we should get rid of mmap
 * preparing some parts of data in offheap might be a good idea, if we get rid 
of mmap (file channels must use direct buffers in their internals)



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to