Example usage for org.apache.cassandra.db.compaction OperationType COMPACTION

List of usage examples for org.apache.cassandra.db.compaction OperationType COMPACTION

Introduction

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

Prototype

OperationType COMPACTION

To view the source code for org.apache.cassandra.db.compaction OperationType COMPACTION.

Click Source Link

Document

Each modification here should be also applied to org.apache.cassandra.tools.nodetool.Stop#compactionType

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);
    }// ww w .  jav  a 2 s . co m
}

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(/*  w  ww  . j a  v a 2 s.  c  om*/
                "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 w w  .  j  av  a2 s  . c  o m
}

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(/*w  w w  .  j  a v  a2 s  . c om*/
                "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);
}

From source file:org.wso2.carbon.cassandra.cluster.mgt.query.ClusterMBeanServiceHandler.java

License:Open Source License

public CompactionStats getCompactionStats() throws ClusterDataAdminException {
    clusterStorageMBeanService = ClusterMBeanProxy.getClusterStorageMBeanService();
    clusterCompactionManagerMBeanService = ClusterMBeanProxy.getClusterCompactionManagerMBeanService();
    CompactionProperties[] compactionProperties;
    CompactionStats compactionStats = new CompactionStats();
    int compactionThroughput = clusterStorageMBeanService.getCompactionThroughput();
    compactionStats.setPendingTasks(clusterCompactionManagerMBeanService.getPendingTasks());
    long remainingBytes = 0;
    if (clusterCompactionManagerMBeanService.getCompactions().size() > 0) {
        int count = 0;
        compactionProperties = new CompactionProperties[clusterCompactionManagerMBeanService.getCompactions()
                .size()];//from www . ja  v  a  2s . c o m
        for (Map<String, String> c : clusterCompactionManagerMBeanService.getCompactions()) {
            CompactionProperties compactionProperty = new CompactionProperties();
            String percentComplete = new Long(c.get("totalBytes")) == 0 ? "n/a"
                    : new DecimalFormat("0.00").format(
                            (double) new Long(c.get("bytesComplete")) / new Long(c.get("totalBytes")) * 100)
                            + "%";
            compactionProperty.setCompactionType(c.get("taskType"));
            compactionProperty.setKeyspace(c.get("keyspace"));
            compactionProperty.setColumFamily(c.get("columnfamily"));
            compactionProperty.setBytesCompacted(c.get("bytesComplete"));
            compactionProperty.setBytesTotal(c.get("totalBytes"));
            compactionProperty.setProgress(percentComplete);
            compactionProperties[count] = compactionProperty;
            count++;
            if (c.get("taskType").equals(OperationType.COMPACTION.toString()))
                remainingBytes += (new Long(c.get("totalBytes")) - new Long(c.get("bytesComplete")));
        }
    } else {
        compactionProperties = null;
    }

    long remainingTimeInSecs = compactionThroughput == 0 || remainingBytes == 0 ? -1
            : (remainingBytes) / (1024L * 1024L * compactionThroughput);
    String remainingTime = remainingTimeInSecs < 0 ? "n/a"
            : String.format("%dh%02dm%02ds", remainingTimeInSecs / 3600, (remainingTimeInSecs % 3600) / 60,
                    (remainingTimeInSecs % 60));
    compactionStats.setActiveCompactionRemainingTime(remainingTime);
    compactionStats.setCompactionProperties(compactionProperties);
    return compactionStats;
}