Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在cassandra 2.1中,如何从缓存中取出准备好的语句_Cassandra_Datastax_Cassandra 2.1 - Fatal编程技术网

在cassandra 2.1中,如何从缓存中取出准备好的语句

在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

我正在尝试使用datastax中的nodejs驱动程序向cassandra 2.1.2中的用户定义类型添加一个字段。我在cqlsh中使用
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()