# Package org.apache.cassandra.utils

Interface Summary
BatchRemoveIterator<T>: Iterator that allows us to more efficiently remove many items
CloseableIterator<T>
CoalescingStrategies.Coalescable
FastByteOperations.ByteOperations
IFilter
IFilter.FilterKey
IMergeIterator<In,Out>
IndexedSearchIterator<K,V>
IteratorWithLowerBound<In>
LongTimSort.LongComparator
OutputHandler
SearchIterator<K,V>
Throwables.DiscreteAction<E extends java.lang.Exception>
TimeSource

Class Summary
AbstractIterator<V>
AlwaysPresentFilter
Architecture
AsymmetricOrdering<T1,T2>
BiMultiValMap<K,V>: A variant of BiMap which does not enforce uniqueness of values.
BloomCalculations: The following calculations are taken from: http://www.cs.wisc.edu/~cao/papers/summary-cache/node8.html "Bloom Filters - the math" This class's static methods are meant to facilitate the use of the Bloom Filter class by helping to choose correct values of 'bits per element' and 'number of hash functions, k'.
BloomCalculations.BloomSpecification: A wrapper class that holds two key parameters for a Bloom Filter: the number of hash functions used, and the number of buckets per element used.
BloomFilter
BooleanSerializer

ByteBufferUtil

Utility methods to make ByteBuffers less painful The following should illustrate the different ways byte buffers can be used public void testArrayOffet() { byte[] b = "test_slice_array".getBytes(); ByteBuffer bb = ByteBuffer.allocate(1024); assert bb.position() == 0; assert bb.limit() == 1024; assert bb.capacity() == 1024; bb.put(b); assert bb.position() == b.length; assert bb.remaining() == bb.limit() - bb.position(); ByteBuffer bb2 = bb.slice(); assert bb2.position() == 0; //slice should begin at other buffers current position assert bb2.arrayOffset() == bb.position(); //to match the position in the underlying array one needs to //track arrayOffset assert bb2.limit()+bb2.arrayOffset() == bb.limit(); assert bb2.remaining() == bb.remaining(); } }

CassandraVersion: Implements versioning used in Cassandra and CQL.
Clock: Wrapper around time related functions that are either implemented by using the default JVM calls or by using a custom implementation for testing purposes.
CoalescingStrategies
CoalescingStrategies.CoalescingStrategy
ConcurrentBiMap<K,V>: A variant of BiMap that permits concurrent access, and expects uniqueness of values in both domain and range.
CounterId
DefaultValue<T>
DirectorySizeCalculator: Walks directory recursively, summing up total contents of files within.
DynamicList<E>
DynamicList.Node<E>
EstimatedHistogram
EstimatedHistogram.EstimatedHistogramSerializer
ExpiringMap<K,V>
ExpiringMap.CacheableObject<T>
FastByteOperations: Utility code to do optimized byte-array comparison.
FastByteOperations.PureJavaOperations
FastByteOperations.UnsafeOperations
FBUtilities
FilterFactory
GuidGenerator
HeapUtils: Utility to log heap histogram.
Hex
HistogramBuilder: Simple class for constructing an EsimtatedHistogram from a set of predetermined values
IntegerInterval: Mutable integer interval class, thread-safe.
IntegerInterval.Set: A mutable set of closed integer intervals, stored in normalized form (i.e.
Interval<C,D>
IntervalTree<C extends java.lang.Comparable<? super C>,D,I extends Interval<C,D>>
IntervalTree.Serializer<C extends java.lang.Comparable<? super C>,D,I extends Interval<C,D>>
JavaUtils: Utility method to retrieve information about the JRE.
JMXServerUtils
JVMStabilityInspector: Responsible for deciding whether to kill the JVM if it gets in an "unstable" state (think OOM).
JVMStabilityInspector.Killer
LockedDynamicList<E>
LongTimSort: A stable, adaptive, iterative mergesort that requires far fewer than n lg(n) comparisons when running on partially sorted arrays, while offering performance comparable to a traditional mergesort when run on random arrays.
MD5Digest: The result of the computation of an MD5 digest.
MergeIterator<In,Out>: Merges sorted input iterators which individually contain unique items.
MergeIterator.Candidate<In>
MergeIterator.Reducer<In,Out>: Accumulator that collects values of type A, and outputs a value of type B.
MerkleTree: A MerkleTree implemented as a binary tree.
MerkleTree.MerkleTreeSerializer
MerkleTree.RowHash: Hash value representing a row, to be used to pass hashes to the MerkleTree.
MerkleTree.TreeDifference
MerkleTree.TreeRange: The public interface to a range in the tree.
MerkleTree.TreeRangeIterator: Returns the leaf (range) of a given tree in increasing order.
MerkleTrees: Wrapper class for handling of multiple MerkleTrees at once.
MerkleTrees.MerkleTreesSerializer
MurmurHash: This is a very fast, non-cryptographic hash suitable for general hash-based lookup.
Mx4jTool: If mx4j-tools is in the classpath call maybeLoad to load the HTTP interface of mx4j.
NanoTimeToCurrentTimeMillis
NativeLibrary
NativeLibraryDarwin: A `NativeLibraryWrapper` implementation for Darwin/Mac.
NativeLibraryLinux: A `NativeLibraryWrapper` implementation for Linux.
NativeLibraryWindows: A `NativeLibraryWrapper` implementation for Windows.
NativeSSTableLoaderClient
NoSpamLogger: Logging that limits each log statement to firing based on time since the statement last fired.
ObjectSizes: A convenience class for wrapping access to MemoryMeter
OutputHandler.LogOutput
OutputHandler.SystemOutput
OverlapIterator<I extends java.lang.Comparable<? super I>,V>: A class for iterating sequentially through an ordered collection and efficiently finding the overlapping set of matching intervals.
Pair<T1,T2>
ResourceWatcher
ResourceWatcher.WatchedResource
RMIServerSocketFactoryImpl
SigarLibrary
SlidingTimeRate: Concurrent rate computation over a sliding time window.
SortedBiMultiValMap<K,V>
StatusLogger
StreamingHistogram: Histogram that can be constructed from streaming of data.
StreamingHistogram.StreamingHistogramBuilder
StreamingHistogram.StreamingHistogramSerializer
SyncUtil
SystemTimeSource: Time source backed by JVM clock.
TestRateLimiter: Helper class to apply rate limiting during fault injection testing; for an example script, see test/resources/byteman/mutation_limiter.btm.
Throwables
TopKSampler<T>
TopKSampler.SamplerResult<S>: Represents the cardinality and the topK ranked items collected during a sample period
UUIDGen: The goods are here: www.ietf.org/rfc/rfc4122.txt.
UUIDSerializer
WindowsTimer
Wrapped<T>: Simple wrapper class to be used when a lambda function needs to modify a variable outside it's scope.
WrappedBoolean: Simple wrapper for native boolean type
WrappedInt: Simple wrapper for native int type
WrappedRunnable

Enum Summary
AsymmetricOrdering.Op
ChecksumType
NativeLibrary.OSType
NoSpamLogger.Level: Levels for programmatically specifying the severity of a log statement
Throwables.FileOpType

Exception Summary
WrappedException: Wrapped runtime exception for lambda functions