Class Keyspace


  • public class Keyspace
    extends java.lang.Object
    It represents a Keyspace.
    • Method Detail

      • 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​(java.lang.String keyspaceName)
      • openWithoutSSTables

        public static Keyspace openWithoutSSTables​(java.lang.String keyspaceName)
      • open

        public static Keyspace open​(java.lang.String keyspaceName,
                                    SchemaProvider schema,
                                    boolean loadSSTables)
      • 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.
      • getColumnFamilyStores

        public java.util.Collection<ColumnFamilyStore> getColumnFamilyStores()
      • getColumnFamilyStore

        public ColumnFamilyStore getColumnFamilyStore​(java.lang.String cfName)
      • hasColumnFamilyStore

        public boolean hasColumnFamilyStore​(TableId id)
      • snapshot

        public void snapshot​(java.lang.String snapshotName,
                             java.lang.String columnFamilyName,
                             boolean skipFlush,
                             DurationSpec.IntSecondsBound ttl,
                             com.google.common.util.concurrent.RateLimiter rateLimiter,
                             java.time.Instant creationTime)
                      throws java.io.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:
        java.io.IOException - if the column family doesn't exist
      • snapshot

        public void snapshot​(java.lang.String snapshotName,
                             java.lang.String columnFamilyName)
                      throws java.io.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:
        java.io.IOException - if the column family doesn't exist
      • getTimestampedSnapshotName

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

        public static java.lang.String getTimestampedSnapshotNameWithPrefix​(java.lang.String clientSuppliedName,
                                                                            java.lang.String prefix)
      • snapshotExists

        public boolean snapshotExists​(java.lang.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 java.util.List<SSTableReader> getAllSSTables​(SSTableSet sstableSet)
        Returns:
        A list of open SSTableReaders
      • getAllSnapshots

        public java.util.stream.Stream<TableSnapshot> getAllSnapshots()
      • 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.
      • 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
      • getValidColumnFamilies

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

        public static java.lang.Iterable<Keyspace> all()
      • allExisting

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

        public static java.lang.Iterable<Keyspace> nonLocalStrategy()
      • system

        public static java.lang.Iterable<Keyspace> system()
      • toString

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

        public java.lang.String getName()