You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cassandra.apache.org by Jinhua Luo <lu...@gmail.com> on 2018/04/16 08:48:31 UTC

where does c* store the schema?

Hi All,

Does c* use predefined keyspace/tables to store the user defined schema?
If so, what's the RWN of those meta schema? And what's the procedure
to update them?

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@cassandra.apache.org
For additional commands, e-mail: user-help@cassandra.apache.org


Re: where does c* store the schema?

Posted by Rahul Singh <ra...@gmail.com>.
Blake, you are right — although it’s he system keyspace not the system table. There are a few tables : schema_keyspaces, schema_columnfamilies, schema_columns which are correlated via cf_id , keyspace , columnfamilyname, and Columnname

I was thinking about the system_auth keyspace.

Jinhua,

It should catch up but every now and then if the changes are too great, it’s easier to run nodetool resetlocalschema https://docs.datastax.com/en/cassandra/2.1/cassandra/tools/toolsResetLocalSchema.html

--
Rahul Singh
rahul.singh@anant.us

Anant Corporation

On Apr 18, 2018, 1:17 AM -0500, Jinhua Luo <lu...@gmail.com>, wrote:
> What happens If one node has outdated version of schema, and it
> launches a write request upon that schema to other nodes as a
> coordinator?
> The received nodes would reject the coordinator?
>
>
>
>
> 2018-04-18 8:12 GMT+08:00 Blake Eggleston <be...@apple.com>:
> > Rahul, none of that is true at all.
> >
> >
> >
> > Each node stores schema locally in a non-replicated system table. Schema
> > changes are disseminated directly to live nodes (not the write path), and
> > the schema version is gossiped to other nodes. If a node misses a schema
> > update, it will figure this out when it notices that it’s local schema
> > version is behind the one being gossiped by the rest of the cluster, and
> > will pull the updated schema from the other nodes in the cluster.
> >
> >
> >
> > From: Rahul Singh <rahul.xavier.singh@gmail.com
> > Reply-To: <user@cassandra.apache.org
> > Date: Tuesday, April 17, 2018 at 4:13 PM
> > To: <user@cassandra.apache.org
> > Subject: Re: where does c* store the schema?
> >
> >
> >
> > It uses a “everywhere” replication strategy and its recommended to do all
> > alter / create / drop statements with consistency level all — meaning it
> > wouldn’t make the change to the schema if the nodes are up.
> >
> >
> > --
> > Rahul Singh
> > rahul.singh@anant.us
> >
> > Anant Corporation
> >
> >
> > On Apr 17, 2018, 12:31 AM -0500, Jinhua Luo <lu...@gmail.com>, wrote:
> >
> > Yes, I know it must be in system schema.
> >
> > But how c* replicates the user defined schema to all nodes? If it
> > applies the same RWN model to them, then what's the R and W?
> > And when a failed node comes back to the cluster, how to recover the
> > schema updates it may miss during the outage?
> >
> > 2018-04-16 17:01 GMT+08:00 DuyHai Doan <do...@gmail.com>:
> >
> > There is a system_schema keyspace to store all the schema information
> >
> > https://docs.datastax.com/en/cql/3.3/cql/cql_using/useQuerySystem.html#useQuerySystem__table_bhg_1bw_4v
> >
> > On Mon, Apr 16, 2018 at 10:48 AM, Jinhua Luo <lu...@gmail.com> wrote:
> >
> >
> > Hi All,
> >
> > Does c* use predefined keyspace/tables to store the user defined schema?
> > If so, what's the RWN of those meta schema? And what's the procedure
> > to update them?
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: user-unsubscribe@cassandra.apache.org
> > For additional commands, e-mail: user-help@cassandra.apache.org
> >
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: user-unsubscribe@cassandra.apache.org
> > For additional commands, e-mail: user-help@cassandra.apache.org
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@cassandra.apache.org
> For additional commands, e-mail: user-help@cassandra.apache.org
>

Re: where does c* store the schema?

Posted by Jinhua Luo <lu...@gmail.com>.
What happens If one node has outdated version of schema, and it
launches a write request upon that schema to other nodes as a
coordinator?
The received nodes would reject the coordinator?




2018-04-18 8:12 GMT+08:00 Blake Eggleston <be...@apple.com>:
> Rahul, none of that is true at all.
>
>
>
> Each node stores schema locally in a non-replicated system table. Schema
> changes are disseminated directly to live nodes (not the write path), and
> the schema version is gossiped to other nodes. If a node misses a schema
> update, it will figure this out when it notices that it’s local schema
> version is behind the one being gossiped by the rest of the cluster, and
> will pull the updated schema from the other nodes in the cluster.
>
>
>
> From: Rahul Singh <ra...@gmail.com>
> Reply-To: <us...@cassandra.apache.org>
> Date: Tuesday, April 17, 2018 at 4:13 PM
> To: <us...@cassandra.apache.org>
> Subject: Re: where does c* store the schema?
>
>
>
> It uses a “everywhere” replication strategy and its recommended to do all
> alter / create / drop statements with consistency level all — meaning it
> wouldn’t make the change to the schema if the nodes are up.
>
>
> --
> Rahul Singh
> rahul.singh@anant.us
>
> Anant Corporation
>
>
> On Apr 17, 2018, 12:31 AM -0500, Jinhua Luo <lu...@gmail.com>, wrote:
>
> Yes, I know it must be in system schema.
>
> But how c* replicates the user defined schema to all nodes? If it
> applies the same RWN model to them, then what's the R and W?
> And when a failed node comes back to the cluster, how to recover the
> schema updates it may miss during the outage?
>
> 2018-04-16 17:01 GMT+08:00 DuyHai Doan <do...@gmail.com>:
>
> There is a system_schema keyspace to store all the schema information
>
> https://docs.datastax.com/en/cql/3.3/cql/cql_using/useQuerySystem.html#useQuerySystem__table_bhg_1bw_4v
>
> On Mon, Apr 16, 2018 at 10:48 AM, Jinhua Luo <lu...@gmail.com> wrote:
>
>
> Hi All,
>
> Does c* use predefined keyspace/tables to store the user defined schema?
> If so, what's the RWN of those meta schema? And what's the procedure
> to update them?
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@cassandra.apache.org
> For additional commands, e-mail: user-help@cassandra.apache.org
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@cassandra.apache.org
> For additional commands, e-mail: user-help@cassandra.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@cassandra.apache.org
For additional commands, e-mail: user-help@cassandra.apache.org


Re: where does c* store the schema?

Posted by Blake Eggleston <be...@apple.com>.
Rahul, none of that is true at all. 

 

Each node stores schema locally in a non-replicated system table. Schema changes are disseminated directly to live nodes (not the write path), and the schema version is gossiped to other nodes. If a node misses a schema update, it will figure this out when it notices that it’s local schema version is behind the one being gossiped by the rest of the cluster, and will pull the updated schema from the other nodes in the cluster.

 

From: Rahul Singh <ra...@gmail.com>
Reply-To: <us...@cassandra.apache.org>
Date: Tuesday, April 17, 2018 at 4:13 PM
To: <us...@cassandra.apache.org>
Subject: Re: where does c* store the schema?

 

It uses a “everywhere” replication strategy and its recommended to do all alter / create / drop statements with consistency level all — meaning it wouldn’t make the change to the schema if the nodes are up.


--
Rahul Singh
rahul.singh@anant.us

Anant Corporation


On Apr 17, 2018, 12:31 AM -0500, Jinhua Luo <lu...@gmail.com>, wrote:


Yes, I know it must be in system schema.

But how c* replicates the user defined schema to all nodes? If it
applies the same RWN model to them, then what's the R and W?
And when a failed node comes back to the cluster, how to recover the
schema updates it may miss during the outage?

2018-04-16 17:01 GMT+08:00 DuyHai Doan <do...@gmail.com>:


There is a system_schema keyspace to store all the schema information

https://docs.datastax.com/en/cql/3.3/cql/cql_using/useQuerySystem.html#useQuerySystem__table_bhg_1bw_4v

On Mon, Apr 16, 2018 at 10:48 AM, Jinhua Luo <lu...@gmail.com> wrote:



Hi All,

Does c* use predefined keyspace/tables to store the user defined schema?
If so, what's the RWN of those meta schema? And what's the procedure
to update them?

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@cassandra.apache.org
For additional commands, e-mail: user-help@cassandra.apache.org

 


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@cassandra.apache.org
For additional commands, e-mail: user-help@cassandra.apache.org


Re: where does c* store the schema?

Posted by Rahul Singh <ra...@gmail.com>.
It uses a “everywhere” replication strategy and its recommended to do all alter / create / drop statements with consistency level all — meaning it wouldn’t make the change to the schema if the nodes are up.

--
Rahul Singh
rahul.singh@anant.us

Anant Corporation

On Apr 17, 2018, 12:31 AM -0500, Jinhua Luo <lu...@gmail.com>, wrote:
> Yes, I know it must be in system schema.
>
> But how c* replicates the user defined schema to all nodes? If it
> applies the same RWN model to them, then what's the R and W?
> And when a failed node comes back to the cluster, how to recover the
> schema updates it may miss during the outage?
>
> 2018-04-16 17:01 GMT+08:00 DuyHai Doan <do...@gmail.com>:
> > There is a system_schema keyspace to store all the schema information
> >
> > https://docs.datastax.com/en/cql/3.3/cql/cql_using/useQuerySystem.html#useQuerySystem__table_bhg_1bw_4v
> >
> > On Mon, Apr 16, 2018 at 10:48 AM, Jinhua Luo <lu...@gmail.com> wrote:
> > >
> > > Hi All,
> > >
> > > Does c* use predefined keyspace/tables to store the user defined schema?
> > > If so, what's the RWN of those meta schema? And what's the procedure
> > > to update them?
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: user-unsubscribe@cassandra.apache.org
> > > For additional commands, e-mail: user-help@cassandra.apache.org
> > >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@cassandra.apache.org
> For additional commands, e-mail: user-help@cassandra.apache.org
>

Re: where does c* store the schema?

Posted by Jinhua Luo <lu...@gmail.com>.
Yes, I know it must be in system schema.

But how c* replicates the user defined schema to all nodes? If it
applies the same RWN model to them, then what's the R and W?
And when a failed node comes back to the cluster, how to recover the
schema updates it may miss during the outage?

2018-04-16 17:01 GMT+08:00 DuyHai Doan <do...@gmail.com>:
> There is a system_schema keyspace to store all the schema information
>
> https://docs.datastax.com/en/cql/3.3/cql/cql_using/useQuerySystem.html#useQuerySystem__table_bhg_1bw_4v
>
> On Mon, Apr 16, 2018 at 10:48 AM, Jinhua Luo <lu...@gmail.com> wrote:
>>
>> Hi All,
>>
>> Does c* use predefined keyspace/tables to store the user defined schema?
>> If so, what's the RWN of those meta schema? And what's the procedure
>> to update them?
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@cassandra.apache.org
>> For additional commands, e-mail: user-help@cassandra.apache.org
>>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@cassandra.apache.org
For additional commands, e-mail: user-help@cassandra.apache.org


Re: where does c* store the schema?

Posted by DuyHai Doan <do...@gmail.com>.
There is a system_schema keyspace to store all the schema information

https://docs.datastax.com/en/cql/3.3/cql/cql_using/useQuerySystem.html#useQuerySystem__table_bhg_1bw_4v

On Mon, Apr 16, 2018 at 10:48 AM, Jinhua Luo <lu...@gmail.com> wrote:

> Hi All,
>
> Does c* use predefined keyspace/tables to store the user defined schema?
> If so, what's the RWN of those meta schema? And what's the procedure
> to update them?
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@cassandra.apache.org
> For additional commands, e-mail: user-help@cassandra.apache.org
>
>