org.apache.cassandra.db

## Class SystemKeyspace

- java.lang.Object
- - org.apache.cassandra.db.SystemKeyspace

-     public final class SystemKeyspace
      extends java.lang.Object

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `SystemKeyspace.BootstrapState`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `AVAILABLE_RANGES`
    `static CFMetaData` | `Batchlog`
    `static java.lang.String` | `BATCHLOG`
    `static java.lang.String` | `BUILT_INDEXES`
    `static CFMetaData` | `BuiltIndexes`
    `static java.lang.String` | `COMPACTION_HISTORY`
    `static java.lang.String` | `COMPACTIONS_IN_PROGRESS`
    `static CFMetaData` | `Hints`
    `static java.lang.String` | `HINTS`
    `static java.lang.String` | `LOCAL`
    `static java.lang.String` | `NAME`
    `static CassandraVersion` | `NULL_VERSION`
    `static java.lang.String` | `PAXOS`
    `static java.lang.String` | `PEER_EVENTS`
    `static java.lang.String` | `PEERS`
    `static java.lang.String` | `RANGE_XFERS`
    `static java.lang.String` | `SIZE_ESTIMATES`
    `static java.lang.String` | `SSTABLE_ACTIVITY`
    `static CassandraVersion` | `UNREADABLE_VERSION`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SystemKeyspace()`

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static boolean` | `bootstrapComplete()`
    `static boolean` | `bootstrapInProgress()`
    `static void` | `checkHealth()` One of three things will happen if you try to read the system keyspace: 1.
    `static void` | `clearSizeEstimates(java.lang.String keyspace, java.lang.String table)` Clears size estimates for a table (on table drop)
    `static void` | `clearSSTableReadMeter(java.lang.String keyspace, java.lang.String table, int generation)` Clears persisted read rates from system.sstable_activity for SSTables that have been deleted.
    `static KSMetaData` | `definition()`
    `static void` | `discardCompactionsInProgress()`
    `static void` | `finishCompaction(java.util.UUID taskId)` Deletes the entry for this compaction from the set of compactions in progress.
    `static void` | `finishStartup()`
    `static void` | `forceBlockingFlush(java.lang.String cfname)`
    `static java.util.Set<Range<Token>>` | `getAvailableRanges(java.lang.String keyspace, IPartitioner partitioner)`
    `static SystemKeyspace.BootstrapState` | `getBootstrapState()`
    `static javax.management.openmbean.TabularData` | `getCompactionHistory()`
    `static java.lang.String` | `getDatacenter()` Gets the stored data center for the local node, or null if none have been set yet.
    `static java.util.UUID` | `getLocalHostId()` Read the host ID from the system keyspace, creating (and storing) one if none exists.
    `static java.net.InetAddress` | `getPreferredIP(java.net.InetAddress ep)` Get preferred IP for given endpoint if it is known.
    `static java.lang.String` | `getRack()` Gets the stored rack for the local node, or null if none have been set yet.
    `static CassandraVersion` | `getReleaseVersion(java.net.InetAddress ep)` Get release version for given endpoint.
    `static java.util.Collection<Token>` | `getSavedTokens()`
    `static RestorableMeter` | `getSSTableReadMeter(java.lang.String keyspace, java.lang.String table, int generation)` Returns a RestorableMeter tracking the average read rate of a particular SSTable, restoring the last-seen rate from values in system.sstable_activity if present.
    `static long` | `getTruncatedAt(java.util.UUID cfId)`
    `static ReplayPosition` | `getTruncatedPosition(java.util.UUID cfId)`
    `static java.util.Map<Pair<java.lang.String,java.lang.String>,java.util.Map<java.lang.Integer,java.util.UUID>>` | `getUnfinishedCompactions()` Returns a Map whose keys are KS.CF pairs and whose values are maps from sstable generation numbers to the task ID of the compaction they were participating in.
    `static int` | `incrementAndGetGeneration()`
    `static boolean` | `isIndexBuilt(java.lang.String keyspaceName, java.lang.String indexName)`
    `static java.util.Map<java.net.InetAddress,java.util.Map<java.lang.String,java.lang.String>>` | `loadDcRackInfo()` Return a map of IP addresses containing a map of dc and rack info
    `static java.util.Map<java.net.InetAddress,java.util.UUID>` | `loadHostIds()` Return a map of store host_ids to IP addresses
    `static PaxosState` | `loadPaxosState(java.nio.ByteBuffer key, CFMetaData metadata, long now)`
    `static com.google.common.collect.SetMultimap<java.net.InetAddress,Token>` | `loadTokens()` Return a map of stored tokens to IP addresses
    `static int` | `paxosTtl(CFMetaData metadata)`
    `static void` | `persistLocalMetadata()`
    `static void` | `persistSSTableReadMeter(java.lang.String keyspace, java.lang.String table, int generation, RestorableMeter meter)` Writes the current read rates for a given SSTable to system.sstable_activity
    `static void` | `removeEndpoint(java.net.InetAddress ep)` Remove stored tokens being used by another node
    `static void` | `removeTruncationRecord(java.util.UUID cfId)` This method is used to remove information about truncation time for specified column family
    `static void` | `resetAvailableRanges()`
    `static void` | `savePaxosCommit(Commit commit)`
    `static void` | `savePaxosPromise(Commit promise)`
    `static void` | `savePaxosProposal(Commit proposal)`
    `static void` | `saveTruncationRecord(ColumnFamilyStore cfs, long truncatedAt, ReplayPosition position)`
    `static void` | `setBootstrapState(SystemKeyspace.BootstrapState state)`
    `static void` | `setIndexBuilt(java.lang.String keyspaceName, java.lang.String indexName)`
    `static void` | `setIndexRemoved(java.lang.String keyspaceName, java.lang.String indexName)`
    `static java.util.UUID` | `setLocalHostId(java.util.UUID hostId)` Sets the local host ID explicitly.
    `static void` | `snapshotOnVersionChange()` Compare the release version in the system.local table with the one included in the distro.
    `static java.util.UUID` | `startCompaction(ColumnFamilyStore cfs, java.lang.Iterable<SSTableReader> toCompact)` Write compaction log, except columfamilies under system keyspace.
    `static void` | `updateAvailableRanges(java.lang.String keyspace, java.util.Collection<Range<Token>> completedRanges)`
    `static void` | `updateCompactionHistory(java.lang.String ksname, java.lang.String cfname, long compactedAt, long bytesIn, long bytesOut, java.util.Map<java.lang.Integer,java.lang.Long> rowsMerged)`
    `static void` | `updateHintsDropped(java.net.InetAddress ep, java.util.UUID timePeriod, int value)`
    `static void` | `updatePeerInfo(java.net.InetAddress ep, java.lang.String columnName, java.lang.Object value)`
    `static void` | `updatePreferredIP(java.net.InetAddress ep, java.net.InetAddress preferred_ip)`
    `static void` | `updateSchemaVersion(java.util.UUID version)`
    `static void` | `updateSizeEstimates(java.lang.String keyspace, java.lang.String table, java.util.Map<Range<Token>,Pair<java.lang.Long,java.lang.Long>> estimates)` Writes the current partition count and size estimates into SIZE_ESTIMATES_CF
    `static void` | `updateTokens(java.util.Collection<Token> tokens)` This method is used to update the System Keyspace with the new tokens for this node
    `static void` | `updateTokens(java.net.InetAddress ep, java.util.Collection<Token> tokens)` Record tokens being used by another node

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### UNREADABLE_VERSION

          public static final CassandraVersion UNREADABLE_VERSION

    - #### NULL_VERSION

          public static final CassandraVersion NULL_VERSION

    - #### NAME

          public static final java.lang.String NAME

      See Also:
        Constant Field Values

    - #### HINTS

          public static final java.lang.String HINTS

      See Also:
        Constant Field Values

    - #### BATCHLOG

          public static final java.lang.String BATCHLOG

      See Also:
        Constant Field Values

    - #### PAXOS

          public static final java.lang.String PAXOS

      See Also:
        Constant Field Values

    - #### BUILT_INDEXES

          public static final java.lang.String BUILT_INDEXES

      See Also:
        Constant Field Values

    - #### LOCAL

          public static final java.lang.String LOCAL

      See Also:
        Constant Field Values

    - #### PEERS

          public static final java.lang.String PEERS

      See Also:
        Constant Field Values

    - #### PEER_EVENTS

          public static final java.lang.String PEER_EVENTS

      See Also:
        Constant Field Values

    - #### RANGE_XFERS

          public static final java.lang.String RANGE_XFERS

      See Also:
        Constant Field Values

    - #### COMPACTIONS_IN_PROGRESS

          public static final java.lang.String COMPACTIONS_IN_PROGRESS

      See Also:
        Constant Field Values

    - #### COMPACTION_HISTORY

          public static final java.lang.String COMPACTION_HISTORY

      See Also:
        Constant Field Values

    - #### SSTABLE_ACTIVITY

          public static final java.lang.String SSTABLE_ACTIVITY

      See Also:
        Constant Field Values

    - #### SIZE_ESTIMATES

          public static final java.lang.String SIZE_ESTIMATES

      See Also:
        Constant Field Values

    - #### AVAILABLE_RANGES

          public static final java.lang.String AVAILABLE_RANGES

      See Also:
        Constant Field Values

    - #### Hints

          public static final CFMetaData Hints

    - #### Batchlog

          public static final CFMetaData Batchlog

    - #### BuiltIndexes

          public static final CFMetaData BuiltIndexes

  - ### Constructor Detail

    - #### SystemKeyspace

          public SystemKeyspace()

  - ### Method Detail

    - #### definition

          public static KSMetaData definition()

    - #### finishStartup

          public static void finishStartup()

    - #### persistLocalMetadata

          public static void persistLocalMetadata()

    - #### startCompaction

          public static java.util.UUID startCompaction(ColumnFamilyStore cfs,
                                                       java.lang.Iterable<SSTableReader> toCompact)

      Write compaction log, except columfamilies under system keyspace.
      Parameters:
        `cfs` - cfs to compact
        `toCompact` - sstables to compact
      Returns:
        compaction task id or null if cfs is under system keyspace

    - #### finishCompaction

          public static void finishCompaction(java.util.UUID taskId)

      Deletes the entry for this compaction from the set of compactions in progress. The compaction does not need to complete successfully for this to be called.
      Parameters:
        `taskId` - what was returned from `startCompaction`

    - #### getUnfinishedCompactions

          public static java.util.Map<Pair<java.lang.String,java.lang.String>,java.util.Map<java.lang.Integer,java.util.UUID>> getUnfinishedCompactions()

      Returns a Map whose keys are KS.CF pairs and whose values are maps from sstable generation numbers to the task ID of the compaction they were participating in.

    - #### discardCompactionsInProgress

          public static void discardCompactionsInProgress()

    - #### updateCompactionHistory

          public static void updateCompactionHistory(java.lang.String ksname,
                                                     java.lang.String cfname,
                                                     long compactedAt,
                                                     long bytesIn,
                                                     long bytesOut,
                                                     java.util.Map<java.lang.Integer,java.lang.Long> rowsMerged)

    - #### getCompactionHistory

          public static javax.management.openmbean.TabularData getCompactionHistory()
                                                                             throws javax.management.openmbean.OpenDataException

      Throws:
        `javax.management.openmbean.OpenDataException`

    - #### saveTruncationRecord

          public static void saveTruncationRecord(ColumnFamilyStore cfs,
                                                  long truncatedAt,
                                                  ReplayPosition position)

    - #### removeTruncationRecord

          public static void removeTruncationRecord(java.util.UUID cfId)

      This method is used to remove information about truncation time for specified column family

    - #### getTruncatedPosition

          public static ReplayPosition getTruncatedPosition(java.util.UUID cfId)

    - #### getTruncatedAt

          public static long getTruncatedAt(java.util.UUID cfId)

    - #### updateTokens

          public static void updateTokens(java.net.InetAddress ep,
                                          java.util.Collection<Token> tokens)

      Record tokens being used by another node

    - #### updatePreferredIP

          public static void updatePreferredIP(java.net.InetAddress ep,
                                               java.net.InetAddress preferred_ip)

    - #### updatePeerInfo

          public static void updatePeerInfo(java.net.InetAddress ep,
                                            java.lang.String columnName,
                                            java.lang.Object value)

    - #### updateHintsDropped

          public static void updateHintsDropped(java.net.InetAddress ep,
                                                java.util.UUID timePeriod,
                                                int value)

    - #### updateSchemaVersion

          public static void updateSchemaVersion(java.util.UUID version)

    - #### removeEndpoint

          public static void removeEndpoint(java.net.InetAddress ep)

      Remove stored tokens being used by another node

    - #### updateTokens

          public static void updateTokens(java.util.Collection<Token> tokens)

      This method is used to update the System Keyspace with the new tokens for this node

    - #### forceBlockingFlush

          public static void forceBlockingFlush(java.lang.String cfname)

    - #### loadTokens

          public static com.google.common.collect.SetMultimap<java.net.InetAddress,Token> loadTokens()

      Return a map of stored tokens to IP addresses

    - #### loadHostIds

          public static java.util.Map<java.net.InetAddress,java.util.UUID> loadHostIds()

      Return a map of store host_ids to IP addresses

    - #### getPreferredIP

          public static java.net.InetAddress getPreferredIP(java.net.InetAddress ep)

      Get preferred IP for given endpoint if it is known. Otherwise this returns given endpoint itself.
      Parameters:
        `ep` - endpoint address to check
      Returns:
        Preferred IP for given endpoint if present, otherwise returns given ep

    - #### loadDcRackInfo

          public static java.util.Map<java.net.InetAddress,java.util.Map<java.lang.String,java.lang.String>> loadDcRackInfo()

      Return a map of IP addresses containing a map of dc and rack info

    - #### getReleaseVersion

          public static CassandraVersion getReleaseVersion(java.net.InetAddress ep)

      Get release version for given endpoint. If release version is unknown, then this returns null.
      Parameters:
        `ep` - endpoint address to check
      Returns:
        Release version or null if version is unknown.

    - #### checkHealth

          public static void checkHealth()
                                  throws ConfigurationException

      One of three things will happen if you try to read the system keyspace: 1. files are present and you can read them: great 2. no files are there: great (new node is assumed) 3. files are present but you can't read them: bad
      Throws:
        `ConfigurationException`

    - #### getSavedTokens

          public static java.util.Collection<Token> getSavedTokens()

    - #### incrementAndGetGeneration

          public static int incrementAndGetGeneration()

    - #### getBootstrapState

          public static SystemKeyspace.BootstrapState getBootstrapState()

    - #### bootstrapComplete

          public static boolean bootstrapComplete()

    - #### bootstrapInProgress

          public static boolean bootstrapInProgress()

    - #### setBootstrapState

          public static void setBootstrapState(SystemKeyspace.BootstrapState state)

    - #### isIndexBuilt

          public static boolean isIndexBuilt(java.lang.String keyspaceName,
                                             java.lang.String indexName)

    - #### setIndexBuilt

          public static void setIndexBuilt(java.lang.String keyspaceName,
                                           java.lang.String indexName)

    - #### setIndexRemoved

          public static void setIndexRemoved(java.lang.String keyspaceName,
                                             java.lang.String indexName)

    - #### getLocalHostId

          public static java.util.UUID getLocalHostId()

      Read the host ID from the system keyspace, creating (and storing) one if none exists.

    - #### setLocalHostId

          public static java.util.UUID setLocalHostId(java.util.UUID hostId)

      Sets the local host ID explicitly. Should only be called outside of SystemTable when replacing a node.

    - #### getRack

          public static java.lang.String getRack()

      Gets the stored rack for the local node, or null if none have been set yet.

    - #### getDatacenter

          public static java.lang.String getDatacenter()

      Gets the stored data center for the local node, or null if none have been set yet.

    - #### loadPaxosState

          public static PaxosState loadPaxosState(java.nio.ByteBuffer key,
                                                  CFMetaData metadata,
                                                  long now)

    - #### savePaxosPromise

          public static void savePaxosPromise(Commit promise)

    - #### savePaxosProposal

          public static void savePaxosProposal(Commit proposal)

    - #### paxosTtl

          public static int paxosTtl(CFMetaData metadata)

    - #### savePaxosCommit

          public static void savePaxosCommit(Commit commit)

    - #### getSSTableReadMeter

          public static RestorableMeter getSSTableReadMeter(java.lang.String keyspace,
                                                            java.lang.String table,
                                                            int generation)

      Returns a RestorableMeter tracking the average read rate of a particular SSTable, restoring the last-seen rate from values in system.sstable_activity if present.
      Parameters:
        `keyspace` - the keyspace the sstable belongs to
        `table` - the table the sstable belongs to
        `generation` - the generation number for the sstable

    - #### persistSSTableReadMeter

          public static void persistSSTableReadMeter(java.lang.String keyspace,
                                                     java.lang.String table,
                                                     int generation,
                                                     RestorableMeter meter)

      Writes the current read rates for a given SSTable to system.sstable_activity

    - #### clearSSTableReadMeter

          public static void clearSSTableReadMeter(java.lang.String keyspace,
                                                   java.lang.String table,
                                                   int generation)

      Clears persisted read rates from system.sstable_activity for SSTables that have been deleted.

    - #### updateSizeEstimates

          public static void updateSizeEstimates(java.lang.String keyspace,
                                                 java.lang.String table,
                                                 java.util.Map<Range<Token>,Pair<java.lang.Long,java.lang.Long>> estimates)

      Writes the current partition count and size estimates into SIZE_ESTIMATES_CF

    - #### clearSizeEstimates

          public static void clearSizeEstimates(java.lang.String keyspace,
                                                java.lang.String table)

      Clears size estimates for a table (on table drop)

    - #### updateAvailableRanges

          public static void updateAvailableRanges(java.lang.String keyspace,
                                                   java.util.Collection<Range<Token>> completedRanges)

    - #### getAvailableRanges

          public static java.util.Set<Range<Token>> getAvailableRanges(java.lang.String keyspace,
                                                                       IPartitioner partitioner)

    - #### resetAvailableRanges

          public static void resetAvailableRanges()

    - #### snapshotOnVersionChange

          public static void snapshotOnVersionChange()
                                              throws java.io.IOException

      Compare the release version in the system.local table with the one included in the distro. If they don't match, snapshot all tables in the system keyspace. This is intended to be called at startup to create a backup of the system tables during an upgrade
      Throws:
        `java.io.IOException`

Copyright © 2018 The Apache Software Foundation