VMware GemFire Java API Reference
Interface Delta
-
public interface DeltaThis interface defines a contract between the application and GemFire that allows GemFire to determine whether an application object contains a delta, allows GemFire to extract the delta from an application object, and generate a new application object by applying a delta to an existing application object. The difference in object state is contained in theDataOutputandDataInputparameters.- Since:
- GemFire 6.1
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description voidfromDelta(java.io.DataInput in)This method is invoked on an existing application object when an update is received as a delta.default booleangetForceRecalculateSize()By default, entry sizes are not recalculated when deltas are applied.booleanhasDelta()Returns true if this object has pending changes it can write out as a delta.voidtoDelta(java.io.DataOutput out)This method is invoked on an application object at the delta sender, if GemFire determines the presence of a delta by callinghasDelta()on the object.
-
-
-
Method Detail
-
hasDelta
boolean hasDelta()
Returns true if this object has pending changes it can write out as a delta. Returns false if this object must be transmitted in its entirety.- Returns:
- whether this object has pending changes it can write out as a delta
-
toDelta
void toDelta(java.io.DataOutput out) throws java.io.IOExceptionThis method is invoked on an application object at the delta sender, if GemFire determines the presence of a delta by callinghasDelta()on the object. The delta is written to theDataOutputobject provided by GemFire.Any delta state should be reset in this method.
- Parameters:
out- theDataOutputto write to- Throws:
java.io.IOException- if a problem occurs while writing toout
-
fromDelta
void fromDelta(java.io.DataInput in) throws java.io.IOException, InvalidDeltaExceptionThis method is invoked on an existing application object when an update is received as a delta. This method throws anInvalidDeltaExceptionwhen the delta in theDataInputcannot be applied to the object. GemFire automatically handles anInvalidDeltaExceptionby reattempting the update by sending the full application object.- Parameters:
in- theDataInputto read from- Throws:
java.io.IOException- if a problem occurs while reading frominInvalidDeltaException
-
getForceRecalculateSize
default boolean getForceRecalculateSize()
By default, entry sizes are not recalculated when deltas are applied. This optimizes for the case where the size of an entry does not change. However, if an entry size does increase or decrease, this default behavior can result in the memory usage statistics becoming inaccurate. These are used to monitor the health of Geode instances, and for balancing memory usage across partitioned regions.There is a system property, gemfire.DELTAS_RECALCULATE_SIZE, which can be used to cause all deltas to trigger entry size recalculation when deltas are applied. By default, this is set to 'false' because of potential performance impacts when every delta triggers a recalculation.
To allow entry size recalculation on a per-delta basis, classes that extend the Delta interface should override this method to return 'true'. This may impact performance of specific delta types, but will not globally affect the performance of other Geode delta operations.
- Returns:
- whether entry sizes should be recalculated when deltas are applied
- Since:
- 1.14
-
-