org.apache.solr.core

## Class IndexDeletionPolicyWrapper

- java.lang.Object
- - org.apache.lucene.index.IndexDeletionPolicy
  - - org.apache.solr.core.IndexDeletionPolicyWrapper

-     public final class IndexDeletionPolicyWrapper
      extends IndexDeletionPolicy

  A wrapper for an IndexDeletionPolicy instance.

  Provides features for looking up IndexCommit given a version. Allows reserving index commit points for certain amounts of time to support features such as index replication or snapshooting directly out of a live index directory.

  NOTE: The `clone()` method returns `this` in order to make this `IndexDeletionPolicy` instance trackable across `IndexWriter` instantiations. This is correct because each core has its own `IndexDeletionPolicy` and never has more than one open `IndexWriter`.

  See Also:
    `IndexDeletionPolicy`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `IndexDeletionPolicyWrapper(IndexDeletionPolicy deletionPolicy, SolrSnapshotMetaDataManager snapshotMgr)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `IndexDeletionPolicy` | `clone()`
    `IndexCommit` | `getCommitPoint(Long gen)`
    `Map<Long,IndexCommit>` | `getCommits()` Gets the commit points for the index.
    `static long` | `getCommitTimestamp(IndexCommit commit)`
    `IndexCommit` | `getLatestCommit()` Gets the most recent commit point
    `IndexDeletionPolicy` | `getWrappedDeletionPolicy()`
    `void` | `onCommit(List<? extends IndexCommit> list)` Internal use for Lucene...
    `void` | `onInit(List<? extends IndexCommit> list)` Internal use for Lucene...
    `void` | `releaseCommitPoint(Long indexCommitGen)` Release a previously saved commit point
    `void` | `saveCommitPoint(Long indexCommitGen)` Permanently prevent this commit point from being deleted.
    `void` | `setReserveDuration(Long indexGen, long reserveTime)` Set the duration for which commit point is to be reserved by the deletion policy.

    - ### Methods inherited from class java.lang.Object

      `equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### IndexDeletionPolicyWrapper

          public IndexDeletionPolicyWrapper(IndexDeletionPolicy deletionPolicy,
                                            SolrSnapshotMetaDataManager snapshotMgr)

  - ### Method Detail

    - #### getLatestCommit

          public IndexCommit getLatestCommit()

      Gets the most recent commit point

      It is recommended to reserve a commit point for the duration of usage so that it is not deleted by the underlying deletion policy

      Returns:
        the most recent commit point

    - #### getWrappedDeletionPolicy

          public IndexDeletionPolicy getWrappedDeletionPolicy()

    - #### setReserveDuration

          public void setReserveDuration(Long indexGen,
                                         long reserveTime)

      Set the duration for which commit point is to be reserved by the deletion policy.
      Parameters:
        `indexGen` - gen of the commit point to be reserved
        `reserveTime` - time in milliseconds for which the commit point is to be reserved

    - #### saveCommitPoint

          public void saveCommitPoint(Long indexCommitGen)

      Permanently prevent this commit point from being deleted. A counter is used to allow a commit point to be correctly saved and released multiple times.

    - #### releaseCommitPoint

          public void releaseCommitPoint(Long indexCommitGen)

      Release a previously saved commit point

    - #### onInit

          public void onInit(List<? extends IndexCommit> list)
                      throws IOException

      Internal use for Lucene... do not explicitly call.
      Specified by:
        `onInit` in class `IndexDeletionPolicy`
      Throws:
        `IOException`

    - #### onCommit

          public void onCommit(List<? extends IndexCommit> list)
                        throws IOException

      Internal use for Lucene... do not explicitly call.
      Specified by:
        `onCommit` in class `IndexDeletionPolicy`
      Throws:
        `IOException`

    - #### getCommitPoint

          public IndexCommit getCommitPoint(Long gen)

      Parameters:
        `gen` - the gen of the commit point
      Returns:
        a commit point corresponding to the given version

    - #### getCommits

          public Map<Long,IndexCommit> getCommits()

      Gets the commit points for the index. This map instance may change between commits and commit points may be deleted. It is recommended to reserve a commit point for the duration of usage
      Returns:
        a Map of version to commit points

    - #### getCommitTimestamp

          public static long getCommitTimestamp(IndexCommit commit)
                                         throws IOException

      Throws:
        `IOException`

    - #### clone

          public IndexDeletionPolicy clone()

      Overrides:
        `clone` in class `Object`

Copyright © 2000-2016 Apache Software Foundation. All Rights Reserved.