UNPKG

cassandra-server

Version:

A thin Javascript wrapper around Apache Cassandra to provide out of the box server support

857 lines (850 loc) 43.8 kB
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!-- NewPage --> <html lang="en"> <head> <!-- Generated by javadoc (version 1.7.0_67) on Sun Sep 07 15:29:30 CEST 2014 --> <title>AbstractCompactionStrategy (apache-cassandra API)</title> <meta name="date" content="2014-09-07"> <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style"> </head> <body> <script type="text/javascript"><!-- if (location.href.indexOf('is-external=true') == -1) { parent.document.title="AbstractCompactionStrategy (apache-cassandra API)"; } //--> </script> <noscript> <div>JavaScript is disabled on your browser.</div> </noscript> <!-- ========= START OF TOP NAVBAR ======= --> <div class="topNav"><a name="navbar_top"> <!-- --> </a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow"> <!-- --> </a> <ul class="navList" title="Navigation"> <li><a href="../../../../../overview-summary.html">Overview</a></li> <li><a href="package-summary.html">Package</a></li> <li class="navBarCell1Rev">Class</li> <li><a href="class-use/AbstractCompactionStrategy.html">Use</a></li> <li><a href="package-tree.html">Tree</a></li> <li><a href="../../../../../deprecated-list.html">Deprecated</a></li> <li><a href="../../../../../index-all.html">Index</a></li> <li><a href="../../../../../help-doc.html">Help</a></li> </ul> </div> <div class="subNav"> <ul class="navList"> <li><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionIterable.html" title="class in org.apache.cassandra.db.compaction"><span class="strong">Prev Class</span></a></li> <li><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionTask.html" title="class in org.apache.cassandra.db.compaction"><span class="strong">Next Class</span></a></li> </ul> <ul class="navList"> <li><a href="../../../../../index.html?org/apache/cassandra/db/compaction/AbstractCompactionStrategy.html" target="_top">Frames</a></li> <li><a href="AbstractCompactionStrategy.html" target="_top">No Frames</a></li> </ul> <ul class="navList" id="allclasses_navbar_top"> <li><a href="../../../../../allclasses-noframe.html">All Classes</a></li> </ul> <div> <script type="text/javascript"><!-- allClassesLink = document.getElementById("allclasses_navbar_top"); if(window==top) { allClassesLink.style.display = "block"; } else { allClassesLink.style.display = "none"; } //--> </script> </div> <div> <ul class="subNavList"> <li>Summary:&nbsp;</li> <li>Nested&nbsp;|&nbsp;</li> <li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li> <li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li> <li><a href="#method_summary">Method</a></li> </ul> <ul class="subNavList"> <li>Detail:&nbsp;</li> <li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li> <li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li> <li><a href="#method_detail">Method</a></li> </ul> </div> <a name="skip-navbar_top"> <!-- --> </a></div> <!-- ========= END OF TOP NAVBAR ========= --> <!-- ======== START OF CLASS DATA ======== --> <div class="header"> <div class="subTitle">org.apache.cassandra.db.compaction</div> <h2 title="Class AbstractCompactionStrategy" class="title">Class AbstractCompactionStrategy</h2> </div> <div class="contentContainer"> <ul class="inheritance"> <li>java.lang.Object</li> <li> <ul class="inheritance"> <li>org.apache.cassandra.db.compaction.AbstractCompactionStrategy</li> </ul> </li> </ul> <div class="description"> <ul class="blockList"> <li class="blockList"> <dl> <dt>Direct Known Subclasses:</dt> <dd><a href="../../../../../org/apache/cassandra/db/compaction/LeveledCompactionStrategy.html" title="class in org.apache.cassandra.db.compaction">LeveledCompactionStrategy</a>, <a href="../../../../../org/apache/cassandra/db/compaction/SizeTieredCompactionStrategy.html" title="class in org.apache.cassandra.db.compaction">SizeTieredCompactionStrategy</a></dd> </dl> <hr> <br> <pre>public abstract class <span class="strong">AbstractCompactionStrategy</span> extends java.lang.Object</pre> <div class="block">Pluggable compaction strategy determines how SSTables get merged. There are two main goals: - perform background compaction constantly as needed; this typically makes a tradeoff between i/o done by compaction, and merging done at read time. - perform a full (maximum possible) compaction if requested by the user</div> </li> </ul> </div> <div class="summary"> <ul class="blockList"> <li class="blockList"> <!-- =========== FIELD SUMMARY =========== --> <ul class="blockList"> <li class="blockList"><a name="field_summary"> <!-- --> </a> <h3>Field Summary</h3> <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> <caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption> <tr> <th class="colFirst" scope="col">Modifier and Type</th> <th class="colLast" scope="col">Field and Description</th> </tr> <tr class="altColor"> <td class="colFirst"><code>protected <a href="../../../../../org/apache/cassandra/db/ColumnFamilyStore.html" title="class in org.apache.cassandra.db">ColumnFamilyStore</a></code></td> <td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionStrategy.html#cfs">cfs</a></strong></code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>protected static java.lang.String</code></td> <td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionStrategy.html#COMPACTION_ENABLED">COMPACTION_ENABLED</a></strong></code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>protected static long</code></td> <td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionStrategy.html#DEFAULT_TOMBSTONE_COMPACTION_INTERVAL">DEFAULT_TOMBSTONE_COMPACTION_INTERVAL</a></strong></code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>protected static float</code></td> <td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionStrategy.html#DEFAULT_TOMBSTONE_THRESHOLD">DEFAULT_TOMBSTONE_THRESHOLD</a></strong></code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>protected static boolean</code></td> <td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionStrategy.html#DEFAULT_UNCHECKED_TOMBSTONE_COMPACTION_OPTION">DEFAULT_UNCHECKED_TOMBSTONE_COMPACTION_OPTION</a></strong></code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>protected boolean</code></td> <td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionStrategy.html#enabled">enabled</a></strong></code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>protected boolean</code></td> <td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionStrategy.html#isActive">isActive</a></strong></code> <div class="block">pause/resume/getNextBackgroundTask must synchronize.</div> </td> </tr> <tr class="rowColor"> <td class="colFirst"><code>java.util.Map&lt;java.lang.String,java.lang.String&gt;</code></td> <td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionStrategy.html#options">options</a></strong></code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>protected static java.lang.String</code></td> <td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionStrategy.html#TOMBSTONE_COMPACTION_INTERVAL_OPTION">TOMBSTONE_COMPACTION_INTERVAL_OPTION</a></strong></code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>protected static java.lang.String</code></td> <td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionStrategy.html#TOMBSTONE_THRESHOLD_OPTION">TOMBSTONE_THRESHOLD_OPTION</a></strong></code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>protected long</code></td> <td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionStrategy.html#tombstoneCompactionInterval">tombstoneCompactionInterval</a></strong></code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>protected float</code></td> <td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionStrategy.html#tombstoneThreshold">tombstoneThreshold</a></strong></code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>protected static java.lang.String</code></td> <td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionStrategy.html#UNCHECKED_TOMBSTONE_COMPACTION_OPTION">UNCHECKED_TOMBSTONE_COMPACTION_OPTION</a></strong></code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>protected boolean</code></td> <td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionStrategy.html#uncheckedTombstoneCompaction">uncheckedTombstoneCompaction</a></strong></code>&nbsp;</td> </tr> </table> </li> </ul> <!-- ======== CONSTRUCTOR SUMMARY ======== --> <ul class="blockList"> <li class="blockList"><a name="constructor_summary"> <!-- --> </a> <h3>Constructor Summary</h3> <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption> <tr> <th class="colFirst" scope="col">Modifier</th> <th class="colLast" scope="col">Constructor and Description</th> </tr> <tr class="altColor"> <td class="colFirst"><code>protected </code></td> <td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionStrategy.html#AbstractCompactionStrategy(org.apache.cassandra.db.ColumnFamilyStore,%20java.util.Map)">AbstractCompactionStrategy</a></strong>(<a href="../../../../../org/apache/cassandra/db/ColumnFamilyStore.html" title="class in org.apache.cassandra.db">ColumnFamilyStore</a>&nbsp;cfs, java.util.Map&lt;java.lang.String,java.lang.String&gt;&nbsp;options)</code>&nbsp;</td> </tr> </table> </li> </ul> <!-- ========== METHOD SUMMARY =========== --> <ul class="blockList"> <li class="blockList"><a name="method_summary"> <!-- --> </a> <h3>Method Summary</h3> <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> <caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption> <tr> <th class="colFirst" scope="col">Modifier and Type</th> <th class="colLast" scope="col">Method and Description</th> </tr> <tr class="altColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionStrategy.html#disable()">disable</a></strong>()</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionStrategy.html#enable()">enable</a></strong>()</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>java.util.List&lt;<a href="../../../../../org/apache/cassandra/io/sstable/SSTableReader.html" title="class in org.apache.cassandra.io.sstable">SSTableReader</a>&gt;</code></td> <td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionStrategy.html#filterSSTablesForReads(java.util.List)">filterSSTablesForReads</a></strong>(java.util.List&lt;<a href="../../../../../org/apache/cassandra/io/sstable/SSTableReader.html" title="class in org.apache.cassandra.io.sstable">SSTableReader</a>&gt;&nbsp;sstables)</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>static java.lang.Iterable&lt;<a href="../../../../../org/apache/cassandra/io/sstable/SSTableReader.html" title="class in org.apache.cassandra.io.sstable">SSTableReader</a>&gt;</code></td> <td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionStrategy.html#filterSuspectSSTables(java.lang.Iterable)">filterSuspectSSTables</a></strong>(java.lang.Iterable&lt;<a href="../../../../../org/apache/cassandra/io/sstable/SSTableReader.html" title="class in org.apache.cassandra.io.sstable">SSTableReader</a>&gt;&nbsp;originalCandidates)</code> <div class="block">Filters SSTables that are to be blacklisted from the given collection</div> </td> </tr> <tr class="altColor"> <td class="colFirst"><code><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionTask.html" title="class in org.apache.cassandra.db.compaction">AbstractCompactionTask</a></code></td> <td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionStrategy.html#getCompactionTask(java.util.Collection,%20int,%20long)">getCompactionTask</a></strong>(java.util.Collection&lt;<a href="../../../../../org/apache/cassandra/io/sstable/SSTableReader.html" title="class in org.apache.cassandra.io.sstable">SSTableReader</a>&gt;&nbsp;sstables, int&nbsp;gcBefore, long&nbsp;maxSSTableBytes)</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>abstract int</code></td> <td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionStrategy.html#getEstimatedRemainingTasks()">getEstimatedRemainingTasks</a></strong>()</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>abstract java.util.Collection&lt;<a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionTask.html" title="class in org.apache.cassandra.db.compaction">AbstractCompactionTask</a>&gt;</code></td> <td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionStrategy.html#getMaximalTask(int)">getMaximalTask</a></strong>(int&nbsp;gcBefore)</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>abstract long</code></td> <td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionStrategy.html#getMaxSSTableBytes()">getMaxSSTableBytes</a></strong>()</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>long</code></td> <td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionStrategy.html#getMemtableReservedSize()">getMemtableReservedSize</a></strong>()</code> <div class="block">If not affected by MeteredFlusher (and handling flushing on its own), override to tell MF how much space to reserve for this CF, i.e., how much space to subtract from `memtable_total_space_in_mb` when deciding if other memtables should be flushed or not.</div> </td> </tr> <tr class="rowColor"> <td class="colFirst"><code>abstract <a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionTask.html" title="class in org.apache.cassandra.db.compaction">AbstractCompactionTask</a></code></td> <td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionStrategy.html#getNextBackgroundTask(int)">getNextBackgroundTask</a></strong>(int&nbsp;gcBefore)</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>java.util.List&lt;<a href="../../../../../org/apache/cassandra/db/compaction/ICompactionScanner.html" title="interface in org.apache.cassandra.db.compaction">ICompactionScanner</a>&gt;</code></td> <td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionStrategy.html#getScanners(java.util.Collection)">getScanners</a></strong>(java.util.Collection&lt;<a href="../../../../../org/apache/cassandra/io/sstable/SSTableReader.html" title="class in org.apache.cassandra.io.sstable">SSTableReader</a>&gt;&nbsp;toCompact)</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>java.util.List&lt;<a href="../../../../../org/apache/cassandra/db/compaction/ICompactionScanner.html" title="interface in org.apache.cassandra.db.compaction">ICompactionScanner</a>&gt;</code></td> <td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionStrategy.html#getScanners(java.util.Collection,%20org.apache.cassandra.dht.Range)">getScanners</a></strong>(java.util.Collection&lt;<a href="../../../../../org/apache/cassandra/io/sstable/SSTableReader.html" title="class in org.apache.cassandra.io.sstable">SSTableReader</a>&gt;&nbsp;sstables, <a href="../../../../../org/apache/cassandra/dht/Range.html" title="class in org.apache.cassandra.dht">Range</a>&lt;<a href="../../../../../org/apache/cassandra/dht/Token.html" title="class in org.apache.cassandra.dht">Token</a>&gt;&nbsp;range)</code> <div class="block">Returns a list of KeyScanners given sstables and a range on which to scan.</div> </td> </tr> <tr class="altColor"> <td class="colFirst"><code>abstract <a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionTask.html" title="class in org.apache.cassandra.db.compaction">AbstractCompactionTask</a></code></td> <td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionStrategy.html#getUserDefinedTask(java.util.Collection,%20int)">getUserDefinedTask</a></strong>(java.util.Collection&lt;<a href="../../../../../org/apache/cassandra/io/sstable/SSTableReader.html" title="class in org.apache.cassandra.io.sstable">SSTableReader</a>&gt;&nbsp;sstables, int&nbsp;gcBefore)</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>boolean</code></td> <td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionStrategy.html#isAffectedByMeteredFlusher()">isAffectedByMeteredFlusher</a></strong>()</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>boolean</code></td> <td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionStrategy.html#isEnabled()">isEnabled</a></strong>()</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionStrategy.html#pause()">pause</a></strong>()</code> <div class="block">For internal, temporary suspension of background compactions so that we can do exceptional things like truncate or major compaction</div> </td> </tr> <tr class="altColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionStrategy.html#replaceFlushed(org.apache.cassandra.db.Memtable,%20org.apache.cassandra.io.sstable.SSTableReader)">replaceFlushed</a></strong>(<a href="../../../../../org/apache/cassandra/db/Memtable.html" title="class in org.apache.cassandra.db">Memtable</a>&nbsp;memtable, <a href="../../../../../org/apache/cassandra/io/sstable/SSTableReader.html" title="class in org.apache.cassandra.io.sstable">SSTableReader</a>&nbsp;sstable)</code> <div class="block">Handle a flushed memtable.</div> </td> </tr> <tr class="rowColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionStrategy.html#resume()">resume</a></strong>()</code> <div class="block">For internal, temporary suspension of background compactions so that we can do exceptional things like truncate or major compaction</div> </td> </tr> <tr class="altColor"> <td class="colFirst"><code>boolean</code></td> <td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionStrategy.html#shouldBeEnabled()">shouldBeEnabled</a></strong>()</code>&nbsp;</td> </tr> <tr class="rowColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionStrategy.html#shutdown()">shutdown</a></strong>()</code> <div class="block">Releases any resources if this strategy is shutdown (when the CFS is reloaded after a schema change).</div> </td> </tr> <tr class="altColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionStrategy.html#startup()">startup</a></strong>()</code> <div class="block">Performs any extra initialization required</div> </td> </tr> <tr class="rowColor"> <td class="colFirst"><code>static java.util.Map&lt;java.lang.String,java.lang.String&gt;</code></td> <td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionStrategy.html#validateOptions(java.util.Map)">validateOptions</a></strong>(java.util.Map&lt;java.lang.String,java.lang.String&gt;&nbsp;options)</code>&nbsp;</td> </tr> <tr class="altColor"> <td class="colFirst"><code>protected boolean</code></td> <td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionStrategy.html#worthDroppingTombstones(org.apache.cassandra.io.sstable.SSTableReader,%20int)">worthDroppingTombstones</a></strong>(<a href="../../../../../org/apache/cassandra/io/sstable/SSTableReader.html" title="class in org.apache.cassandra.io.sstable">SSTableReader</a>&nbsp;sstable, int&nbsp;gcBefore)</code> <div class="block">Check if given sstable is worth dropping tombstones at gcBefore.</div> </td> </tr> </table> <ul class="blockList"> <li class="blockList"><a name="methods_inherited_from_class_java.lang.Object"> <!-- --> </a> <h3>Methods inherited from class&nbsp;java.lang.Object</h3> <code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li> </ul> </li> </ul> </li> </ul> </div> <div class="details"> <ul class="blockList"> <li class="blockList"> <!-- ============ FIELD DETAIL =========== --> <ul class="blockList"> <li class="blockList"><a name="field_detail"> <!-- --> </a> <h3>Field Detail</h3> <a name="DEFAULT_TOMBSTONE_THRESHOLD"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>DEFAULT_TOMBSTONE_THRESHOLD</h4> <pre>protected static final&nbsp;float DEFAULT_TOMBSTONE_THRESHOLD</pre> <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../constant-values.html#org.apache.cassandra.db.compaction.AbstractCompactionStrategy.DEFAULT_TOMBSTONE_THRESHOLD">Constant Field Values</a></dd></dl> </li> </ul> <a name="DEFAULT_TOMBSTONE_COMPACTION_INTERVAL"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>DEFAULT_TOMBSTONE_COMPACTION_INTERVAL</h4> <pre>protected static final&nbsp;long DEFAULT_TOMBSTONE_COMPACTION_INTERVAL</pre> <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../constant-values.html#org.apache.cassandra.db.compaction.AbstractCompactionStrategy.DEFAULT_TOMBSTONE_COMPACTION_INTERVAL">Constant Field Values</a></dd></dl> </li> </ul> <a name="DEFAULT_UNCHECKED_TOMBSTONE_COMPACTION_OPTION"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>DEFAULT_UNCHECKED_TOMBSTONE_COMPACTION_OPTION</h4> <pre>protected static final&nbsp;boolean DEFAULT_UNCHECKED_TOMBSTONE_COMPACTION_OPTION</pre> <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../constant-values.html#org.apache.cassandra.db.compaction.AbstractCompactionStrategy.DEFAULT_UNCHECKED_TOMBSTONE_COMPACTION_OPTION">Constant Field Values</a></dd></dl> </li> </ul> <a name="TOMBSTONE_THRESHOLD_OPTION"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>TOMBSTONE_THRESHOLD_OPTION</h4> <pre>protected static final&nbsp;java.lang.String TOMBSTONE_THRESHOLD_OPTION</pre> <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../constant-values.html#org.apache.cassandra.db.compaction.AbstractCompactionStrategy.TOMBSTONE_THRESHOLD_OPTION">Constant Field Values</a></dd></dl> </li> </ul> <a name="TOMBSTONE_COMPACTION_INTERVAL_OPTION"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>TOMBSTONE_COMPACTION_INTERVAL_OPTION</h4> <pre>protected static final&nbsp;java.lang.String TOMBSTONE_COMPACTION_INTERVAL_OPTION</pre> <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../constant-values.html#org.apache.cassandra.db.compaction.AbstractCompactionStrategy.TOMBSTONE_COMPACTION_INTERVAL_OPTION">Constant Field Values</a></dd></dl> </li> </ul> <a name="UNCHECKED_TOMBSTONE_COMPACTION_OPTION"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>UNCHECKED_TOMBSTONE_COMPACTION_OPTION</h4> <pre>protected static final&nbsp;java.lang.String UNCHECKED_TOMBSTONE_COMPACTION_OPTION</pre> <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../constant-values.html#org.apache.cassandra.db.compaction.AbstractCompactionStrategy.UNCHECKED_TOMBSTONE_COMPACTION_OPTION">Constant Field Values</a></dd></dl> </li> </ul> <a name="COMPACTION_ENABLED"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>COMPACTION_ENABLED</h4> <pre>protected static final&nbsp;java.lang.String COMPACTION_ENABLED</pre> <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../constant-values.html#org.apache.cassandra.db.compaction.AbstractCompactionStrategy.COMPACTION_ENABLED">Constant Field Values</a></dd></dl> </li> </ul> <a name="options"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>options</h4> <pre>public final&nbsp;java.util.Map&lt;java.lang.String,java.lang.String&gt; options</pre> </li> </ul> <a name="cfs"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>cfs</h4> <pre>protected final&nbsp;<a href="../../../../../org/apache/cassandra/db/ColumnFamilyStore.html" title="class in org.apache.cassandra.db">ColumnFamilyStore</a> cfs</pre> </li> </ul> <a name="tombstoneThreshold"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>tombstoneThreshold</h4> <pre>protected&nbsp;float tombstoneThreshold</pre> </li> </ul> <a name="tombstoneCompactionInterval"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>tombstoneCompactionInterval</h4> <pre>protected&nbsp;long tombstoneCompactionInterval</pre> </li> </ul> <a name="uncheckedTombstoneCompaction"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>uncheckedTombstoneCompaction</h4> <pre>protected&nbsp;boolean uncheckedTombstoneCompaction</pre> </li> </ul> <a name="isActive"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>isActive</h4> <pre>protected&nbsp;boolean isActive</pre> <div class="block">pause/resume/getNextBackgroundTask must synchronize. This guarantees that after pause completes, no new tasks will be generated; or put another way, pause can't run until in-progress tasks are done being created. This allows runWithCompactionsDisabled to be confident that after pausing, once in-progress tasks abort, it's safe to proceed with truncate/cleanup/etc. See CASSANDRA-3430</div> </li> </ul> <a name="enabled"> <!-- --> </a> <ul class="blockListLast"> <li class="blockList"> <h4>enabled</h4> <pre>protected volatile&nbsp;boolean enabled</pre> </li> </ul> </li> </ul> <!-- ========= CONSTRUCTOR DETAIL ======== --> <ul class="blockList"> <li class="blockList"><a name="constructor_detail"> <!-- --> </a> <h3>Constructor Detail</h3> <a name="AbstractCompactionStrategy(org.apache.cassandra.db.ColumnFamilyStore, java.util.Map)"> <!-- --> </a> <ul class="blockListLast"> <li class="blockList"> <h4>AbstractCompactionStrategy</h4> <pre>protected&nbsp;AbstractCompactionStrategy(<a href="../../../../../org/apache/cassandra/db/ColumnFamilyStore.html" title="class in org.apache.cassandra.db">ColumnFamilyStore</a>&nbsp;cfs, java.util.Map&lt;java.lang.String,java.lang.String&gt;&nbsp;options)</pre> </li> </ul> </li> </ul> <!-- ============ METHOD DETAIL ========== --> <ul class="blockList"> <li class="blockList"><a name="method_detail"> <!-- --> </a> <h3>Method Detail</h3> <a name="pause()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>pause</h4> <pre>public&nbsp;void&nbsp;pause()</pre> <div class="block">For internal, temporary suspension of background compactions so that we can do exceptional things like truncate or major compaction</div> </li> </ul> <a name="resume()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>resume</h4> <pre>public&nbsp;void&nbsp;resume()</pre> <div class="block">For internal, temporary suspension of background compactions so that we can do exceptional things like truncate or major compaction</div> </li> </ul> <a name="startup()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>startup</h4> <pre>public&nbsp;void&nbsp;startup()</pre> <div class="block">Performs any extra initialization required</div> </li> </ul> <a name="shutdown()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>shutdown</h4> <pre>public&nbsp;void&nbsp;shutdown()</pre> <div class="block">Releases any resources if this strategy is shutdown (when the CFS is reloaded after a schema change).</div> </li> </ul> <a name="getNextBackgroundTask(int)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>getNextBackgroundTask</h4> <pre>public abstract&nbsp;<a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionTask.html" title="class in org.apache.cassandra.db.compaction">AbstractCompactionTask</a>&nbsp;getNextBackgroundTask(int&nbsp;gcBefore)</pre> <dl><dt><span class="strong">Parameters:</span></dt><dd><code>gcBefore</code> - throw away tombstones older than this</dd> <dt><span class="strong">Returns:</span></dt><dd>the next background/minor compaction task to run; null if nothing to do. Is responsible for marking its sstables as compaction-pending.</dd></dl> </li> </ul> <a name="getMaximalTask(int)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>getMaximalTask</h4> <pre>public abstract&nbsp;java.util.Collection&lt;<a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionTask.html" title="class in org.apache.cassandra.db.compaction">AbstractCompactionTask</a>&gt;&nbsp;getMaximalTask(int&nbsp;gcBefore)</pre> <dl><dt><span class="strong">Parameters:</span></dt><dd><code>gcBefore</code> - throw away tombstones older than this</dd> <dt><span class="strong">Returns:</span></dt><dd>a compaction task that should be run to compact this columnfamilystore as much as possible. Null if nothing to do. Is responsible for marking its sstables as compaction-pending.</dd></dl> </li> </ul> <a name="getUserDefinedTask(java.util.Collection, int)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>getUserDefinedTask</h4> <pre>public abstract&nbsp;<a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionTask.html" title="class in org.apache.cassandra.db.compaction">AbstractCompactionTask</a>&nbsp;getUserDefinedTask(java.util.Collection&lt;<a href="../../../../../org/apache/cassandra/io/sstable/SSTableReader.html" title="class in org.apache.cassandra.io.sstable">SSTableReader</a>&gt;&nbsp;sstables, int&nbsp;gcBefore)</pre> <dl><dt><span class="strong">Parameters:</span></dt><dd><code>sstables</code> - SSTables to compact. Must be marked as compacting.</dd><dd><code>gcBefore</code> - throw away tombstones older than this</dd> <dt><span class="strong">Returns:</span></dt><dd>a compaction task corresponding to the requested sstables. Will not be null. (Will throw if user requests an invalid compaction.) Is responsible for marking its sstables as compaction-pending.</dd></dl> </li> </ul> <a name="getCompactionTask(java.util.Collection, int, long)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>getCompactionTask</h4> <pre>public&nbsp;<a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionTask.html" title="class in org.apache.cassandra.db.compaction">AbstractCompactionTask</a>&nbsp;getCompactionTask(java.util.Collection&lt;<a href="../../../../../org/apache/cassandra/io/sstable/SSTableReader.html" title="class in org.apache.cassandra.io.sstable">SSTableReader</a>&gt;&nbsp;sstables, int&nbsp;gcBefore, long&nbsp;maxSSTableBytes)</pre> </li> </ul> <a name="getEstimatedRemainingTasks()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>getEstimatedRemainingTasks</h4> <pre>public abstract&nbsp;int&nbsp;getEstimatedRemainingTasks()</pre> <dl><dt><span class="strong">Returns:</span></dt><dd>the number of background tasks estimated to still be needed for this columnfamilystore</dd></dl> </li> </ul> <a name="getMaxSSTableBytes()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>getMaxSSTableBytes</h4> <pre>public abstract&nbsp;long&nbsp;getMaxSSTableBytes()</pre> <dl><dt><span class="strong">Returns:</span></dt><dd>size in bytes of the largest sstables for this strategy</dd></dl> </li> </ul> <a name="isEnabled()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>isEnabled</h4> <pre>public&nbsp;boolean&nbsp;isEnabled()</pre> </li> </ul> <a name="enable()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>enable</h4> <pre>public&nbsp;void&nbsp;enable()</pre> </li> </ul> <a name="disable()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>disable</h4> <pre>public&nbsp;void&nbsp;disable()</pre> </li> </ul> <a name="isAffectedByMeteredFlusher()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>isAffectedByMeteredFlusher</h4> <pre>public&nbsp;boolean&nbsp;isAffectedByMeteredFlusher()</pre> <dl><dt><span class="strong">Returns:</span></dt><dd>whether or not MeteredFlusher should be able to trigger memtable flushes for this CF.</dd></dl> </li> </ul> <a name="getMemtableReservedSize()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>getMemtableReservedSize</h4> <pre>public&nbsp;long&nbsp;getMemtableReservedSize()</pre> <div class="block">If not affected by MeteredFlusher (and handling flushing on its own), override to tell MF how much space to reserve for this CF, i.e., how much space to subtract from `memtable_total_space_in_mb` when deciding if other memtables should be flushed or not.</div> </li> </ul> <a name="replaceFlushed(org.apache.cassandra.db.Memtable, org.apache.cassandra.io.sstable.SSTableReader)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>replaceFlushed</h4> <pre>public&nbsp;void&nbsp;replaceFlushed(<a href="../../../../../org/apache/cassandra/db/Memtable.html" title="class in org.apache.cassandra.db">Memtable</a>&nbsp;memtable, <a href="../../../../../org/apache/cassandra/io/sstable/SSTableReader.html" title="class in org.apache.cassandra.io.sstable">SSTableReader</a>&nbsp;sstable)</pre> <div class="block">Handle a flushed memtable.</div> <dl><dt><span class="strong">Parameters:</span></dt><dd><code>memtable</code> - the flushed memtable</dd><dd><code>sstable</code> - the written sstable. can be null if the memtable was clean.</dd></dl> </li> </ul> <a name="filterSSTablesForReads(java.util.List)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>filterSSTablesForReads</h4> <pre>public&nbsp;java.util.List&lt;<a href="../../../../../org/apache/cassandra/io/sstable/SSTableReader.html" title="class in org.apache.cassandra.io.sstable">SSTableReader</a>&gt;&nbsp;filterSSTablesForReads(java.util.List&lt;<a href="../../../../../org/apache/cassandra/io/sstable/SSTableReader.html" title="class in org.apache.cassandra.io.sstable">SSTableReader</a>&gt;&nbsp;sstables)</pre> <dl><dt><span class="strong">Returns:</span></dt><dd>a subset of the suggested sstables that are relevant for read requests.</dd></dl> </li> </ul> <a name="filterSuspectSSTables(java.lang.Iterable)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>filterSuspectSSTables</h4> <pre>public static&nbsp;java.lang.Iterable&lt;<a href="../../../../../org/apache/cassandra/io/sstable/SSTableReader.html" title="class in org.apache.cassandra.io.sstable">SSTableReader</a>&gt;&nbsp;filterSuspectSSTables(java.lang.Iterable&lt;<a href="../../../../../org/apache/cassandra/io/sstable/SSTableReader.html" title="class in org.apache.cassandra.io.sstable">SSTableReader</a>&gt;&nbsp;originalCandidates)</pre> <div class="block">Filters SSTables that are to be blacklisted from the given collection</div> <dl><dt><span class="strong">Parameters:</span></dt><dd><code>originalCandidates</code> - The collection to check for blacklisted SSTables</dd> <dt><span class="strong">Returns:</span></dt><dd>list of the SSTables with blacklisted ones filtered out</dd></dl> </li> </ul> <a name="getScanners(java.util.Collection, org.apache.cassandra.dht.Range)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>getScanners</h4> <pre>public&nbsp;java.util.List&lt;<a href="../../../../../org/apache/cassandra/db/compaction/ICompactionScanner.html" title="interface in org.apache.cassandra.db.compaction">ICompactionScanner</a>&gt;&nbsp;getScanners(java.util.Collection&lt;<a href="../../../../../org/apache/cassandra/io/sstable/SSTableReader.html" title="class in org.apache.cassandra.io.sstable">SSTableReader</a>&gt;&nbsp;sstables, <a href="../../../../../org/apache/cassandra/dht/Range.html" title="class in org.apache.cassandra.dht">Range</a>&lt;<a href="../../../../../org/apache/cassandra/dht/Token.html" title="class in org.apache.cassandra.dht">Token</a>&gt;&nbsp;range)</pre> <div class="block">Returns a list of KeyScanners given sstables and a range on which to scan. The default implementation simply grab one SSTableScanner per-sstable, but overriding this method allow for a more memory efficient solution if we know the sstable don't overlap (see LeveledCompactionStrategy for instance).</div> </li> </ul> <a name="getScanners(java.util.Collection)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>getScanners</h4> <pre>public&nbsp;java.util.List&lt;<a href="../../../../../org/apache/cassandra/db/compaction/ICompactionScanner.html" title="interface in org.apache.cassandra.db.compaction">ICompactionScanner</a>&gt;&nbsp;getScanners(java.util.Collection&lt;<a href="../../../../../org/apache/cassandra/io/sstable/SSTableReader.html" title="class in org.apache.cassandra.io.sstable">SSTableReader</a>&gt;&nbsp;toCompact)</pre> </li> </ul> <a name="worthDroppingTombstones(org.apache.cassandra.io.sstable.SSTableReader, int)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>worthDroppingTombstones</h4> <pre>protected&nbsp;boolean&nbsp;worthDroppingTombstones(<a href="../../../../../org/apache/cassandra/io/sstable/SSTableReader.html" title="class in org.apache.cassandra.io.sstable">SSTableReader</a>&nbsp;sstable, int&nbsp;gcBefore)</pre> <div class="block">Check if given sstable is worth dropping tombstones at gcBefore. Check is skipped if tombstone_compaction_interval time does not elapse since sstable creation and returns false.</div> <dl><dt><span class="strong">Parameters:</span></dt><dd><code>sstable</code> - SSTable to check</dd><dd><code>gcBefore</code> - time to drop tombstones</dd> <dt><span class="strong">Returns:</span></dt><dd>true if given sstable's tombstones are expected to be removed</dd></dl> </li> </ul> <a name="validateOptions(java.util.Map)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>validateOptions</h4> <pre>public static&nbsp;java.util.Map&lt;java.lang.String,java.lang.String&gt;&nbsp;validateOptions(java.util.Map&lt;java.lang.String,java.lang.String&gt;&nbsp;options) throws <a href="../../../../../org/apache/cassandra/exceptions/ConfigurationException.html" title="class in org.apache.cassandra.exceptions">ConfigurationException</a></pre> <dl><dt><span class="strong">Throws:</span></dt> <dd><code><a href="../../../../../org/apache/cassandra/exceptions/ConfigurationException.html" title="class in org.apache.cassandra.exceptions">ConfigurationException</a></code></dd></dl> </li> </ul> <a name="shouldBeEnabled()"> <!-- --> </a> <ul class="blockListLast"> <li class="blockList"> <h4>shouldBeEnabled</h4> <pre>public&nbsp;boolean&nbsp;shouldBeEnabled()</pre> </li> </ul> </li> </ul> </li> </ul> </div> </div> <!-- ========= END OF CLASS DATA ========= --> <!-- ======= START OF BOTTOM NAVBAR ====== --> <div class="bottomNav"><a name="navbar_bottom"> <!-- --> </a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow"> <!-- --> </a> <ul class="navList" title="Navigation"> <li><a href="../../../../../overview-summary.html">Overview</a></li> <li><a href="package-summary.html">Package</a></li> <li class="navBarCell1Rev">Class</li> <li><a href="class-use/AbstractCompactionStrategy.html">Use</a></li> <li><a href="package-tree.html">Tree</a></li> <li><a href="../../../../../deprecated-list.html">Deprecated</a></li> <li><a href="../../../../../index-all.html">Index</a></li> <li><a href="../../../../../help-doc.html">Help</a></li> </ul> </div> <div class="subNav"> <ul class="navList"> <li><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionIterable.html" title="class in org.apache.cassandra.db.compaction"><span class="strong">Prev Class</span></a></li> <li><a href="../../../../../org/apache/cassandra/db/compaction/AbstractCompactionTask.html" title="class in org.apache.cassandra.db.compaction"><span class="strong">Next Class</span></a></li> </ul> <ul class="navList"> <li><a href="../../../../../index.html?org/apache/cassandra/db/compaction/AbstractCompactionStrategy.html" target="_top">Frames</a></li> <li><a href="AbstractCompactionStrategy.html" target="_top">No Frames</a></li> </ul> <ul class="navList" id="allclasses_navbar_bottom"> <li><a href="../../../../../allclasses-noframe.html">All Classes</a></li> </ul> <div> <script type="text/javascript"><!-- allClassesLink = document.getElementById("allclasses_navbar_bottom"); if(window==top) { allClassesLink.style.display = "block"; } else { allClassesLink.style.display = "none"; } //--> </script> </div> <div> <ul class="subNavList"> <li>Summary:&nbsp;</li> <li>Nested&nbsp;|&nbsp;</li> <li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li> <li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li> <li><a href="#method_summary">Method</a></li> </ul> <ul class="subNavList"> <li>Detail:&nbsp;</li> <li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li> <li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li> <li><a href="#method_detail">Method</a></li> </ul> </div> <a name="skip-navbar_bottom"> <!-- --> </a></div> <!-- ======== END OF BOTTOM NAVBAR ======= --> <p class="legalCopy"><small>Copyright &copy; 2014 The Apache Software Foundation</small></p> </body> </html>