[ 
https://issues.apache.org/jira/browse/OAK-1160?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13931944#comment-13931944
 ] 

Michael Dürig commented on OAK-1160:
------------------------------------

At http://svn.apache.org/r1576808 I committed a first draft of a 
{{RepositoryManagementMBean}}.
* [~jukkaz], [~chetanm] could you please have a look whether this makes sense 
for MVSS GC?
* [~alex.parvulescu] could you please have a look whether this makes sense for 
backup and restore?
* [~tmueller] could you please have a look whether this makes sense for data 
store gc?

{code:title=RepositoryManagementMBean.java|borderStyle=solid}
/**
 * This interface exposes repository management operations
 * and the status of such operations.
 * <p>
 * The status of an operation is an opaque string describing
 * in a human readable form what the operation currently does,
 * which might depend on the particular implementation performing
 * the operation. However the status status must always indicate
 * whether an operation is ongoing or terminated. In the latter case
 * it must indicate whether it terminated successfully or failed.
 * In all cases the status may provide additional information
 * like e.g. how far an ongoing operation progressed, what time
 * it took to complete a terminated operation, or information
 * about what caused a terminated operation to fail.
 */
public interface RepositoryManagementMBean {

    /**
     * Initiate a backup operation to a file at the given absolute path
     *
     * @param path  absolute path
     * @return  the status of the operation right after it was initiated
     */
    String startBackup(String path);

    /**
     * Backup status
     *
     * @return  the status of the ongoing operation or if none the terminal
     * status of the last operation or {@code null} if none.
     */
    String getBackupStatus();

    /**
     * Initiate a restore operation from a file at the given absolute path
     *
     * @param path  absolute path
     * @return  the status of the operation right after it was initiated
     */
    String startRestore(String path);

    /**
     * Restore status
     *
     * @return  the status of the ongoing operation or if none the terminal
     * status of the last operation or {@code null} if none.
     */
    String getRestoreStatus();

    /**
     * Initiate a data store garbage collection operation
     *
     * @return  the status of the operation right after it was initiated
     */
    String startDataStoreGC();

    /**
     * Data store garbage collection status
     *
     * @return  the status of the ongoing operation or if none the terminal
     * status of the last operation or {@code null} if none.
     */
    String getDataStoreGCStatus();

    /**
     * Initiate a revision garbage collection operation
     *
     * @return  the status of the operation right after it was initiated
     */
    String startRevisionGC();

    /**
     * Revision garbage collection status
     *
     * @return  the status of the ongoing operation or if none the terminal
     * status of the last operation or {@code null} if none.
     */
    String getRevisionGCStatus();
}
{code}

> Generic interfaces for operation tasks
> --------------------------------------
>
>                 Key: OAK-1160
>                 URL: https://issues.apache.org/jira/browse/OAK-1160
>             Project: Jackrabbit Oak
>          Issue Type: New Feature
>          Components: core, mk
>            Reporter: Michael Marth
>            Assignee: Michael Dürig
>             Fix For: 0.19
>
>
> Could we add generic (i.e. MK independent) interfaces that can be used by 
> higher levels to trigger certain ops tasks? The the application could decide 
> when would be a good time to run them.
> I am thinking especially about backup/restore (OAK-1158), MVCC revision 
> cleanup (OAK-1158) and DSGC (OAK-377)



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to