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)