incubator-cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marco Matarazzo <marco.matara...@hexkeep.com>
Subject Random errors using phpcassa
Date Fri, 06 Jul 2012 22:37:22 GMT
Greetings.

I am experiencing problems using a cassandra DB with phpcassa, but I am unable to understand
if the error is on phpcassa client itself or on cassandra… As far as I understand, phpcassa
just "pass" it to the thrift layer, and errors I am seeing are coming back from cassandra
itself, so I guess it's some sort of cassandra problem (or, more easily, I am doing something
wrong but I don't know what). I hope I'm not too far from true.


I am using CQL3 from php pages, and I wrote a class that basically wraps this behaviour:

		$this->pool=new \phpcassa\Connection\ConnectionPool($keyspace,$servers); 
		[…yadda yadda…]
		$client=$this->pool->get()->client;
		$result=$client->prepare_cql_query($query,\Cassandra\Compression::NONE);
		$itemid=$result->itemId;
		return $client->execute_prepared_cql_query($itemid,$args);

This works ALMOST always. Sometimes, hovewere, I get "random" errors on queries that works.
When I say "Query that works" it means that on error i dump on screen the value of $query
and $args, and this is always a valid query that works, bot on the same page if I simply reload
it, and on cqlsh -3, with the very same parameters.


Sample errors, and relative queries and CF schemas are:

===

Executing [SELECT qt FROM cargobays USING CONSISTENCY QUORUM WHERE corporation_id = ? and
station_id = ? and item_id = ?] with (edd051f0-44aa-4bc3-ad08-3174abcd1a0d,1110129,10025)
error: No indexed columns present in by-columns clause with "equals" operator

cqlsh:goh_release> describe columnfamily cargobays

CREATE TABLE cargobays (
  corporation_id ascii,
  station_id ascii,
  item_id ascii,
  qt ascii,
  PRIMARY KEY (corporation_id, station_id, item_id)
) WITH COMPACT STORAGE AND
  comment='' AND
  caching='KEYS_ONLY' AND
  read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  min_compaction_threshold=4 AND
  max_compaction_threshold=32 AND
  replicate_on_write='true' AND
  compaction_strategy_class='SizeTieredCompactionStrategy' AND
  compression_parameters:sstable_compression='SnappyCompressor';

===

Executing [UPDATE agents_skill USING CONSISTENCY QUORUM SET value = ? WHERE agent_id = ? and
skill = ?] with (3,b716738b-95e6-4e22-9924-5334ee7f2f5d,pilot)
error: line 1:78 mismatched input 'and' expecting EOF

cqlsh:goh_release> describe columnfamily agents_skill ;

CREATE TABLE agents_skill (
  agent_id ascii,
  skill ascii,
  value ascii,
  PRIMARY KEY (agent_id, skill)
) WITH COMPACT STORAGE AND
  comment='' AND
  caching='KEYS_ONLY' AND
  read_repair_chance=0.100000 AND
  gc_grace_seconds=864000 AND
  min_compaction_threshold=4 AND
  max_compaction_threshold=32 AND
  replicate_on_write='true' AND
  compaction_strategy_class='SizeTieredCompactionStrategy' AND
  compression_parameters:sstable_compression='SnappyCompressor';


We have a cluster of 3 nodes, and the keyspace is defined as follow:

CREATE KEYSPACE v_release WITH strategy_class = 'SimpleStrategy'
  AND strategy_options:replication_factor = '3';


We're using (packaged) Cassandra 1.1.2 on an Ubuntu LTS 12.04.


I really hope it's something that can be sorted out, because we're pretty lost here.

Thank you.

--
Marco Matarazzo





Mime
View raw message