java.lang.Object
com.orientechnologies.orient.core.storage.impl.local.paginated.atomicoperations.OAtomicOperationsManager

public class OAtomicOperationsManager extends Object
Since:
12/3/13
Author:
Andrey Lomakin (a.lomakin-at-orientdb.com)
  • Constructor Details

  • Method Details

    • startAtomicOperation

      public OAtomicOperation startAtomicOperation(byte[] metadata) throws IOException
      Throws:
      IOException
    • calculateInsideAtomicOperation

      public <T> T calculateInsideAtomicOperation(byte[] metadata, TxFunction<T> function) throws IOException
      Throws:
      IOException
    • executeInsideAtomicOperation

      public void executeInsideAtomicOperation(byte[] metadata, TxConsumer consumer) throws IOException
      Throws:
      IOException
    • executeInsideComponentOperation

      public void executeInsideComponentOperation(OAtomicOperation atomicOperation, ODurableComponent component, TxConsumer consumer)
    • executeInsideComponentOperation

      public void executeInsideComponentOperation(OAtomicOperation atomicOperation, String lockName, TxConsumer consumer)
    • tryExecuteInsideComponentOperation

      public boolean tryExecuteInsideComponentOperation(OAtomicOperation atomicOperation, ODurableComponent component, TxConsumer consumer)
    • calculateInsideComponentOperation

      public <T> T calculateInsideComponentOperation(OAtomicOperation atomicOperation, ODurableComponent component, TxFunction<T> function)
    • calculateInsideComponentOperation

      public <T> T calculateInsideComponentOperation(OAtomicOperation atomicOperation, String lockName, TxFunction<T> function)
    • freezeComponentOperations

      public long freezeComponentOperations()
    • releaseComponentOperations

      public void releaseComponentOperations(long freezeId)
    • alarmClearOfAtomicOperation

      public void alarmClearOfAtomicOperation()
    • freezeAtomicOperations

      public long freezeAtomicOperations(Class<? extends OException> exceptionClass, String message)
    • releaseAtomicOperations

      public void releaseAtomicOperations(long id)
    • getCurrentOperation

      public final OAtomicOperation getCurrentOperation()
    • endAtomicOperation

      public void endAtomicOperation(Throwable error) throws IOException
      Ends the current atomic operation on this manager.
      Throws:
      IOException
    • ensureThatComponentsUnlocked

      public void ensureThatComponentsUnlocked()
    • acquireExclusiveLockTillOperationComplete

      public void acquireExclusiveLockTillOperationComplete(OAtomicOperation operation, String lockName)
      Acquires exclusive lock with the given lock name in the given atomic operation.
      Parameters:
      operation - the atomic operation to acquire the lock in.
      lockName - the lock name to acquire.
    • acquireExclusiveLockTillOperationComplete

      public void acquireExclusiveLockTillOperationComplete(ODurableComponent durableComponent)
      Acquires exclusive lock in the active atomic operation running on the current thread for the durableComponent.
    • acquireReadLock

      public void acquireReadLock(ODurableComponent durableComponent)
    • releaseReadLock

      public void releaseReadLock(ODurableComponent durableComponent)