protected void flushDbOperationManager() {
    // obtain totally ordered operation list from operation manager
    List<DbOperation> operationsToFlush = dbOperationManager.calculateFlush();
    LOG.databaseFlushSummary(operationsToFlush);

    // execute the flush
    for (DbOperation dbOperation : operationsToFlush) {
      try {
        persistenceSession.executeDbOperation(dbOperation);
      } catch (Exception e) {
        throw LOG.flushDbOperationException(operationsToFlush, dbOperation, e);
      }
      if (dbOperation.isFailed()) {
        handleOptimisticLockingException(dbOperation);
      }
    }
  }