The name of a Kiji-controlled Cassandra table name.
Multiple instances of Kiji can be installed on a single Cassandra cluster. Within a Kiji instance, several Cassandra tables are created to manage system, metadata, schemas, and user-space tables. This class represents the name of one of those Cassandra tables that are created and managed by Kiji. This class should only be used internally in Kiji modules, or by framework application developers who need direct access to Cassandra tables managed by Kiji.
The names of tables in Cassandra created and managed by Kiji are made of a list of delimited components. There are at least 3 components of a name:
- Prefix: a literal string "kiji" used to mark that this table is managed by Kiji.
- KijiInstance: the name of kiji instance managing this table.
- Type: the type of table (system, schema, meta, user).
- Name: if the table is a user table ("lg"), then the Kiji table's name is the fourth component.
- Name: if the table is a user table ("lg"), then the locality group ID is the fifth component.
For example, a Cassandra cluster might have the following tables:
devices kiji_default.meta kiji_default.schema kiji_default.schema_hash kiji_default.schema_id kiji_default.system kiji_default.lg_foo_BB kiji_default.lg_foo_BC kiji_default.lg_bar_BB kiji_experimental.meta kiji_experimental.schema kiji_experimental.schema_hash kiji_experimental.schema_id kiji_experimental.system kiji_experimental.lg_baz_BB
In this example, there is a Cassandra keyspace completely unrelated to Kiji called "devices." There are two Kiji installations, one called "default" and another called "experimental." Within the "default" installation, there are two Kiji tables, "foo" and "bar." Within the "experimental" installation, there is a single Kiji table "baz."
Note that Cassandra does not allow the "." character in keyspace or table names, so the '_' character is used as a delimiter.