The following scenarios need to be tested against the garbage collection by checkpoint
- Insert a set of values to the key with a various range of timestamps and perform a checkpoint. Later move the oldest timestamp to the stable timestamp and perform a checkpoint again. The checkpoint must clean the WT history. Use the stats of the garbage collection to check its correctness by checking pages cleaned are >= 0.
- Insert a set of values to the key with a various range of timestamps including “modify” operations on the same key. Move the oldest timestamp to stable timestamp and perform a checkpoint. The checkpoint must clean the WT history irrespective of the operation type. Use the stats of the garbage collection to check its correctness by checking pages cleaned are >=0.
- Insert a set of values to the key with a various range of timestamps, perform a checkpoint. Open a cursor to use that checkpoint and move the oldest timestamp to stable timestamp. Perform one more checkpoint. Observe the stats of the checkpoint doing the garbage collection of WT history irrespective of the previous checkpoint is locked.
- Insert a set of values to the key with a various range of timestamps and don’t move the oldest timestamp and perform checkpoint for 5 or more times by performing updates repeatedly. None of the checkpoints must remove the obsolete pages. Use the stats of the garbage collection to check its correctness.