Example usage for org.apache.cassandra.db.compaction CompactionTask CompactionTask

List of usage examples for org.apache.cassandra.db.compaction CompactionTask CompactionTask

Introduction

In this page you can find the example usage for org.apache.cassandra.db.compaction CompactionTask CompactionTask.

Prototype

public CompactionTask(ColumnFamilyStore cfs, LifecycleTransaction txn, int gcBefore) 

Source Link

Usage

From source file:com.jeffjirsa.cassandra.db.compaction.SizeTieredCompactionStrategy.java

License:Apache License

@SuppressWarnings("resource")
public synchronized AbstractCompactionTask getNextBackgroundTask(int gcBefore) {
    while (true) {
        List<SSTableReader> hottestBucket = getNextBackgroundSSTables(gcBefore);

        if (hottestBucket.isEmpty())
            return null;

        LifecycleTransaction transaction = cfs.getTracker().tryModify(hottestBucket, OperationType.COMPACTION);
        if (transaction != null)
            return new CompactionTask(cfs, transaction, gcBefore);
    }/*from  ww w  .  j ava  2  s  . c om*/
}

From source file:com.jeffjirsa.cassandra.db.compaction.SizeTieredCompactionStrategy.java

License:Apache License

@SuppressWarnings("resource")
public Collection<AbstractCompactionTask> getMaximalTask(final int gcBefore, boolean splitOutput) {
    Iterable<SSTableReader> filteredSSTables = filterSuspectSSTables(sstables);
    if (Iterables.isEmpty(filteredSSTables))
        return null;
    LifecycleTransaction txn = cfs.getTracker().tryModify(filteredSSTables, OperationType.COMPACTION);
    if (txn == null)
        return null;
    if (splitOutput)
        return Arrays.<AbstractCompactionTask>asList(new SplittingCompactionTask(cfs, txn, gcBefore));
    return Arrays.<AbstractCompactionTask>asList(new CompactionTask(cfs, txn, gcBefore));
}

From source file:com.jeffjirsa.cassandra.db.compaction.SizeTieredCompactionStrategy.java

License:Apache License

@SuppressWarnings("resource")
public AbstractCompactionTask getUserDefinedTask(Collection<SSTableReader> sstables, final int gcBefore) {
    assert !sstables.isEmpty(); // checked for by CM.submitUserDefined

    LifecycleTransaction transaction = cfs.getTracker().tryModify(sstables, OperationType.COMPACTION);
    if (transaction == null) {
        logger.trace(/*from  ww  w .  j a va 2s .  c  o  m*/
                "Unable to mark {} for compaction; probably a background compaction got to it first.  You can disable background compactions temporarily if this is a problem",
                sstables);
        return null;
    }

    return new CompactionTask(cfs, transaction, gcBefore).setUserDefined(true);
}

From source file:com.jeffjirsa.cassandra.db.compaction.TimeWindowCompactionStrategy.java

License:Apache License

@Override
public synchronized AbstractCompactionTask getNextBackgroundTask(int gcBefore) {
    while (true) {
        List<SSTableReader> latestBucket = getNextBackgroundSSTables(gcBefore);

        if (latestBucket.isEmpty())
            return null;

        LifecycleTransaction modifier = cfs.getTracker().tryModify(latestBucket, OperationType.COMPACTION);
        if (modifier != null && !options.enableCleanup)
            return new CompactionTask(cfs, modifier, gcBefore);
        else if (modifier != null && options.enableCleanup)
            return new CleaningTimeWindowCompactionTask(cfs, modifier, gcBefore);
    }/*from w  ww  .  j a  v a2s  . com*/
}

From source file:com.jeffjirsa.cassandra.db.compaction.TimeWindowCompactionStrategy.java

License:Apache License

@Override
public synchronized Collection<AbstractCompactionTask> getMaximalTask(int gcBefore, boolean splitOutput) {
    Iterable<SSTableReader> filteredSSTables = filterSuspectSSTables(sstables);
    if (Iterables.isEmpty(filteredSSTables))
        return null;
    LifecycleTransaction txn = cfs.getTracker().tryModify(filteredSSTables, OperationType.COMPACTION);
    if (txn == null)
        return null;
    return Collections.<AbstractCompactionTask>singleton(new CompactionTask(cfs, txn, gcBefore));
}

From source file:com.jeffjirsa.cassandra.db.compaction.TimeWindowCompactionStrategy.java

License:Apache License

@Override
public synchronized AbstractCompactionTask getUserDefinedTask(Collection<SSTableReader> sstables,
        int gcBefore) {
    assert !sstables.isEmpty(); // checked for by CM.submitUserDefined

    LifecycleTransaction modifier = cfs.getTracker().tryModify(sstables, OperationType.COMPACTION);
    if (modifier == null) {
        logger.debug(//ww w . jav  a 2 s  .c o  m
                "Unable to mark {} for compaction; probably a background compaction got to it first.  You can disable background compactions temporarily if this is a problem",
                sstables);
        return null;
    }

    return new CompactionTask(cfs, modifier, gcBefore).setUserDefined(true);
}