Rework and expand the algorithms in JSCAN, part 5/?.
Revamp the scanning code, cleaning up the API considerably and allowing
forward or backwards reads relative to a supplied record, which makes
scanning a lot more intuitive.
Implement the -c option to specify the number of raw records to process.
This is primarily intended for running a mirror forwards or backwards by
a certain number of records.
Implement mid-transaction recovery. Mid-transaction recovery is needed
when a batch operation has stopped at a raw record that is in the middle
of a meta-transaction (a meta-transaction can consist of many raw records).
Stoppage can occur for many reasons, such as the batch being run while
the system is still writing out the records related to a meta-transaction,
or due to journal restarts, unexpected program termination, or command-line
limited record counts with -c.
This feature has been tested a little with -m -c 1 to iterate a mirror
forwards in time one raw record at a time across a large WRITE transaction
that covers many raw records. It is a pre-requisite for being able to
iterate mirrors forwards and backwards in time.