[ 
https://issues.apache.org/jira/browse/CASSANDRA-2401?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13012821#comment-13012821
 ] 

Tey Kar Shiang edited comment on CASSANDRA-2401 at 3/30/11 2:19 AM:
--------------------------------------------------------------------

Hi,

New finding here:
For the 0-column data, it is because it is never read from the file. As I step 
through the line, here it returns -1 position from 
org.apache.cassandra.io.sstable.SSTableReader.java::getPosition(DecoratedKey 
decoratedKey, Operator op), line 448 (bf.isPresent(decoratedKey.key) is 
returning false) - key is missing.

There seem to be a missing record which is indexed or indexed column itself not 
updated when the record is removed (?). 

As for the data returned with 0-column, simply because a container is always 
created (final ColumnFamily returnCF = ColumnFamily.create(metadata)) and 
returned from getTopLevelColumns even if there is no read taken.

As for this case, it causes Timeout exception to Hector when null exception 
thrown without captured.

      was (Author: karshiang):
    Hi,

New finding here:
For the 0-column data, it is because it is never read from the file. As I step 
through the line, here it returns -1 position from 
org.apache.cassandra.io.sstable.SSTableReader.java::getPosition(DecoratedKey 
decoratedKey, Operator op), line 448 (bf.isPresent(decoratedKey.key) is 
returning false) - key is missing.

There seem to be a missing record which is indexed or indexed column itself not 
updated when the record is removed (?). 

As for the data return with 0-column, simply because a container is always 
created (final ColumnFamily returnCF = ColumnFamily.create(metadata)) and 
returned from getTopLevelColumns even if there is no read taken.
  
> getColumnFamily() return null, which is not checked in ColumnFamilyStore.java 
> scan() method, causing Timeout Exception in query
> -------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-2401
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2401
>             Project: Cassandra
>          Issue Type: Bug
>    Affects Versions: 0.7.4
>         Environment: Hector 0.7.0-28, Cassandra 0.7.4, Windows 7, Eclipse
>            Reporter: Tey Kar Shiang
>
> ColumnFamilyStore.java, line near 1680, "ColumnFamily data = 
> getColumnFamily(new QueryFilter(dk, path, firstFilter))", the data is 
> returned null, causing NULL exception in "satisfies(data, clause, primary)" 
> which is not captured. The callback got timeout and return a Timeout 
> exception to Hector.
> The data is empty, as I traced, I have the the columns Count as 0 in 
> removeDeletedCF(), which return the null there. (I am new and trying to 
> understand the logics around still). Instead of crash to NULL, could we 
> bypass the data?
> About my test:
> A stress-test program to add, modify and delete data to keyspace. I have 30 
> threads simulate concurrent users to perform the actions above, and do a 
> query to all rows periodically. I have Column Family with rows (as File) and 
> columns as index (e.g. userID, fileType).
> No issue on the first day of test, and stopped for 3 days. I restart the test 
> on 4th day, 1 of the users failed to query the files (timeout exception 
> received). Most of the users are still okay with the query.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to