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> |
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
|
ColumnFamilyType |
getColumnFamilyType(java.lang.String ksName,
java.lang.String cfName)
Get type of the ColumnFamily but it's keyspace/name
|
AbstractType<?> |
getComparator(java.lang.String ksName,
java.lang.String cfName)
Get column comparator for 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() |
AbstractType<?> |
getValueValidator(java.lang.String ksName,
java.lang.String cfName,
java.nio.ByteBuffer column)
Get value validator for specific column
|
java.util.UUID |
getVersion() |
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 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 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 AbstractType<?> getComparator(java.lang.String ksName, java.lang.String cfName)
ksName
- The keyspace namecfName
- The ColumnFamily namepublic AbstractType<?> getValueValidator(java.lang.String ksName, java.lang.String cfName, java.nio.ByteBuffer column)
ksName
- The keyspace namecfName
- The ColumnFamily namecolumn
- The name of the columnpublic KSMetaData getKSMetaData(java.lang.String keyspaceName)
keyspaceName
- The name of the keyspacepublic java.util.List<java.lang.String> getNonSystemKeyspaces()
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 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 © 2013 The Apache Software Foundation