在cassandra 2.1中,如何从缓存中取出准备好的语句
我正在尝试使用datastax中的nodejs驱动程序向cassandra 2.1.2中的用户定义类型添加一个字段。我在cqlsh中使用在cassandra 2.1中,如何从缓存中取出准备好的语句,cassandra,datastax,cassandra-2.1,Cassandra,Datastax,Cassandra 2.1,我正在尝试使用datastax中的nodejs驱动程序向cassandra 2.1.2中的用户定义类型添加一个字段。我在cqlsh中使用altertype添加了字段。当我尝试添加一个包含udt的行,其中包含一个新字段的值时,它会被插入null值,而不是我提供的值。我强烈怀疑这与集群缓存准备好的语句的方式有关。因为我记得读到,准备好的语句是由查询的散列索引的,所以我尝试更改查询中的一些空格,看看是否有帮助。这实际上似乎有效,但只有一次。后续插入会导致错误: message: 'Operatio
altertype
添加了字段。当我尝试添加一个包含udt的行,其中包含一个新字段的值时,它会被插入null值,而不是我提供的值。我强烈怀疑这与集群缓存准备好的语句的方式有关。因为我记得读到,准备好的语句是由查询的散列索引的,所以我尝试更改查询中的一些空格,看看是否有帮助。这实际上似乎有效,但只有一次。后续插入会导致错误:
message: 'Operation timed out - received only 0 responses.',
info: 'Represents an error message from the server',
code: 4352,
consistencies: 10,
received: 0,
blockFor: 1,
writeType: 'SIMPLE',
coordinator: '127.0.0.1:9042',
而且似乎没有添加新的行。。直到我重新启动cassandra,在这一点上,不仅我认为失败的插入显示出来,而且后续的插入工作正常。这非常令人不安,但幸运的是,我只在测试实例中这样做。但是,我确实需要在生产中进行此更改,并且重新启动集群以添加单个字段实际上不是一个选项。有没有更好的方法让集群退出缓存的prepared语句
我强烈怀疑这与集群缓存准备好的语句的方式有关
将Cassandra日志置于调试模式,以确保准备好的语句缓存是根本原因。如果是,创建一个JIRA以便开发团队可以修复它
您还可以选择启用跟踪以查看服务器端发生了什么
要在cqlsh中启用跟踪,只需键入tracing ON
要使用Java驱动程序启用跟踪,只需在语句
对象上调用enableTracing()
我强烈怀疑这与集群缓存准备好的语句的方式有关
将Cassandra日志置于调试模式,以确保准备好的语句缓存是根本原因。如果是,创建一个JIRA以便开发团队可以修复它
您还可以选择启用跟踪以查看服务器端发生了什么
要在cqlsh中启用跟踪,只需键入tracing ON
要使用Java驱动程序启用跟踪,只需在语句
对象上调用enableTracing()