[
https://issues.apache.org/jira/browse/GEODE-2536?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Eric Shu reassigned GEODE-2536:
-------------------------------
Assignee: Eric Shu
> DiskId code confusing in how it implements needsToBeWritten
> -----------------------------------------------------------
>
> Key: GEODE-2536
> URL: https://issues.apache.org/jira/browse/GEODE-2536
> Project: Geode
> Issue Type: Improvement
> Components: persistence
> Reporter: Darrel Schneider
> Assignee: Eric Shu
>
> DiskId has an abstract method "needsToBeWritten." It is set to true by
> "markForWriting" and set to false by "unmarkForWriting." DiskId has two types
> of implementations: one for overflow only regions and one for persistent
> regions.
> The needsToBeWritten only makes sense for overflow only. But the persistent
> DiskIds also implement these methods and do so in a way that can be confused
> with "isKeyIdNegative."
> Since markForWriting will only be called for overflow only disk ids I
> recommend that the persistent implementation of this method be changed to
> always throw an exception.
> unmarkForWriting may be called on any type of disk id but for persistent ones
> should be changed to do nothing.
> needsToBeWritten should be changed to always return false for persistent
> DiskIds since they are immediately written to disk (or scheduled to be
> written if async) by whoever gives them a new value. needsToBeWritten is only
> called by the overflowToDisk method and for a persistent+overflow region it
> should never need to write the value to disk; all it needs to do is remove
> the value from memory since it is written to disk.
> The current implementation of these methods on persistent DiskIds do it by
> negating the keyId. Unfortunately this is also done to indicate that the
> value was not recovered from disk.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)