public class Schema
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static java.util.UUID |
emptyVersion |
static Schema |
instance |
static int |
NAME_LENGTH
longest permissible KS or CF name.
|
static com.google.common.collect.ImmutableSet<java.lang.String> |
replicatedSystemKeyspaceNames |
static com.google.common.collect.ImmutableSet<java.lang.String> |
systemKeyspaceNames |
Constructor and Description |
---|
Schema()
Initialize empty schema object
|
Modifier and Type | Method and Description |
---|---|
void |
clear()
Clear all KS/CF metadata and reset version.
|
void |
clearKeyspaceDefinition(KSMetaData ksm)
Remove keyspace definition from system
|
Pair<java.lang.String,java.lang.String> |
getCF(java.util.UUID cfId) |
CFMetaData |
getCFMetaData(Descriptor descriptor) |
CFMetaData |
getCFMetaData(java.lang.String keyspaceName,
java.lang.String cfName)
Given a keyspace name & column family name, get the column family
meta data.
|
CFMetaData |
getCFMetaData(java.util.UUID cfId)
Get ColumnFamily metadata by its identifier
|
ColumnFamilyStore |
getColumnFamilyStoreIncludingIndexes(Pair<java.lang.String,java.lang.String> ksNameAndCFName)
Retrieve a CFS by name even if that CFS is an index
An index is identified by looking for '.' in the CF name and separating to find the base table
containing the index
|
ColumnFamilyStore |
getColumnFamilyStoreInstance(java.util.UUID cfId) |
ColumnFamilyType |
getColumnFamilyType(java.lang.String ksName,
java.lang.String cfName)
Get type of the ColumnFamily but it's keyspace/name
|
java.util.UUID |
getId(java.lang.String ksName,
java.lang.String cfName)
Lookup keyspace/ColumnFamily identifier
|
java.util.Collection<KSMetaData> |
getKeyspaceDefinitions() |
Keyspace |
getKeyspaceInstance(java.lang.String keyspaceName)
Get keyspace instance by name
|
java.util.Map<java.lang.String,CFMetaData> |
getKeyspaceMetaData(java.lang.String keyspaceName)
Get metadata about keyspace inner ColumnFamilies
|
java.util.Set<java.lang.String> |
getKeyspaces() |
KSMetaData |
getKSMetaData(java.lang.String keyspaceName)
Get metadata about keyspace by its name
|
java.util.List<java.lang.String> |
getNonSystemKeyspaces() |
java.util.List<java.lang.String> |
getUserKeyspaces() |
java.util.UUID |
getVersion() |
boolean |
hasCF(Pair<java.lang.String,java.lang.String> ksAndCFName) |
static boolean |
ignoredSchemaRow(Row row) |
static boolean |
invalidSchemaRow(Row row) |
void |
load(CFMetaData cfm)
Load individual ColumnFamily Definition to the schema
(to make ColumnFamily lookup faster)
|
Schema |
load(java.util.Collection<KSMetaData> keyspaceDefs)
Load up non-system keyspaces
|
Schema |
load(KSMetaData keyspaceDef)
Load specific keyspace into Schema
|
void |
purge(CFMetaData cfm)
Used for ColumnFamily data eviction out from the schema
|
Keyspace |
removeKeyspaceInstance(java.lang.String keyspaceName)
Remove keyspace from schema
|
void |
setKeyspaceDefinition(KSMetaData ksm)
Update (or insert) new keyspace definition
|
void |
storeKeyspaceInstance(Keyspace keyspace)
Store given Keyspace instance to the schema
|
void |
updateVersion()
Read schema from system keyspace and calculate MD5 digest of every row, resulting digest
will be converted into UUID which would act as content-based version of the schema.
|
void |
updateVersionAndAnnounce() |
public static final Schema instance
public static final int NAME_LENGTH
public static final java.util.UUID emptyVersion
public static final com.google.common.collect.ImmutableSet<java.lang.String> systemKeyspaceNames
public static final com.google.common.collect.ImmutableSet<java.lang.String> replicatedSystemKeyspaceNames
public Schema load(java.util.Collection<KSMetaData> keyspaceDefs)
keyspaceDefs
- The non-system keyspace definitionspublic Schema load(KSMetaData keyspaceDef)
keyspaceDef
- The keyspace to load uppublic Keyspace getKeyspaceInstance(java.lang.String keyspaceName)
keyspaceName
- The name of the keyspacepublic ColumnFamilyStore getColumnFamilyStoreIncludingIndexes(Pair<java.lang.String,java.lang.String> ksNameAndCFName)
ksNameAndCFName
- public ColumnFamilyStore getColumnFamilyStoreInstance(java.util.UUID cfId)
public void storeKeyspaceInstance(Keyspace keyspace)
keyspace
- The Keyspace instance to storejava.lang.IllegalArgumentException
- if Keyspace is already storedpublic Keyspace removeKeyspaceInstance(java.lang.String keyspaceName)
keyspaceName
- The name of the keyspace to removepublic void clearKeyspaceDefinition(KSMetaData ksm)
ksm
- The keyspace definition to removepublic CFMetaData getCFMetaData(java.lang.String keyspaceName, java.lang.String cfName)
keyspaceName
- The keyspace namecfName
- The ColumnFamily namepublic CFMetaData getCFMetaData(java.util.UUID cfId)
cfId
- The ColumnFamily identifierpublic CFMetaData getCFMetaData(Descriptor descriptor)
public ColumnFamilyType getColumnFamilyType(java.lang.String ksName, java.lang.String cfName)
ksName
- The keyspace namecfName
- The ColumnFamily namepublic KSMetaData getKSMetaData(java.lang.String keyspaceName)
keyspaceName
- The name of the keyspacepublic java.util.List<java.lang.String> getNonSystemKeyspaces()
public java.util.List<java.lang.String> getUserKeyspaces()
public java.util.Map<java.lang.String,CFMetaData> getKeyspaceMetaData(java.lang.String keyspaceName)
keyspaceName
- The name of the keyspacepublic java.util.Set<java.lang.String> getKeyspaces()
public java.util.Collection<KSMetaData> getKeyspaceDefinitions()
public void setKeyspaceDefinition(KSMetaData ksm)
ksm
- The metadata about keyspacepublic Pair<java.lang.String,java.lang.String> getCF(java.util.UUID cfId)
cfId
- The identifier of the ColumnFamily to lookuppublic boolean hasCF(Pair<java.lang.String,java.lang.String> ksAndCFName)
ksAndCFName
- The identifier of the ColumnFamily to lookuppublic java.util.UUID getId(java.lang.String ksName, java.lang.String cfName)
ksName
- The keyspace namecfName
- The ColumnFamily namepublic void load(CFMetaData cfm)
cfm
- The ColumnFamily definition to loadpublic void purge(CFMetaData cfm)
cfm
- The ColumnFamily Definition to evictpublic java.util.UUID getVersion()
public void updateVersion()
public void updateVersionAndAnnounce()
public void clear()
public static boolean invalidSchemaRow(Row row)
public static boolean ignoredSchemaRow(Row row)
Copyright © 2016 The Apache Software Foundation