First part of work tracked from
Investigate how we are going to store the checkpoint information, I like the idea proposed by Susan LoVerso, so would start with keeping 1 (or 2) ckpt structures around attached to the dhandle. The cached ckpt structures will be used instead of reparsing the strings, and then updated as new checkpoints get created. Let's start with the common (non-backup) path. In the debug build, we will still parse and create ckpt structures and assert if the structures created from metadata do not match the one we hold in the cache. We will need to figure exactly how many ckpt structures to keep around, including handling checkpoint deletion.