Search in sources :

Example 21 with OperationStatus

use of com.sleepycat.je.OperationStatus in project crawler4j by yasserg.

the class InProcessPagesDB method removeURL.

public boolean removeURL(WebURL webUrl) {
    synchronized (mutex) {
        DatabaseEntry key = getDatabaseEntryKey(webUrl);
        DatabaseEntry value = new DatabaseEntry();
        Transaction txn = beginTransaction();
        try (Cursor cursor = openCursor(txn)) {
            OperationStatus result = cursor.getSearchKey(key, value, null);
            if (result == OperationStatus.SUCCESS) {
                result = cursor.delete();
                if (result == OperationStatus.SUCCESS) {
                    return true;
                }
            }
        } finally {
            commit(txn);
        }
    }
    return false;
}
Also used : Transaction(com.sleepycat.je.Transaction) OperationStatus(com.sleepycat.je.OperationStatus) DatabaseEntry(com.sleepycat.je.DatabaseEntry) Cursor(com.sleepycat.je.Cursor)

Example 22 with OperationStatus

use of com.sleepycat.je.OperationStatus in project GeoGig by boundlessgeo.

the class JEObjectDatabase method lookUpInternal.

@Override
protected List<ObjectId> lookUpInternal(final byte[] partialId) {
    checkOpen();
    DatabaseEntry key;
    {
        byte[] keyData = partialId.clone();
        key = new DatabaseEntry(keyData);
    }
    DatabaseEntry data = new DatabaseEntry();
    // do not retrieve data
    data.setPartial(0, 0, true);
    List<ObjectId> matches;
    CursorConfig cursorConfig = new CursorConfig();
    cursorConfig.setReadUncommitted(true);
    Transaction transaction = null;
    Cursor cursor = objectDb.openCursor(transaction, cursorConfig);
    try {
        // position cursor at the first closest key to the one looked up
        OperationStatus status = cursor.getSearchKeyRange(key, data, LockMode.READ_UNCOMMITTED);
        if (SUCCESS.equals(status)) {
            matches = new ArrayList<ObjectId>(2);
            final byte[] compKey = new byte[partialId.length];
            while (SUCCESS.equals(status)) {
                byte[] keyData = key.getData();
                System.arraycopy(keyData, 0, compKey, 0, compKey.length);
                if (Arrays.equals(partialId, compKey)) {
                    matches.add(new ObjectId(keyData));
                } else {
                    break;
                }
                status = cursor.getNext(key, data, LockMode.READ_UNCOMMITTED);
            }
        } else {
            matches = Collections.emptyList();
        }
        return matches;
    } finally {
        cursor.close();
    }
}
Also used : Transaction(com.sleepycat.je.Transaction) ObjectId(org.locationtech.geogig.api.ObjectId) OperationStatus(com.sleepycat.je.OperationStatus) DatabaseEntry(com.sleepycat.je.DatabaseEntry) CursorConfig(com.sleepycat.je.CursorConfig) Cursor(com.sleepycat.je.Cursor)

Example 23 with OperationStatus

use of com.sleepycat.je.OperationStatus in project GeoGig by boundlessgeo.

the class JEObjectDatabase method delete.

@Override
public boolean delete(final ObjectId id) {
    checkWritable();
    final byte[] rawKey = id.getRawValue();
    final DatabaseEntry key = new DatabaseEntry(rawKey);
    final Transaction transaction = newTransaction();
    final OperationStatus status;
    try {
        status = objectDb.delete(transaction, key);
        commit(transaction);
    } catch (RuntimeException e) {
        abort(transaction);
        throw e;
    }
    return SUCCESS.equals(status);
}
Also used : Transaction(com.sleepycat.je.Transaction) OperationStatus(com.sleepycat.je.OperationStatus) DatabaseEntry(com.sleepycat.je.DatabaseEntry)

Example 24 with OperationStatus

use of com.sleepycat.je.OperationStatus in project GeoGig by boundlessgeo.

the class JEObjectDatabase method putInternal.

@Override
protected boolean putInternal(final ObjectId id, final byte[] rawData) {
    checkWritable();
    final Transaction transaction = newTransaction();
    final OperationStatus status;
    try {
        status = putInternal(id, rawData, transaction);
        commit(transaction);
    } catch (RuntimeException e) {
        abort(transaction);
        throw e;
    }
    final boolean didntExist = SUCCESS.equals(status);
    return didntExist;
}
Also used : Transaction(com.sleepycat.je.Transaction) OperationStatus(com.sleepycat.je.OperationStatus)

Aggregations

OperationStatus (com.sleepycat.je.OperationStatus)24 DatabaseEntry (com.sleepycat.je.DatabaseEntry)23 Transaction (com.sleepycat.je.Transaction)13 Versioned (voldemort.versioning.Versioned)9 DatabaseException (com.sleepycat.je.DatabaseException)6 Cursor (com.sleepycat.je.Cursor)5 AsyncOperationStatus (voldemort.server.protocol.admin.AsyncOperationStatus)5 PersistenceFailureException (voldemort.store.PersistenceFailureException)5 ArrayList (java.util.ArrayList)4 CursorConfig (com.sleepycat.je.CursorConfig)2 LockMode (com.sleepycat.je.LockMode)2 ObjectId (org.locationtech.geogig.api.ObjectId)2 IdentitySerializer (voldemort.serialization.IdentitySerializer)2 VersionedSerializer (voldemort.serialization.VersionedSerializer)2 FnvHashFunction (voldemort.utils.FnvHashFunction)2 HashFunction (voldemort.utils.HashFunction)2 VectorClock (voldemort.versioning.VectorClock)2 EnvironmentLockedException (com.sleepycat.je.EnvironmentLockedException)1 DuplicateEntryException (com.sleepycat.je.tree.DuplicateEntryException)1 WebURL (edu.uci.ics.crawler4j.url.WebURL)1