Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Not A Problem
-
None
-
None
-
None
Description
The current naming of LSM components are inconsistent. AbstractLSMIndexFileManager.getComponentStartTime/getComponentEndTime assumes a component is named as "beginTS-endTS". However, physically a component is named as "endTS-beginTS". This leads to recovery problems because certain valid components could be erroneously deleted because of index checkpointing check.
The problem is caused by merge operation. For example, in LSMBTree.getMergeFileReferences, firstComponent is actually newer than lastComponent, which breaks the assumption of time range.