介绍
我正在使用 Cassandra 1.2 集群(7 个节点,复制因子 3)在 Python 中编写一个应用程序,并且我正在使用 cql 库(CQL 3.0)从 Python 访问 Cassandra。
问题
该应用程序的构建方式是,当尝试对未配置的列族运行 cql 语句时,它会自动创建表并重试 cql 语句。例如,如果我尝试运行它:
SELECT * FROM table1
并且 table1 不存在,那么应用程序将为 table1 运行相应的 CREATE TABLE 并重试之前的选择。问题是,在创建表后 SELECT(重试)失败并出现以下错误:
Request did not complete within rpc_timeout
问题
我假设集群需要一些时间来传播表的创建或类似的东西?如果我在创建表和重试 select 语句之间等待几秒钟,一切正常,但我想确切地知道为什么以及是否有更好的方法。也许让创建表在返回之前等待更改传播?有没有办法做到这一点?
提前致谢