Marcel Reutegger created OAK-4850:
-------------------------------------

             Summary: List checkpoints
                 Key: OAK-4850
                 URL: https://issues.apache.org/jira/browse/OAK-4850
             Project: Jackrabbit Oak
          Issue Type: New Feature
          Components: core, documentmk, segmentmk
            Reporter: Marcel Reutegger
            Assignee: Marcel Reutegger
            Priority: Minor
             Fix For: 1.6


Introduce a new method on {{NodeStore}} that lists the currently valid 
checkpoints:

{code}
    /**
     * Returns all currently valid checkpoints.
     *
     * @return valid checkpoints.
     */
    @Nonnull
    Iterable<String> checkpoints();
{code}

The NodeStore interface already has methods to create and release a checkpoint, 
as well as retrieving the root state for a checkpoint, but it is currently not 
possible to _list_ checkpoints. Using the checkpoint facility as designed right 
now can lead to a situation where a checkpoint is orphaned. That is, some code 
created a checkpoint but was unable to store the reference because the system 
e.g. crashed. Orphaned checkpoints can affect garbage collection because they 
prevent it from cleaning up old data. Right now, this requires users to run 
tools like oak-run to get rid of those checkpoints.

As suggested in OAK-4826, client code should be able to automatically clean up 
unused checkpoints. This requires a method to list existing checkpoints.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to