Vladimir Ozerov created IGNITE-2721:
---------------------------------------

             Summary: Optimize ATOMIC cache request/responses.
                 Key: IGNITE-2721
                 URL: https://issues.apache.org/jira/browse/IGNITE-2721
             Project: Ignite
          Issue Type: Sub-task
          Components: cache
    Affects Versions: 1.5.0.final
            Reporter: Vladimir Ozerov
            Assignee: Ilya Lantukh
            Priority: Critical
             Fix For: 1.6


Our request/responses for ATOMIC cache has lots of fields which are normally 
unused.
To give an idea on possible optimizations lets look closely on 
GridNearAtomicUpdateRequest:
* {{futVer}} - could be converted to int
* {{syncMode}} - why do we pass it? Can it be derived from cache config?
* {{op}} - can it be derived form request?
* Entry processors and invoke arguments - can be moved to extras, or separate 
request class can be created for them.
* Conflict data - usually null, must be moved to extras
* Expiry policy - must be moved to extras.
* {{filter}} - only one filter is ever passed - when we need to compare 
existing value. Lets pass the value instead!
* Lots of flags - can be written as a single byte. Though, it's priority is not 
so high.
* {{topVer}} - could easily be inlined to save allocations and network traffic. 

As a result of this investigation we must create a list of optimizations to be 
performed and prioritize them. Then we should implement them one by one, 
keeping them merged in a separate branch (not master!) until we are sure that 
we did everything we can.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to