Is Table created in all the nodes if the default consistency level used

classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

Is Table created in all the nodes if the default consistency level used

鄢来琼

Could you tell me whether the meta data of the new table are build in all the nodes after execute the following statement.

 

cassandra_session.execute_async(

“““CREATE TABLE Table_test(
      ID uuid,
      Time timestamp,
      Value double,
      Date timestamp,
      PRIMARY KEY ((ID,Date), Time)
) WITH COMPACT STORAGE;

”””

)

 

As I know, the system keyspace is used to store the meta data, but the strategy is localStrategy, which only store meta data of local node.

So I want to know whether table is created in all the nodes, should I add consistency_level setting to the above statement to make sure

“create table” will be executed in all the nodes?

Thanks.

 

Peter

 

Reply | Threaded
Open this post in threaded view
|

Re: Is Table created in all the nodes if the default consistency level used

daemeon reiydelle
If you want to guarantee that the data is written to all nodes before the code returns, then yes you have to use "consistency all". Otherwise there is a small risk of outdated data being served if a node goes offline longer than hints timeouts.

Somewhat looser options that can assure multiple copies are written, as you probably know, are quorum or a hard coded value. This applies to a typical installation with a substantial number of nodes of course, not a small 2-3 node cluster.

I am curious why localStrategy when you have such concerns about data consistency that you want to assure all nodes get data written. Can you elaborate on your use case?


.......
“Life should not be a journey to the grave with the intention of arriving safely in a
pretty and well preserved body, but rather to skid in broadside in a cloud of smoke,
thoroughly used up, totally worn out, and loudly proclaiming “Wow! What a Ride!”

- Hunter Thompson

Daemeon C.M. Reiydelle
USA (+1) 415.501.0198
London (+44) (0) 20 8144 9872


On Sun, Mar 15, 2015 at 8:11 PM, 鄢来琼 <[hidden email]> wrote:

Could you tell me whether the meta data of the new table are build in all the nodes after execute the following statement.

 

cassandra_session.execute_async(

“““CREATE TABLE Table_test(
      ID uuid,
      Time timestamp,
      Value double,
      Date timestamp,
      PRIMARY KEY ((ID,Date), Time)
) WITH COMPACT STORAGE;

”””

)

 

As I know, the system keyspace is used to store the meta data, but the strategy is localStrategy, which only store meta data of local node.

So I want to know whether table is created in all the nodes, should I add consistency_level setting to the above statement to make sure

“create table” will be executed in all the nodes?

Thanks.

 

Peter

 


Reply | Threaded
Open this post in threaded view
|

Re: Is Table created in all the nodes if the default consistency level used

鄢来琼
In reply to this post by 鄢来琼

Hi Daemeon,

 

Yes, I use “NetworkTopologyStrategy” strategy for “Table_test”,

but “System keyspace” is Cassandra internal keyspace, its strategy is localStrategy.

So my question is how to guarantee “Table_test” is created in all the nodes before any R/W opertions?

 

Thanks.

 

Peter

 

 

发件人: daemeon reiydelle [mailto:[hidden email]]
发送时间: 2015316 14:35
收件人: [hidden email]
主题: Re: Is Table created in all the nodes if the default consistency level used

 

If you want to guarantee that the data is written to all nodes before the code returns, then yes you have to use "consistency all". Otherwise there is a small risk of outdated data being served if a node goes offline longer than hints timeouts.

Somewhat looser options that can assure multiple copies are written, as you probably know, are quorum or a hard coded value. This applies to a typical installation with a substantial number of nodes of course, not a small 2-3 node cluster.

I am curious why localStrategy when you have such concerns about data consistency that you want to assure all nodes get data written. Can you elaborate on your use case?



.......
“Life should not be a journey to the grave with the intention of arriving safely in a
pretty and well preserved body, but rather to skid in broadside in a cloud of smoke,
thoroughly used up, totally worn out, and loudly proclaiming “Wow! What a Ride!”
- Hunter Thompson

Daemeon C.M. Reiydelle
USA (+1) 415.501.0198
London (+44) (0) 20 8144 9872

 

On Sun, Mar 15, 2015 at 8:11 PM, 鄢来琼 <[hidden email]> wrote:

Could you tell me whether the meta data of the new table are build in all the nodes after execute the following statement.

 

cassandra_session.execute_async(

“““CREATE TABLE Table_test(
      ID uuid,
      Time timestamp,
      Value double,
      Date timestamp,
      PRIMARY KEY ((ID,Date), Time)
) WITH COMPACT STORAGE;

”””

)

 

As I know, the system keyspace is used to store the meta data, but the strategy is localStrategy, which only store meta data of local node.

So I want to know whether table is created in all the nodes, should I add consistency_level setting to the above statement to make sure

“create table” will be executed in all the nodes?

Thanks.

 

Peter

 

 

Reply | Threaded
Open this post in threaded view
|

Re: Is Table created in all the nodes if the default consistency level used

鄢来琼
In reply to this post by 鄢来琼

Cassandra is used in a message process system.

The table will be created at a fixed time each day.

We want the table can be created before the message arrived.

So I want to guarantee table is created in all the nodes.

 

Peter

 

发件人: 鄢来琼
发送时间: 2015316 15:14
收件人: [hidden email]
主题: Re: Is Table created in all the nodes if the default consistency level used

 

Hi Daemeon,

 

Yes, I use “NetworkTopologyStrategy” strategy for “Table_test”,

but “System keyspace” is Cassandra internal keyspace, its strategy is localStrategy.

So my question is how to guarantee “Table_test” is created in all the nodes before any R/W opertions?

 

Thanks.

 

Peter

 

 

发件人: daemeon reiydelle [mailto:[hidden email]]
发送时间: 2015316 14:35
收件人: [hidden email]
主题: Re: Is Table created in all the nodes if the default consistency level used

 

If you want to guarantee that the data is written to all nodes before the code returns, then yes you have to use "consistency all". Otherwise there is a small risk of outdated data being served if a node goes offline longer than hints timeouts.

Somewhat looser options that can assure multiple copies are written, as you probably know, are quorum or a hard coded value. This applies to a typical installation with a substantial number of nodes of course, not a small 2-3 node cluster.

I am curious why localStrategy when you have such concerns about data consistency that you want to assure all nodes get data written. Can you elaborate on your use case?



.......
“Life should not be a journey to the grave with the intention of arriving safely in a
pretty and well preserved body, but rather to skid in broadside in a cloud of smoke,
thoroughly used up, totally worn out, and loudly proclaiming “Wow! What a Ride!”
- Hunter Thompson

Daemeon C.M. Reiydelle
USA (+1) 415.501.0198
London (+44) (0) 20 8144 9872

 

On Sun, Mar 15, 2015 at 8:11 PM, 鄢来琼 <[hidden email]> wrote:

Could you tell me whether the meta data of the new table are build in all the nodes after execute the following statement.

 

cassandra_session.execute_async(

“““CREATE TABLE Table_test(
      ID uuid,
      Time timestamp,
      Value double,
      Date timestamp,
      PRIMARY KEY ((ID,Date), Time)
) WITH COMPACT STORAGE;

”””

)

 

As I know, the system keyspace is used to store the meta data, but the strategy is localStrategy, which only store meta data of local node.

So I want to know whether table is created in all the nodes, should I add consistency_level setting to the above statement to make sure

create table will be executed in all the nodes?

Thanks.

 

Peter

 

 

Reply | Threaded
Open this post in threaded view
|

Re: Is Table created in all the nodes if the default consistency level used

Eric Stevens
Cassandra is used in a message process system.

> The table will be created at a fixed time each day.


Make sure you're keeping the total number of tables which exist at any given time to a reasonable limit.  There is a fixed memory cost for each table, and if you have too many tables you will produce memory pressure in Cassandra.

On Mon, Mar 16, 2015 at 1:28 AM, 鄢来琼 <[hidden email]> wrote:

Cassandra is used in a message process system.

The table will be created at a fixed time each day.

We want the table can be created before the message arrived.

So I want to guarantee table is created in all the nodes.

 

Peter

 

发件人: 鄢来琼
发送时间: 2015316 15:14

收件人: [hidden email]
主题: Re: Is Table created in all the nodes if the default consistency level used

 

Hi Daemeon,

 

Yes, I use “NetworkTopologyStrategy” strategy for “Table_test”,

but “System keyspace” is Cassandra internal keyspace, its strategy is localStrategy.

So my question is how to guarantee “Table_test” is created in all the nodes before any R/W opertions?

 

Thanks.

 

Peter

 

 

发件人: daemeon reiydelle [mailto:[hidden email]]
发送时间: 2015316 14:35
收件人: [hidden email]
主题: Re: Is Table created in all the nodes if the default consistency level used

 

If you want to guarantee that the data is written to all nodes before the code returns, then yes you have to use "consistency all". Otherwise there is a small risk of outdated data being served if a node goes offline longer than hints timeouts.

Somewhat looser options that can assure multiple copies are written, as you probably know, are quorum or a hard coded value. This applies to a typical installation with a substantial number of nodes of course, not a small 2-3 node cluster.

I am curious why localStrategy when you have such concerns about data consistency that you want to assure all nodes get data written. Can you elaborate on your use case?



.......
“Life should not be a journey to the grave with the intention of arriving safely in a
pretty and well preserved body, but rather to skid in broadside in a cloud of smoke,
thoroughly used up, totally worn out, and loudly proclaiming “Wow! What a Ride!”
- Hunter Thompson

Daemeon C.M. Reiydelle
USA <a href="tel:%28%2B1%29%20415.501.0198" value="+14155010198" target="_blank">(+1) 415.501.0198
London <a href="tel:%28%2B44%29%20%280%29%2020%208144%209872" value="+442081449872" target="_blank">(+44) (0) 20 8144 9872

 

On Sun, Mar 15, 2015 at 8:11 PM, 鄢来琼 <[hidden email]> wrote:

Could you tell me whether the meta data of the new table are build in all the nodes after execute the following statement.

 

cassandra_session.execute_async(

“““CREATE TABLE Table_test(
      ID uuid,
      Time timestamp,
      Value double,
      Date timestamp,
      PRIMARY KEY ((ID,Date), Time)
) WITH COMPACT STORAGE;

”””

)

 

As I know, the system keyspace is used to store the meta data, but the strategy is localStrategy, which only store meta data of local node.

So I want to know whether table is created in all the nodes, should I add consistency_level setting to the above statement to make sure

create table will be executed in all the nodes?

Thanks.

 

Peter

 

 


Reply | Threaded
Open this post in threaded view
|

Re: Is Table created in all the nodes if the default consistency level used

Saladi Naidu
In reply to this post by 鄢来琼
There are 3 different things we are talking here

1. SimpleStrategy vs. NetworkTopology matter when you have single DC vs. Multiple DC's
2. In both cases you can specific replication factor, obviously in SimpleStratgey case you dont mention DC whereas in NetworkTopology, you can mentione mutiple options by each DC's replication requirements.
3. Now if your question is referred to single DC then even if your System keyspace is SimpleStartegy and your user table is NetworkToplogy, it should not matter and Table_Test will be created in all nodes
4. If your System_auth KS is set less than number of nodes, you will face AUTH issues.
 
Naidu Saladi


From: 鄢来琼 <[hidden email]>
To: "[hidden email]" <[hidden email]>
Sent: Monday, March 16, 2015 2:13 AM
Subject: Re: Is Table created in all the nodes if the default consistency level used

Hi Daemeon,
 
Yes, I use “NetworkTopologyStrategy” strategy for “Table_test”,
but “System keyspace” is Cassandra internal keyspace, its strategy is localStrategy.
So my question is how to guarantee “Table_test” is created in all the nodes before any R/W opertions?
 
Thanks.
 
Peter
 
 


发件人: daemeon reiydelle [mailto:[hidden email]]
发送时间: 2015316 14:35
收件人: [hidden email]
主题: Re: Is Table created in all the nodes if the default consistency level used
 
If you want to guarantee that the data is written to all nodes before the code returns, then yes you have to use "consistency all". Otherwise there is a small risk of outdated data being served if a node goes offline longer than hints timeouts.
Somewhat looser options that can assure multiple copies are written, as you probably know, are quorum or a hard coded value. This applies to a typical installation with a substantial number of nodes of course, not a small 2-3 node cluster.
I am curious why localStrategy when you have such concerns about data consistency that you want to assure all nodes get data written. Can you elaborate on your use case?


.......
“Life should not be a journey to the grave with the intention of arriving safely in a
pretty and well preserved body, but rather to skid in broadside in a cloud of smoke,
thoroughly used up, totally worn out, and loudly proclaiming “Wow! What a Ride!”
- Hunter Thompson

Daemeon C.M. Reiydelle
USA (+1) 415.501.0198
London (+44) (0) 20 8144 9872
 
On Sun, Mar 15, 2015 at 8:11 PM, 鄢来琼 <[hidden email]> wrote:
Could you tell me whether the meta data of the new table are build in all the nodes after execute the following statement.
 
cassandra_session.execute_async(
“““CREATE TABLE Table_test(
      ID uuid,
      Time timestamp,
      Value double,
      Date timestamp,
      PRIMARY KEY ((ID,Date), Time)
) WITH COMPACT STORAGE;
”””
)
 
As I know, the system keyspace is used to store the meta data, but the strategy is localStrategy, which only store meta data of local node.
So I want to know whether table is created in all the nodes, should I add consistency_level setting to the above statement to make sure
“create table” will be executed in all the nodes?
Thanks.
 
Peter
 
 


Reply | Threaded
Open this post in threaded view
|

Re: Is Table created in all the nodes if the default consistency level used

daemeon reiydelle
If I am following your thread correctly, I think you might be confusing the "creeation" of a table with the "recording of the definition" + "storage for the table allocated".

When you define the table, based on your config, the existence of the table is recorded in the master node(s). But tables are not "created" on data nodes. Data nodes store the data (or their pieces of it) when actual data is written to the table ... so creating a table does not cause memtables (or empty sst's) to be created. When you insert into the table, and data has to go "someplace", the memtables and sst's start tracking that data. Does this clarify?

As an aside, you will only get stale data if the read consistency level together with the number of nodes that went offline (which hold copies of the table), allow it: e.g. imagine read consistency 1 and one node with stale data, etc.


.......
“Life should not be a journey to the grave with the intention of arriving safely in a
pretty and well preserved body, but rather to skid in broadside in a cloud of smoke,
thoroughly used up, totally worn out, and loudly proclaiming “Wow! What a Ride!”

- Hunter Thompson

Daemeon C.M. Reiydelle
USA (+1) 415.501.0198
London (+44) (0) 20 8144 9872


On Mon, Mar 16, 2015 at 8:41 PM, Saladi Naidu <[hidden email]> wrote:
There are 3 different things we are talking here

1. SimpleStrategy vs. NetworkTopology matter when you have single DC vs. Multiple DC's
2. In both cases you can specific replication factor, obviously in SimpleStratgey case you dont mention DC whereas in NetworkTopology, you can mentione mutiple options by each DC's replication requirements.
3. Now if your question is referred to single DC then even if your System keyspace is SimpleStartegy and your user table is NetworkToplogy, it should not matter and Table_Test will be created in all nodes
4. If your System_auth KS is set less than number of nodes, you will face AUTH issues.
 
Naidu Saladi


From: 鄢来琼 <[hidden email]>
To: "[hidden email]" <[hidden email]>
Sent: Monday, March 16, 2015 2:13 AM
Subject: Re: Is Table created in all the nodes if the default consistency level used

Hi Daemeon,
 
Yes, I use “NetworkTopologyStrategy” strategy for “Table_test”,
but “System keyspace” is Cassandra internal keyspace, its strategy is localStrategy.
So my question is how to guarantee “Table_test” is created in all the nodes before any R/W opertions?
 
Thanks.
 
Peter
 
 


发件人: daemeon reiydelle [mailto:[hidden email]]
发送时间: 2015316 14:35
收件人: [hidden email]
主题: Re: Is Table created in all the nodes if the default consistency level used
 
If you want to guarantee that the data is written to all nodes before the code returns, then yes you have to use "consistency all". Otherwise there is a small risk of outdated data being served if a node goes offline longer than hints timeouts.
Somewhat looser options that can assure multiple copies are written, as you probably know, are quorum or a hard coded value. This applies to a typical installation with a substantial number of nodes of course, not a small 2-3 node cluster.
I am curious why localStrategy when you have such concerns about data consistency that you want to assure all nodes get data written. Can you elaborate on your use case?


.......
“Life should not be a journey to the grave with the intention of arriving safely in a
pretty and well preserved body, but rather to skid in broadside in a cloud of smoke,
thoroughly used up, totally worn out, and loudly proclaiming “Wow! What a Ride!”
- Hunter Thompson

Daemeon C.M. Reiydelle
USA <a href="tel:%28%2B1%29%20415.501.0198" value="+14155010198" target="_blank">(+1) 415.501.0198
London <a href="tel:%28%2B44%29%20%280%29%2020%208144%209872" value="+442081449872" target="_blank">(+44) (0) 20 8144 9872
 
On Sun, Mar 15, 2015 at 8:11 PM, 鄢来琼 <[hidden email]> wrote:
Could you tell me whether the meta data of the new table are build in all the nodes after execute the following statement.
 
cassandra_session.execute_async(
“““CREATE TABLE Table_test(
      ID uuid,
      Time timestamp,
      Value double,
      Date timestamp,
      PRIMARY KEY ((ID,Date), Time)
) WITH COMPACT STORAGE;
”””
)
 
As I know, the system keyspace is used to store the meta data, but the strategy is localStrategy, which only store meta data of local node.
So I want to know whether table is created in all the nodes, should I add consistency_level setting to the above statement to make sure
“create table” will be executed in all the nodes?
Thanks.
 
Peter
 
 



Reply | Threaded
Open this post in threaded view
|

Re: Is Table created in all the nodes if the default consistency level used

鄢来琼
In reply to this post by 鄢来琼

Hi Daemeon,

Thanks for your response.

Yes, exactly, your answer clear my doubt. My question is time of table created on data nodes.

 

According to your answer, the table’s meta data is recorded on master node(s), then  table will be created on data node(s) when R/W operation is executed.

So there are other questions.

1, Which node is master node, which algorithm is used by Cassandra to identify master node;

2, Is there a problem if master node is down before actual data written to data node? Because master node is down, table can not be created on data nodes.

 

Regards,

Peter

 

 

 

发件人: daemeon reiydelle [mailto:[hidden email]]
发送时间: 2015317 13:38
收件人: [hidden email]; Saladi Naidu
主题: Re: Is Table created in all the nodes if the default consistency level used

 

If I am following your thread correctly, I think you might be confusing the "creeation" of a table with the "recording of the definition" + "storage for the table allocated".

When you define the table, based on your config, the existence of the table is recorded in the master node(s). But tables are not "created" on data nodes. Data nodes store the data (or their pieces of it) when actual data is written to the table ... so creating a table does not cause memtables (or empty sst's) to be created. When you insert into the table, and data has to go "someplace", the memtables and sst's start tracking that data. Does this clarify?

As an aside, you will only get stale data if the read consistency level together with the number of nodes that went offline (which hold copies of the table), allow it: e.g. imagine read consistency 1 and one node with stale data, etc.



.......
“Life should not be a journey to the grave with the intention of arriving safely in a
pretty and well preserved body, but rather to skid in broadside in a cloud of smoke,
thoroughly used up, totally worn out, and loudly proclaiming “Wow! What a Ride!”
- Hunter Thompson

Daemeon C.M. Reiydelle
USA (+1) 415.501.0198
London (+44) (0) 20 8144 9872

 

On Mon, Mar 16, 2015 at 8:41 PM, Saladi Naidu <[hidden email]> wrote:

There are 3 different things we are talking here

 

1. SimpleStrategy vs. NetworkTopology matter when you have single DC vs. Multiple DC's

2. In both cases you can specific replication factor, obviously in SimpleStratgey case you dont mention DC whereas in NetworkTopology, you can mentione mutiple options by each DC's replication requirements.

3. Now if your question is referred to single DC then even if your System keyspace is SimpleStartegy and your user table is NetworkToplogy, it should not matter and Table_Test will be created in all nodes

4. If your System_auth KS is set less than number of nodes, you will face AUTH issues.

 

Naidu Saladi

 


From: 鄢来琼 <[hidden email]>
To: "[hidden email]" <[hidden email]>
Sent: Monday, March 16, 2015 2:13 AM
Subject: Re: Is Table created in all the nodes if the default consistency level used

 

Hi Daemeon,

 

Yes, I use “NetworkTopologyStrategy” strategy for “Table_test”,

but “System keyspace” is Cassandra internal keyspace, its strategy is localStrategy.

So my question is how to guarantee “Table_test” is created in all the nodes before any R/W opertions?

 

Thanks.

 

Peter

 

 

 

发件人: daemeon reiydelle [mailto:[hidden email]]
发送时间: 2015316 14:35
收件人: [hidden email]
主题: Re: Is Table created in all the nodes if the default consistency level used

 

If you want to guarantee that the data is written to all nodes before the code returns, then yes you have to use "consistency all". Otherwise there is a small risk of outdated data being served if a node goes offline longer than hints timeouts.

Somewhat looser options that can assure multiple copies are written, as you probably know, are quorum or a hard coded value. This applies to a typical installation with a substantial number of nodes of course, not a small 2-3 node cluster.

I am curious why localStrategy when you have such concerns about data consistency that you want to assure all nodes get data written. Can you elaborate on your use case?



.......
“Life should not be a journey to the grave with the intention of arriving safely in a
pretty and well preserved body, but rather to skid in broadside in a cloud of smoke,
thoroughly used up, totally worn out, and loudly proclaiming “Wow! What a Ride!”
- Hunter Thompson

Daemeon C.M. Reiydelle
USA <a href="tel:%28%2B1%29%20415.501.0198" target="_blank">(+1) 415.501.0198
London <a href="tel:%28%2B44%29%20%280%29%2020%208144%209872" target="_blank">(+44) (0) 20 8144 9872

 

On Sun, Mar 15, 2015 at 8:11 PM, 鄢来琼 <[hidden email]> wrote:

Could you tell me whether the meta data of the new table are build in all the nodes after execute the following statement.

 

cassandra_session.execute_async(

“““CREATE TABLE Table_test(
      ID uuid,
      Time timestamp,
      Value double,
      Date timestamp,
      PRIMARY KEY ((ID,Date), Time)
) WITH COMPACT STORAGE;

”””

)

 

As I know, the system keyspace is used to store the meta data, but the strategy is localStrategy, which only store meta data of local node.

So I want to know whether table is created in all the nodes, should I add consistency_level setting to the above statement to make sure

“create table” will be executed in all the nodes?

Thanks.

 

Peter

 

 

 

 

Reply | Threaded
Open this post in threaded view
|

Re: Is Table created in all the nodes if the default consistency level used

daemeon reiydelle
Oops, my bad. Not "master node" I meant "system tables". Cassandra has no master nodes, it is entirely peer oriented. I apologize profusely, and hope I have not confused.




.......
“Life should not be a journey to the grave with the intention of arriving safely in a
pretty and well preserved body, but rather to skid in broadside in a cloud of smoke,
thoroughly used up, totally worn out, and loudly proclaiming “Wow! What a Ride!”

- Hunter Thompson

Daemeon C.M. Reiydelle
USA (+1) 415.501.0198
London (+44) (0) 20 8144 9872


On Mon, Mar 16, 2015 at 11:51 PM, 鄢来琼 <[hidden email]> wrote:

Hi Daemeon,

Thanks for your response.

Yes, exactly, your answer clear my doubt. My question is time of table created on data nodes.

 

According to your answer, the table’s meta data is recorded on master node(s), then  table will be created on data node(s) when R/W operation is executed.

So there are other questions.

1, Which node is master node, which algorithm is used by Cassandra to identify master node;

2, Is there a problem if master node is down before actual data written to data node? Because master node is down, table can not be created on data nodes.

 

Regards,

Peter

 

 

 

发件人: daemeon reiydelle [mailto:[hidden email]]
发送时间: 2015317 13:38
收件人: [hidden email]; Saladi Naidu
主题: Re: Is Table created in all the nodes if the default consistency level used

 

If I am following your thread correctly, I think you might be confusing the "creeation" of a table with the "recording of the definition" + "storage for the table allocated".

When you define the table, based on your config, the existence of the table is recorded in the master node(s). But tables are not "created" on data nodes. Data nodes store the data (or their pieces of it) when actual data is written to the table ... so creating a table does not cause memtables (or empty sst's) to be created. When you insert into the table, and data has to go "someplace", the memtables and sst's start tracking that data. Does this clarify?

As an aside, you will only get stale data if the read consistency level together with the number of nodes that went offline (which hold copies of the table), allow it: e.g. imagine read consistency 1 and one node with stale data, etc.



.......
“Life should not be a journey to the grave with the intention of arriving safely in a
pretty and well preserved body, but rather to skid in broadside in a cloud of smoke,
thoroughly used up, totally worn out, and loudly proclaiming “Wow! What a Ride!”
- Hunter Thompson

Daemeon C.M. Reiydelle
USA <a href="tel:%28%2B1%29%20415.501.0198" value="+14155010198" target="_blank">(+1) 415.501.0198
London <a href="tel:%28%2B44%29%20%280%29%2020%208144%209872" value="+442081449872" target="_blank">(+44) (0) 20 8144 9872

 

On Mon, Mar 16, 2015 at 8:41 PM, Saladi Naidu <[hidden email]> wrote:

There are 3 different things we are talking here

 

1. SimpleStrategy vs. NetworkTopology matter when you have single DC vs. Multiple DC's

2. In both cases you can specific replication factor, obviously in SimpleStratgey case you dont mention DC whereas in NetworkTopology, you can mentione mutiple options by each DC's replication requirements.

3. Now if your question is referred to single DC then even if your System keyspace is SimpleStartegy and your user table is NetworkToplogy, it should not matter and Table_Test will be created in all nodes

4. If your System_auth KS is set less than number of nodes, you will face AUTH issues.

 

Naidu Saladi

 


From: 鄢来琼 <[hidden email]>
To: "[hidden email]" <[hidden email]>
Sent: Monday, March 16, 2015 2:13 AM
Subject: Re: Is Table created in all the nodes if the default consistency level used

 

Hi Daemeon,

 

Yes, I use “NetworkTopologyStrategy” strategy for “Table_test”,

but “System keyspace” is Cassandra internal keyspace, its strategy is localStrategy.

So my question is how to guarantee “Table_test” is created in all the nodes before any R/W opertions?

 

Thanks.

 

Peter

 

 

 

发件人: daemeon reiydelle [mailto:[hidden email]]
发送时间: 2015316 14:35
收件人: [hidden email]
主题: Re: Is Table created in all the nodes if the default consistency level used

 

If you want to guarantee that the data is written to all nodes before the code returns, then yes you have to use "consistency all". Otherwise there is a small risk of outdated data being served if a node goes offline longer than hints timeouts.

Somewhat looser options that can assure multiple copies are written, as you probably know, are quorum or a hard coded value. This applies to a typical installation with a substantial number of nodes of course, not a small 2-3 node cluster.

I am curious why localStrategy when you have such concerns about data consistency that you want to assure all nodes get data written. Can you elaborate on your use case?



.......
“Life should not be a journey to the grave with the intention of arriving safely in a
pretty and well preserved body, but rather to skid in broadside in a cloud of smoke,
thoroughly used up, totally worn out, and loudly proclaiming “Wow! What a Ride!”
- Hunter Thompson

Daemeon C.M. Reiydelle
USA <a href="tel:%28%2B1%29%20415.501.0198" target="_blank">(+1) 415.501.0198
London <a href="tel:%28%2B44%29%20%280%29%2020%208144%209872" target="_blank">(+44) (0) 20 8144 9872

 

On Sun, Mar 15, 2015 at 8:11 PM, 鄢来琼 <[hidden email]> wrote:

Could you tell me whether the meta data of the new table are build in all the nodes after execute the following statement.

 

cassandra_session.execute_async(

“““CREATE TABLE Table_test(
      ID uuid,
      Time timestamp,
      Value double,
      Date timestamp,
      PRIMARY KEY ((ID,Date), Time)
) WITH COMPACT STORAGE;

”””

)

 

As I know, the system keyspace is used to store the meta data, but the strategy is localStrategy, which only store meta data of local node.

So I want to know whether table is created in all the nodes, should I add consistency_level setting to the above statement to make sure

“create table” will be executed in all the nodes?

Thanks.

 

Peter

 

 

 

 


Reply | Threaded
Open this post in threaded view
|

Re: Is Table created in all the nodes if the default consistency level used

鄢来琼
In reply to this post by 鄢来琼

Yeah, Cassandra nodes are peer oriented. The meta data are recorded in “system tables”.

 

There are 6 nodes in my single dc cluster;  Is meta data recorded in all the nodes’ “system tables” after executing “create table” statement?

How to guarantee the meta-data are recorded in all nodes?

Should I take care it? Or how Cassandra guarantee it?

 

Regards,

Peter

 

发件人: daemeon reiydelle [mailto:[hidden email]]
发送时间: 2015317 15:04
收件人: [hidden email]
抄送: Saladi Naidu
主题: Re: Is Table created in all the nodes if the default consistency level used

 

Oops, my bad. Not "master node" I meant "system tables". Cassandra has no master nodes, it is entirely peer oriented. I apologize profusely, and hope I have not confused.

 



.......
“Life should not be a journey to the grave with the intention of arriving safely in a
pretty and well preserved body, but rather to skid in broadside in a cloud of smoke,
thoroughly used up, totally worn out, and loudly proclaiming “Wow! What a Ride!”
- Hunter Thompson

Daemeon C.M. Reiydelle
USA (+1) 415.501.0198
London (+44) (0) 20 8144 9872

 

On Mon, Mar 16, 2015 at 11:51 PM, 鄢来琼 <[hidden email]> wrote:

Hi Daemeon,

Thanks for your response.

Yes, exactly, your answer clear my doubt. My question is time of table created on data nodes.

 

According to your answer, the table’s meta data is recorded on master node(s), then  table will be created on data node(s) when R/W operation is executed.

So there are other questions.

1, Which node is master node, which algorithm is used by Cassandra to identify master node;

2, Is there a problem if master node is down before actual data written to data node? Because master node is down, table can not be created on data nodes.

 

Regards,

Peter

 

 

 

发件人: daemeon reiydelle [mailto:[hidden email]]
发送时间: 2015317 13:38
收件人: [hidden email]; Saladi Naidu
主题: Re: Is Table created in all the nodes if the default consistency level used

 

If I am following your thread correctly, I think you might be confusing the "creeation" of a table with the "recording of the definition" + "storage for the table allocated".

When you define the table, based on your config, the existence of the table is recorded in the master node(s). But tables are not "created" on data nodes. Data nodes store the data (or their pieces of it) when actual data is written to the table ... so creating a table does not cause memtables (or empty sst's) to be created. When you insert into the table, and data has to go "someplace", the memtables and sst's start tracking that data. Does this clarify?

As an aside, you will only get stale data if the read consistency level together with the number of nodes that went offline (which hold copies of the table), allow it: e.g. imagine read consistency 1 and one node with stale data, etc.



.......
“Life should not be a journey to the grave with the intention of arriving safely in a
pretty and well preserved body, but rather to skid in broadside in a cloud of smoke,
thoroughly used up, totally worn out, and loudly proclaiming “Wow! What a Ride!”
- Hunter Thompson

Daemeon C.M. Reiydelle
USA <a href="tel:%28%2B1%29%20415.501.0198" target="_blank">(+1) 415.501.0198
London <a href="tel:%28%2B44%29%20%280%29%2020%208144%209872" target="_blank">(+44) (0) 20 8144 9872

 

On Mon, Mar 16, 2015 at 8:41 PM, Saladi Naidu <[hidden email]> wrote:

There are 3 different things we are talking here

 

1. SimpleStrategy vs. NetworkTopology matter when you have single DC vs. Multiple DC's

2. In both cases you can specific replication factor, obviously in SimpleStratgey case you dont mention DC whereas in NetworkTopology, you can mentione mutiple options by each DC's replication requirements.

3. Now if your question is referred to single DC then even if your System keyspace is SimpleStartegy and your user table is NetworkToplogy, it should not matter and Table_Test will be created in all nodes

4. If your System_auth KS is set less than number of nodes, you will face AUTH issues.

 

Naidu Saladi

 


From: 鄢来琼 <[hidden email]>
To: "[hidden email]" <[hidden email]>
Sent: Monday, March 16, 2015 2:13 AM
Subject: Re: Is Table created in all the nodes if the default consistency level used

 

Hi Daemeon,

 

Yes, I use “NetworkTopologyStrategy” strategy for “Table_test”,

but “System keyspace” is Cassandra internal keyspace, its strategy is localStrategy.

So my question is how to guarantee “Table_test” is created in all the nodes before any R/W opertions?

 

Thanks.

 

Peter

 

 

 

发件人: daemeon reiydelle [mailto:[hidden email]]
发送时间: 2015316 14:35
收件人: [hidden email]
主题: Re: Is Table created in all the nodes if the default consistency level used

 

If you want to guarantee that the data is written to all nodes before the code returns, then yes you have to use "consistency all". Otherwise there is a small risk of outdated data being served if a node goes offline longer than hints timeouts.

Somewhat looser options that can assure multiple copies are written, as you probably know, are quorum or a hard coded value. This applies to a typical installation with a substantial number of nodes of course, not a small 2-3 node cluster.

I am curious why localStrategy when you have such concerns about data consistency that you want to assure all nodes get data written. Can you elaborate on your use case?



.......
“Life should not be a journey to the grave with the intention of arriving safely in a
pretty and well preserved body, but rather to skid in broadside in a cloud of smoke,
thoroughly used up, totally worn out, and loudly proclaiming “Wow! What a Ride!”
- Hunter Thompson

Daemeon C.M. Reiydelle
USA <a href="tel:%28%2B1%29%20415.501.0198" target="_blank">(+1) 415.501.0198
London <a href="tel:%28%2B44%29%20%280%29%2020%208144%209872" target="_blank">(+44) (0) 20 8144 9872

 

On Sun, Mar 15, 2015 at 8:11 PM, 鄢来琼 <[hidden email]> wrote:

Could you tell me whether the meta data of the new table are build in all the nodes after execute the following statement.

 

cassandra_session.execute_async(

“““CREATE TABLE Table_test(
      ID uuid,
      Time timestamp,
      Value double,
      Date timestamp,
      PRIMARY KEY ((ID,Date), Time)
) WITH COMPACT STORAGE;

”””

)

 

As I know, the system keyspace is used to store the meta data, but the strategy is localStrategy, which only store meta data of local node.

So I want to know whether table is created in all the nodes, should I add consistency_level setting to the above statement to make sure

“create table” will be executed in all the nodes?

Thanks.

 

Peter