Class Keyspace

java.lang.Object
org.apache.cassandra.db.Keyspace

public class Keyspace extends Object
It represents a Keyspace.
  • Field Details

  • Method Details

    • isInitialized

      public static boolean isInitialized()
    • setInitialized

      public static void setInitialized()
    • unsetInitialized

      public static void unsetInitialized()
      Never use it in production code. Useful when creating a fake Schema so that it does not manage Keyspace instances (and CFS)
    • open

      public static Keyspace open(String keyspaceName)
    • openWithoutSSTables

      public static Keyspace openWithoutSSTables(String keyspaceName)
    • open

      public static Keyspace open(String keyspaceName, SchemaProvider schema, boolean loadSSTables)
    • openAndGetStore

      public static ColumnFamilyStore openAndGetStore(TableMetadataRef tableRef)
    • openAndGetStore

      public static ColumnFamilyStore openAndGetStore(TableMetadata table)
    • openAndGetStoreIfExists

      public static ColumnFamilyStore openAndGetStoreIfExists(TableMetadata table)
    • removeUnreadableSSTables

      public static void removeUnreadableSSTables(File directory)
      Removes every SSTable in the directory from the appropriate Tracker's view.
      Parameters:
      directory - the unreadable directory, possibly with SSTables in it, but not necessarily.
    • setMetadata

      public void setMetadata(KeyspaceMetadata metadata)
    • getMetadata

      public KeyspaceMetadata getMetadata()
    • getColumnFamilyStores

      public Collection<ColumnFamilyStore> getColumnFamilyStores()
    • getColumnFamilyStore

      public ColumnFamilyStore getColumnFamilyStore(String cfName)
    • getColumnFamilyStore

      public ColumnFamilyStore getColumnFamilyStore(TableId id)
    • getIfExists

      public ColumnFamilyStore getIfExists(TableId id)
    • hasColumnFamilyStore

      public boolean hasColumnFamilyStore(TableId id)
    • snapshot

      public void snapshot(String snapshotName, String columnFamilyName, boolean skipFlush, DurationSpec.IntSecondsBound ttl, com.google.common.util.concurrent.RateLimiter rateLimiter, Instant creationTime) throws IOException
      Take a snapshot of the specific column family, or the entire set of column families if columnFamily is null with a given timestamp
      Parameters:
      snapshotName - the tag associated with the name of the snapshot. This value may not be null
      columnFamilyName - the column family to snapshot or all on null
      skipFlush - Skip blocking flush of memtable
      rateLimiter - Rate limiter for hardlinks-per-second
      Throws:
      IOException - if the column family doesn't exist
    • snapshot

      public void snapshot(String snapshotName, String columnFamilyName) throws IOException
      Take a snapshot of the specific column family, or the entire set of column families if columnFamily is null with a given timestamp
      Parameters:
      snapshotName - the tag associated with the name of the snapshot. This value may not be null
      columnFamilyName - the column family to snapshot or all on null
      Throws:
      IOException - if the column family doesn't exist
    • getTimestampedSnapshotName

      public static String getTimestampedSnapshotName(String clientSuppliedName)
      Parameters:
      clientSuppliedName - may be null.
      Returns:
      the name of the snapshot
    • getTimestampedSnapshotNameWithPrefix

      public static String getTimestampedSnapshotNameWithPrefix(String clientSuppliedName, String prefix)
    • snapshotExists

      public boolean snapshotExists(String snapshotName)
      Check whether snapshots already exists for a given name.
      Parameters:
      snapshotName - the user supplied snapshot name
      Returns:
      true if the snapshot exists
    • getAllSSTables

      public List<SSTableReader> getAllSSTables(SSTableSet sstableSet)
      Returns:
      A list of open SSTableReaders
    • getAllSnapshots

      public Stream<TableSnapshot> getAllSnapshots()
    • getRepairManager

      public KeyspaceRepairManager getRepairManager()
    • mockKS

      public static Keyspace mockKS(KeyspaceMetadata metadata)
    • dropCf

      public void dropCf(TableId tableId, boolean dropData)
    • unload

      public void unload(boolean dropData)
      Unloads all column family stores and releases metrics.
    • initCfCustom

      public void initCfCustom(ColumnFamilyStore newCfs)
      Registers a custom cf instance with this keyspace. This is required for offline tools what use non-standard directories.
    • getWriteHandler

      public KeyspaceWriteHandler getWriteHandler()
    • initCf

      public void initCf(TableMetadataRef metadata, boolean loadSSTables)
      adds a cf to internal structures, ends up creating disk files).
    • applyFuture

      public Future<?> applyFuture(Mutation mutation, boolean writeCommitLog, boolean updateIndexes)
    • applyFuture

      public Future<?> applyFuture(Mutation mutation, boolean writeCommitLog, boolean updateIndexes, boolean isDroppable, boolean isDeferrable)
    • apply

      public void apply(Mutation mutation, boolean writeCommitLog, boolean updateIndexes)
    • apply

      public void apply(Mutation mutation, boolean writeCommitLog)
    • apply

      public void apply(Mutation mutation, boolean makeDurable, boolean updateIndexes, boolean isDroppable)
      If apply is blocking, apply must not be deferred Otherwise there is a race condition where ALL mutation workers are beeing blocked ending in a complete deadlock of the mutation stage. See CASSANDRA-12689.
      Parameters:
      mutation - the row to write. Must not be modified after calling apply, since commitlog append may happen concurrently, depending on the CL Executor type.
      makeDurable - if true, don't return unless write has been made durable
      updateIndexes - false to disable index updates (used by CollationController "defragmenting")
      isDroppable - true if this should throw WriteTimeoutException if it does not acquire lock within write_request_timeout
    • getReplicationStrategy

      public AbstractReplicationStrategy getReplicationStrategy()
    • flush

      public List<Future<?>> flush(ColumnFamilyStore.FlushReason reason)
    • getValidColumnFamilies

      public Iterable<ColumnFamilyStore> getValidColumnFamilies(boolean allowIndexes, boolean autoAddIndexes, String... cfNames)
    • all

      public static Iterable<Keyspace> all()
    • allExisting

      public static Stream<Keyspace> allExisting()
      Returns:
      a Stream of all existing/open Keyspace instances
    • nonLocalStrategy

      public static Iterable<Keyspace> nonLocalStrategy()
    • system

      public static Iterable<Keyspace> system()
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getName

      public String getName()