[ https://issues.apache.org/jira/browse/GEODE-2536?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Eric Shu resolved GEODE-2536. ----------------------------- Resolution: Fixed > 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)