List of usage examples for org.apache.cassandra.db.compaction OperationType COMPACTION
OperationType COMPACTION
To view the source code for org.apache.cassandra.db.compaction OperationType COMPACTION.
Click Source Link
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; }