Nikolay Izhikov created IGNITE-28817:
----------------------------------------

             Summary: Get rid of ThinClient get copy to BinaryObjectImpl
                 Key: IGNITE-28817
                 URL: https://issues.apache.org/jira/browse/IGNITE-28817
             Project: Ignite
          Issue Type: Epic
            Reporter: Nikolay Izhikov
            Assignee: Nikolay Izhikov


Currently, from memory copy point of view `ClientCache#get` request process 
looks like:

  # Copy value from page memory (offheap) to BinaryObjectImpl (heap).
  # Copy value from BinaryObjectImpl (heap) to BinaryWriterEx (heap).
  # (?) Copy value from BinaryWriteEx to nio server buffers.

In case Ignite serving `ClientCache#get` request it possible to reduce copying 
and copy from page memory directly in BinaryWriter.

Possible algorithm looks like:

  # If data is local: local node owns requested key.,
  # if data fit in one page (simple scenariou can be widen to multipage case in 
next tickets)
  # then make page memory call with the callback that recieve: page pointer, 
value offset, value length.
  # and copy received data to writer
  # page read lock must be held while copying data from page to writer.



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

Reply via email to