com.datastax.driver.core.schemabuilder

## Class TableOptions<T extends TableOptions>

• Type Parameters:
T - the concrete sub-class of TableOptions
Direct Known Subclasses:
Alter.Options, Create.Options

public abstract class TableOptions<T extends TableOptions>
extends SchemaStatement
The table options used in a CREATE TABLE or ALTER TABLE statement.

Implementation notes: this class is abstract and not meant to use directly. The type parameter T allows usage of covariant return type and makes the builder pattern work for different sub-classes.

details on table options
• ### Nested Class Summary

Nested Classes
Modifier and Type Class and Description
static class  TableOptions.CachingRowsPerPartition
Define the number of rows to be cached per partition when row caching is enabled (this feature is only applicable to Cassandra 2.1.x).
static class  TableOptions.CompactionOptions<T extends TableOptions.CompactionOptions>
Compaction options for a CREATE or ALTER TABLE statement.
static class  TableOptions.CompressionOptions
The compression options for a CREATE or ALTER TABLE statement.
static class  TableOptions.SpeculativeRetryValue
The speculative retry options.

• ### Fields inherited from class com.datastax.driver.core.Statement

idempotent, NULL_PAYLOAD_VALUE
• ### Method Summary

All Methods
Modifier and Type Method and Description
protected abstract void addSpecificOptions(List<String> options)
T bloomFilterFPChance(Double fpChance)
Define the desired false-positive probability for SSTable Bloom filters.
String buildInternal()
T caching(SchemaBuilder.Caching caching)
Define the caching type for Cassandra 2.0.x.
T caching(SchemaBuilder.KeyCaching keys, TableOptions.CachingRowsPerPartition rowsPerPartition)
Define the caching options for Cassandra 2.1.x.
T comment(String comment)
Define a human readable comment describing the table.
T compactionOptions(TableOptions.CompactionOptions compactionOptions)
Define the compaction options.
T compressionOptions(TableOptions.CompressionOptions compressionOptions)
Define the compression options.
T dcLocalReadRepairChance(Double dcLocalReadRepairChance)
Define the probability of read repairs being invoked over all replicas in the current data center.
T defaultTimeToLive(Integer defaultTimeToLive)
Define the default expiration time in seconds for a table.
T freeformOption(String key, Object value)
Define a free-form option as a key/value pair.
T gcGraceSeconds(Integer gcGraceSeconds)
Define the time to wait before garbage collecting tombstones (deletion markers).
T indexInterval(Integer indexInterval)
Define the index interval for Cassandra 2.0.
T maxIndexInterval(Integer maxIndexInterval)
Define the maximum index interval for Cassandra 2.1.
T memtableFlushPeriodInMillis(Integer memtableFlushPeriodInMillis)
Define the memtable flush period.
T minIndexInterval(Integer minIndexInterval)
Define the minimum index interval for Cassandra 2.1.
T populateIOCacheOnFlush(Boolean populateIOOnCacheFlush)
Define whether to populate IO cache on flush of sstables.
T readRepairChance(Double readRepairChance)
Define the probability with which read repairs should be invoked on non-quorum reads.
T replicateOnWrite(Boolean replicateOnWrite)
Define whether to replicate data on write (Cassandra 2.0.x only).
T speculativeRetry(TableOptions.SpeculativeRetryValue speculativeRetry)
To override normal read timeout when read_repair_chance is not 1.0, sending another request to read, choose one of these values and use the property to create or alter the table: ALWAYS: Retry reads of all replicas. Xpercentile: Retry reads based on the effect on throughput and latency. Yms: Retry reads after specified milliseconds. NONE: Do not retry reads.

Using the speculative retry property, you can configure rapid read protection in Cassandra 2.0.2 and later.

• ### Methods inherited from class com.datastax.driver.core.schemabuilder.SchemaStatement

getKeyspace, getNamedValues, getQueryString, getRoutingKey, getValues, hasValues, usesNamedValues
• ### Methods inherited from class com.datastax.driver.core.RegularStatement

getQueryString, hasValues, toString
• ### Methods inherited from class com.datastax.driver.core.Statement

disableTracing, enableTracing, getConsistencyLevel, getDefaultTimestamp, getFetchSize, getOutgoingPayload, getReadTimeoutMillis, getRetryPolicy, getSerialConsistencyLevel, isBatchIdempotent, isIdempotent, isTracing, setConsistencyLevel, setDefaultTimestamp, setFetchSize, setIdempotent, setOutgoingPayload, setPagingState, setPagingState, setPagingStateUnsafe, setReadTimeoutMillis, setRetryPolicy, setSerialConsistencyLevel
• ### Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
• ### Method Detail

• #### caching

public T caching(SchemaBuilder.Caching caching)
Define the caching type for Cassandra 2.0.x.

If no call is made to this method, the default value set by Cassandra is SchemaBuilder.Caching.KEYS_ONLY.

Parameters:
caching - the caching type (all enum values are allowed).
Returns:
this TableOptions object.
• #### bloomFilterFPChance

public T bloomFilterFPChance(Double fpChance)
Define the desired false-positive probability for SSTable Bloom filters.

If no call is made to this method, the default value set by Cassandra is:

• 0.01 for the size-tiered compaction strategy;
• 0.1 for the leveled compaction strategy.
Parameters:
fpChance - the false positive change. This value should be between 0 and 1.0.
Returns:
this TableOptions object.
• #### comment

public T comment(String comment)
Define a human readable comment describing the table.
Parameters:
comment - the comment.
Returns:
this TableOptions object.

public T dcLocalReadRepairChance(Double dcLocalReadRepairChance)
Define the probability of read repairs being invoked over all replicas in the current data center.

If no call is made to this method, the default value set by Cassandra is 0.0.

Parameters:
dcLocalReadRepairChance - the probability.
Returns:
this TableOptions object.
• #### defaultTimeToLive

public T defaultTimeToLive(Integer defaultTimeToLive)
Define the default expiration time in seconds for a table.

Used in MapReduce/Hive scenarios when you have no control of TTL.

If no call is made to this method, the default value set by Cassandra is 0.

Parameters:
defaultTimeToLive - the default time to live in seconds for a table.
Returns:
this TableOptions object.
• #### gcGraceSeconds

public T gcGraceSeconds(Integer gcGraceSeconds)
Define the time to wait before garbage collecting tombstones (deletion markers).

The default value allows a great deal of time for consistency to be achieved prior to deletion. In many deployments this interval can be reduced, and in a single-node cluster it can be safely set to zero.

If no call is made to this method, the default value set by Cassandra is 864000 secs (10 days).

Parameters:
gcGraceSeconds - the grace period.
Returns:
this TableOptions object.
• #### indexInterval

public T indexInterval(Integer indexInterval)
Define the index interval for Cassandra 2.0.

To control the sampling of entries from the primary row index, configure sample frequency of the partition summary by changing the index interval. After changing the index interval, SSTables are written to disk with new information. The interval corresponds to the number of index entries that are skipped between taking each sample. By default, Cassandra samples one row key out of every 128. The larger the interval, the smaller and less effective the sampling. The larger the sampling, the more effective the index, but with increased memory usage. In Cassandra 2.0.x, generally, the best trade off between memory usage and performance is a value between 128 and 512 in combination with a large table key cache. However, if you have small rows (many to an OS page), you may want to increase the sample size, which often lowers memory usage without an impact on performance. For large rows, decreasing the sample size may improve read performance.

If no call is made to this method, the default value set by Cassandra is 128.

Parameters:
indexInterval - the index interval.
Returns:
this TableOptions object.
• #### minIndexInterval

public T minIndexInterval(Integer minIndexInterval)
Define the minimum index interval for Cassandra 2.1.

If no call is made to this method, the default value set by Cassandra is 128.

Parameters:
minIndexInterval - the minimum index interval.
Returns:
this TableOptions object.
indexInterval(Integer)
• #### maxIndexInterval

public T maxIndexInterval(Integer maxIndexInterval)
Define the maximum index interval for Cassandra 2.1.

If no call is made to this method, the default value set by Cassandra is 2048.

Parameters:
maxIndexInterval - the maximum index interval.
Returns:
this TableOptions object.
indexInterval(Integer)
• #### memtableFlushPeriodInMillis

public T memtableFlushPeriodInMillis(Integer memtableFlushPeriodInMillis)
Define the memtable flush period.

If set, this forces flushing of the memtable after the specified time elapses.

If no call is made to this method, the default value set by Cassandra is 0.

Parameters:
memtableFlushPeriodInMillis - the memtable flush period in milliseconds.
Returns:
this TableOptions object.
• #### populateIOCacheOnFlush

public T populateIOCacheOnFlush(Boolean populateIOOnCacheFlush)
Define whether to populate IO cache on flush of sstables.

If set, Cassandra adds newly flushed or compacted sstables to the operating system page cache, potentially evicting other cached data to make room. Enable when all data in the table is expected to fit in memory.

If no call is made to this method, the default value set by Cassandra is false.

Parameters:
populateIOOnCacheFlush - whether to populate IO cache on flush of sstables.
Returns:
this TableOptions object.
the global option compaction_preheat_key_cache

public T readRepairChance(Double readRepairChance)
Define the probability with which read repairs should be invoked on non-quorum reads. The value must be between 0 and 1.

If no call is made to this method, the default value set by Cassandra is 0.1.

Parameters:
readRepairChance - the read repair chance.
Returns:
this TableOptions object.
• #### replicateOnWrite

public T replicateOnWrite(Boolean replicateOnWrite)
Define whether to replicate data on write (Cassandra 2.0.x only).

When set to true, replicates writes to all affected replicas regardless of the consistency level specified by the client for a write request. For counter tables, this should always be set to true.

If no call is made to this method, the default value set by Cassandra is true.

Parameters:
replicateOnWrite - whether to replicate data on write.
Returns:
this TableOptions object.
• #### speculativeRetry

public T speculativeRetry(TableOptions.SpeculativeRetryValue speculativeRetry)
To override normal read timeout when read_repair_chance is not 1.0, sending another request to read, choose one of these values and use the property to create or alter the table:
• ALWAYS: Retry reads of all replicas.
• Xpercentile: Retry reads based on the effect on throughput and latency.
• Yms: Retry reads after specified milliseconds.
• NONE: Do not retry reads.

Using the speculative retry property, you can configure rapid read protection in Cassandra 2.0.2 and later. Use this property to retry a request after some milliseconds have passed or after a percentile of the typical read latency has been reached, which is tracked per table.

If no call is made to this method, the default value set by Cassandra is {code 99percentile}.

Parameters:
speculativeRetry - the speculative retry. To create instances, use SchemaBuilder.noSpeculativeRetry(), SchemaBuilder.always(), SchemaBuilder.percentile(int) or SchemaBuilder.millisecs(int).
Returns:
this TableOptions object.
• #### freeformOption

public T freeformOption(String key,
Object value)
Define a free-form option as a key/value pair.

This method is provided as a fallback if the SchemaBuilder is used with a more recent version of Cassandra that has new, unsupported options.

Parameters:
key - the name of the option.
value - the value of the option. If it's a String, it will be included in single quotes, otherwise the result of invoking its toString method will be used unquoted.
Returns:
this TableOptions object.
protected abstract void addSpecificOptions(List<String> options)
public final String buildInternal()