Class SoftBPlusTree.IndexNodeOutdatedException

java.lang.Object
java.lang.Throwable
java.lang.Exception
java.lang.RuntimeException
org.infinispan.util.SoftBPlusTree.IndexNodeOutdatedException
All Implemented Interfaces:
Serializable
Enclosing class:
SoftBPlusTree<V>

public static class SoftBPlusTree.IndexNodeOutdatedException extends RuntimeException
Thrown by a BPlusTree.PublishFunction or during node deserialization (via the SoftBPlusTree.KeyLoader) when the underlying data for a tree entry is no longer available — for example, because a compactor deleted the data file between the time the index node was cached and the time the entry's key was loaded.

SoftBPlusTree retries SoftBPlusTree.get(byte[]) and SoftBPlusTree.publish(BPlusTree.PublishFunction) up to MAX_OUTDATED_RETRIES times when this exception is thrown. SoftBPlusTree.put(byte[], V) and SoftBPlusTree.remove(byte[]) do not retry and will propagate the exception if it occurs.

Callers outside the tree (e.g. code that calls SoftBPlusTree.get(byte[]) and then accesses the returned value) may also need their own retry loop to cover the window between the get returning and the value being used.

See Also:
  • Constructor Details

    • IndexNodeOutdatedException

      public IndexNodeOutdatedException(String message)