@Johnny_Fartpants Oh, someone did delete their data pool recently using a command found on the web that did a dd on their data pool wiping out the system thinking they were just operating an a few files in a dataset. I think this is why this conversation thread started. Many including myself did not know about a checkpoint. Like many I have setup snapshots and backups and rotate them as necessary so there is always at least 1 good one somewhere. We can think of snapshots as a lapbelt, where a checkpoint could be thought of as a common 3-point shoulder/lapbelt.
After reading the @winnielinnie article on checkpoints I created a cron job to destroy the old one and create a new one each night typically after we are done for the night and before any backups or scripts start on the systems.
There are some reasons everyone may not want a blanket checkpoint as some limits are imposed on a checkpointed system to ensure that users cannot introduce any unrecoverable errors to their storage pools and so a checkpoint is not to be treated as a snapshot. The article @winnielinnie wrote points this out very clearly.
So in the end, I would say that there Should be a GUI implementation where this feature could be implemented easier. More people would use it and also, more people would then run into the caveats of it’s use, but they could be easily educated.
It’s always a fixed point for a pool’s checkpoint, akin to a snapshot for a dataset.
That its “size” keeps growing is only if there is data being destroyed that would otherwise be “released” if you discard the checkpoint.
To drive this point home: Let’s say your pool contains a dataset that consumes 2 TiB of data on your pool. Then you create a checkpoint for the pool. Then you (accidentally) destroy the dataset. Guess what? The checkpoint will show that it is using up 2 TiB of space. (Because it is “holding” all of that data that would be permanently gone, had you not created a checkpoint.)
If you want to recover that dataset (with all of its snapshots), you would rewind the pool. Hopefully, the checkpoint isn’t from more than a day or so ago.
In your situation, the checkpoint itself is not changing. Your ix-applications and/or System Dataset just so happen to constantly delete data at a regular basis. If you were to rewind your pool to the checkpoint, it would be exactly the same as it was when you created it at that point in time.
I’m not really a fan of the concept of the System Dataset or “ix-applications”. I really wish TrueNAS wasn’t so “chatty” with its constant I/O writes.