Darrel Schneider created GEODE-8142:
---------------------------------------

             Summary: Enhance the Delta interface to support callbackArgs
                 Key: GEODE-8142
                 URL: https://issues.apache.org/jira/browse/GEODE-8142
             Project: Geode
          Issue Type: Improvement
          Components: core
            Reporter: Darrel Schneider


The Geode Delta interface allows for a subset of the actual data to distributed 
to redundant copies when storing data in a Geode region. It requires you to 
implement hasDelta, toDelta, and fromDelta on your domain class. In most cases 
when you implement these methods you find you need to add some additional 
instance variables to your domain class just for hasDelta and toDelta to read. 
So Delta saves you in how much data needs to be serialized for distribution, 
but it may hurt you in how much memory your domain object uses.

Geode has another concept call a "callbackArg". It is an extra parameter that 
can be passed to the Region methods, that will in turn be given to various 
callbacks that the user has installed. 

I propose we enhance hasDelta and toDelta to have a form of the method that is 
given the callback argument. The default implementation of this method would 
just be to ignore the callback arg and call the old method. But this would 
allow users to to override the new methods and have all the delta information 
passed to them as a callback argument. Since the callback arg is garbage 
collected after the operation it was given to completes, this would allow Delta 
to be implemented without introducing extra long lived memory overhead.

I have looked at the places Geode currently calls hasDelta and toDelta 
internally, and the callback argument is available in those contexts so this 
would be a rather easy feature to add.

I know that the Geode Redis API project could benefit from it.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to