Description
Currently we use FlatFileStore in offline reindexing, using oak-run. IncrementalFFS is derived from this FFS implementation where we create a a modified FlatFileStore having changes made in repo between 2 checkpoints. This incremental FFS can be merged with an existing FlatFileStore creating FlatFileStore. e.g.
Lets say we have 2 checkpoints C1 and C2.
FlatFileStoreC1 is the FlatFileStore we created at C1.
IncrementalFFS-C1-C2 is incrementalFFS between C1 and C2.
Now we merge FlatFileStoreC1 with IncrementalFFS-C1-C2 this merging results in creating a FlatFileStore which is exactly same as FlatFileStore created with checkpoint C2.
Structure of FFS:
<path>|<node-data>
Structure of incrementalFFS:
<path>|<node-data>|<after-checkpint>|<Operand>
Here after-checkpoint is C2 from previous example i.e. latest of checkpoints.
Operand is the operation performed on node which chenged it's state between C1-C2
The values for operand are :
A for added M for modified D for deleted