我正在尝试创建一个表来保持计数器在我的API上的不同命中。我正在使用Cassandra 2.0.6,并且意识到启动2.1.0的计数器有一些性能改进,但此时无法升级。
我在datastax上读到的文档总是从创建一个单独的密钥空间开始,如下所示:
http://www.datastax.com/documentation/cql/3.0/cql/cql_using/use_counter_t.html
http://www.datastax.com/documentation/cql/3.1/cql/cql_using/use_counter_t.html
来自文档:
Create a keyspace on Linux for use in a single data center, single node cluster. Use the default data center name from the output of the nodetool status command, for example datacenter1.
CREATE KEYSPACE counterks WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'datacenter1' : 1 };
问题:
1)这是否意味着我应该将我的计数器保存在一个单独的密钥空间中
2)如果是,我应该如文档示例中所定义的那样声明密钥空间,或者这只是一个示例,我可以设置自己的复制策略 - 特别是跨数据中心进行复制。
由于
答案 0 :(得分:1)
抱歉,您的说明有问题。需要更改指令,以明确这只是一个示例,并通过将RF更改为3来改进。
不需要为单个数据中心和单节点群集使用密钥空间。您需要将计数器保存在单独的表中,而不是单独的键空间;但是,将表保留在单独的键空间中可以让您灵活地更改表与表之间的一致性和复制。通常,每个应用程序都有一个键空间。请参阅http://grokbase.com/t/cassandra/user/145bwd3va8/effect-of-number-of-keyspaces-on-write-throughput上的相关单一与多重密钥空间讨论。