blob: 9ed38725719060ce934ee4c74632abfd9efa09f3 [file] [log] [blame]
package edu.uci.ics.hyracks.storage.am.lsm.common.impls;
import edu.uci.ics.hyracks.api.context.IHyracksTaskContext;
import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
import edu.uci.ics.hyracks.storage.am.common.api.IModificationOperationCallback;
import edu.uci.ics.hyracks.storage.am.common.api.ISearchOperationCallback;
import edu.uci.ics.hyracks.storage.am.lsm.common.api.ILSMIndex;
import edu.uci.ics.hyracks.storage.am.lsm.common.api.ILSMOperationTracker;
import edu.uci.ics.hyracks.storage.am.lsm.common.api.ILSMOperationTrackerProvider;
/**
* Operation tracker that does nothing.
* WARNING: This op tracker should only be used for specific testing purposes.
* It is assumed than an op tracker cooperates with an lsm index to synchronize flushes with
* regular operations, and this implementation does no such tracking at all.
*/
public class NoOpOperationTrackerProvider implements ILSMOperationTrackerProvider {
private static final long serialVersionUID = 1L;
public static NoOpOperationTrackerProvider INSTANCE = new NoOpOperationTrackerProvider();
@Override
public ILSMOperationTracker getOperationTracker(IHyracksTaskContext ctx) {
return new ILSMOperationTracker() {
@Override
public void completeOperation(ILSMIndex index, LSMOperationType opType,
ISearchOperationCallback searchCallback, IModificationOperationCallback modificationCallback)
throws HyracksDataException {
// Do nothing.
}
@Override
public void beforeOperation(ILSMIndex index, LSMOperationType opType,
ISearchOperationCallback searchCallback, IModificationOperationCallback modificationCallback)
throws HyracksDataException {
}
@Override
public void afterOperation(ILSMIndex index, LSMOperationType opType,
ISearchOperationCallback searchCallback, IModificationOperationCallback modificationCallback)
throws HyracksDataException {
// Do nothing.
}
};
}
// Enforce singleton.
private NoOpOperationTrackerProvider() {
}
};