org.apache.solr.core
Class IndexDeletionPolicyWrapper

java.lang.Object
  extended by org.apache.lucene.index.IndexDeletionPolicy
      extended by org.apache.solr.core.IndexDeletionPolicyWrapper
All Implemented Interfaces:
Cloneable

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
IndexDeletionPolicyWrapper(IndexDeletionPolicy deletionPolicy)
           
 
Method Summary
 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

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

 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)
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 IndexDeletionPolicy


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