[
https://issues.apache.org/jira/browse/HBASE-17330?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15756766#comment-15756766
]
Jianwei Cui commented on HBASE-17330:
-------------------------------------
In {{SnapshotFileCache#refreshCache}}, the modify time of snapshot tmp
directory will also be considered as:
{code}
// get the status of the snapshots temporary directory and check if it has
changes
// The top-level directory timestamp is not updated, so we have to check
the inner-level.
try {
Path snapshotTmpDir = new Path(snapshotDir,
SnapshotDescriptionUtils.SNAPSHOT_TMP_DIR_NAME);
FileStatus tempDirStatus = fs.getFileStatus(snapshotTmpDir);
lastTimestamp = Math.min(lastTimestamp,
tempDirStatus.getModificationTime());
hasChanges |= (lastTimestamp >= lastModifiedTime);
...
} catch (FileNotFoundException e) {
// Nothing todo, if the tmp dir is empty
}
{code}
It seems the in-progress snapshots under tmp directory won't be loaded in
{{SnapshotFileCache#refreshCache}} after
[HBASE-12627|https://issues.apache.org/jira/browse/HBASE-12627], so do not need
to consider modify time of tmp directory in {{SnapshotFileCache#refreshCache}}?
> SnapshotFileCache will always refresh the file cache
> ----------------------------------------------------
>
> Key: HBASE-17330
> URL: https://issues.apache.org/jira/browse/HBASE-17330
> Project: HBase
> Issue Type: Bug
> Components: snapshots
> Affects Versions: 2.0.0, 1.3.1, 0.98.23
> Reporter: Jianwei Cui
> Priority: Minor
> Attachments: HBASE-17330-v1.patch
>
>
> In {{SnapshotFileCache#refreshCache}}, the {{hasChanges}} will be judged as:
> {code}
> try {
> FileStatus dirStatus = fs.getFileStatus(snapshotDir);
> lastTimestamp = dirStatus.getModificationTime();
> hasChanges |= (lastTimestamp >= lastModifiedTime); // >= will make
> hasChanges always be true
> {code}
> The {{(lastTimestamp >= lastModifiedTime)}} will make {{hasChanges}} always
> be true because {{lastTimestamp}} will be updated as:
> {code}
> this.lastModifiedTime = lastTimestamp;
> {code}
> So, SnapshotFileCache will always refresh the file cache.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)