core/src/main/java/com/orientechnologies/orient/core/storage/impl/local/OAbstractPaginatedStorage.java
private void checkLowDiskSpaceRequestsAndReadOnlyConditions() {
    if (transaction.get() != null) {
      return;
    }

    if (lowDiskSpace != null) {
      if (checkpointInProgress.compareAndSet(false, true)) {
        try {
          if (writeCache.checkLowDiskSpace()) {

            OLogManager.instance().error(this, "Not enough disk space, force sync will be called", null);
            synch();

            if (writeCache.checkLowDiskSpace()) {
              throw new OLowDiskSpaceException("Error occurred while executing a write operation to database '" + name
                  + "' due to limited free space on the disk (" + (lowDiskSpace.freeSpace / (1024 * 1024))
                  + " MB). The database is now working in read-only mode."
                  + " Please close the database (or stop OrientDB), make room on your hard drive and then reopen the database. "
                  + "The minimal required space is " + (lowDiskSpace.requiredSpace / (1024 * 1024)) + " MB. "
                  + "Required space is now set to " + configuration.getContextConfiguration()
                  .getValueAsInteger(OGlobalConfiguration.DISK_CACHE_FREE_SPACE_LIMIT)
                  + "MB (you can change it by setting parameter " + OGlobalConfiguration.DISK_CACHE_FREE_SPACE_LIMIT.getKey()
                  + ") .");
            } else {
              lowDiskSpace = null;
            }
          } else {
            lowDiskSpace = null;
          }
        } catch (final IOException e) {
          throw OException.wrapException(new OStorageException("Error during low disk space handling"), e);
        } finally {
          checkpointInProgress.set(false);
        }
      }
    }

    checkReadOnlyConditions();
  }
private void checkLowDiskSpaceRequestsAndReadOnlyConditions() {
    if (transaction.get() != null) {
      return;
    }

    if (lowDiskSpace != null) {
      if (checkpointInProgress.compareAndSet(false, true)) {
        try {
          if (writeCache.checkLowDiskSpace()) {

            OLogManager.instance().error(this, "Not enough disk space, force sync will be called", null);
            synch();

            if (writeCache.checkLowDiskSpace()) {
              throw new OLowDiskSpaceException("Error occurred while executing a write operation to database '" + name
                  + "' due to limited free space on the disk (" + (lowDiskSpace.freeSpace / (1024 * 1024))
                  + " MB). The database is now working in read-only mode."
                  + " Please close the database (or stop OrientDB), make room on your hard drive and then reopen the database. "
                  + "The minimal required space is " + (lowDiskSpace.requiredSpace / (1024 * 1024)) + " MB. "
                  + "Required space is now set to " + configuration.getContextConfiguration()
                  .getValueAsInteger(OGlobalConfiguration.DISK_CACHE_FREE_SPACE_LIMIT)
                  + "MB (you can change it by setting parameter " + OGlobalConfiguration.DISK_CACHE_FREE_SPACE_LIMIT.getKey()
                  + ") .");
            } else {
              lowDiskSpace = null;
            }
          } else {
            lowDiskSpace = null;
          }
        } catch (final IOException e) {
          throw OException.wrapException(new OStorageException("Error during low disk space handling"), e);
        } finally {
          checkpointInProgress.set(false);
        }
      }
    }

    checkReadOnlyConditions();
  }
private void checkLowDiskSpaceRequestsAndReadOnlyConditions ( ) { if ( transaction . get ( ) != null ) { return ; } if ( lowDiskSpace != null ) { if ( checkpointInProgress . compareAndSet ( false , true ) ) { try { if ( writeCache . checkLowDiskSpace ( ) ) { OLogManager . instance ( ) . error ( this , "Not enough disk space, force sync will be called" , null ) ; synch ( ) ; if ( writeCache . checkLowDiskSpace ( ) ) { throw new OLowDiskSpaceException ( "Error occurred while executing a write operation to database '" + name + "' due to limited free space on the disk (" + ( lowDiskSpace . freeSpace / ( 1024 * 1024 ) ) + " MB). The database is now working in read-only mode." + " Please close the database (or stop OrientDB), make room on your hard drive and then reopen the database. " + "The minimal required space is " + ( lowDiskSpace . requiredSpace / ( 1024 * 1024 ) ) + " MB. " + "Required space is now set to " + configuration . getContextConfiguration ( ) . getValueAsInteger ( OGlobalConfiguration . DISK_CACHE_FREE_SPACE_LIMIT ) + "MB (you can change it by setting parameter " + OGlobalConfiguration . DISK_CACHE_FREE_SPACE_LIMIT . getKey ( ) + ") ." ) ; } else { lowDiskSpace = null ; } } else { lowDiskSpace = null ; } } catch ( final IOException e ) { throw OException . wrapException ( new OStorageException ( "Error during low disk space handling" ) , e ) ; } finally { checkpointInProgress . set ( false ) ; } } } checkReadOnlyConditions ( ) ; }
Method which is called before any data modification operation to check alarm conditions such as: <ol> <li>Low disk space</li>
<li>Exception during data flush in background threads</li> <li>Broken files</li> </ol>
If one of those conditions are satisfied data modification operation is aborted and storage is switched in "read only" mode.
Method which is called before any data modification operation to check alarm conditions such as : <ol > <li > Low disk space< / li > <li > Exception during data flush in background threads< / li > <li > Broken files< / li > < / ol > If one of those conditions are satisfied data modification operation is aborted and storage is switched in read only mode .