cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jason Tanner (JIRA)" <j...@apache.org>
Subject [jira] Created: (CASSANDRA-1623) BUG: secondaryIndexes AND multiple index expressions can cause timesouts
Date Fri, 15 Oct 2010 19:59:37 GMT
BUG: secondaryIndexes AND multiple index expressions can cause timesouts 
-------------------------------------------------------------------------

                 Key: CASSANDRA-1623
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1623
             Project: Cassandra
          Issue Type: Bug
          Components: Core
    Affects Versions: 0.7 beta 2
         Environment: centos 5.5
            Reporter: Jason Tanner


1. Given this Column Family definition

    Column Family Name: Requests
      Column Family Type: Standard
      Column Sorted By: org.apache.cassandra.db.marshal.UTF8Type
      Column Metadata:
        Column Name: requested
          Validation Class: org.apache.cassandra.db.marshal.UTF8Type
          Index Type: KEYS
        Column Name: requestor
          Validation Class: org.apache.cassandra.db.marshal.UTF8Type
          Index Type: KEYS

If I have an entry that has the following column/value pairs:

"request-uuid1" : [  { "requested","person-uuid1" }, { "requestor","person-uuid2"}, { "is_confirmed","true"
} ]

If I do an index lookup (pseudo coded) :

get_index_slices( Connection,
                                 ColumnParent.column_family="Requests",
                                 [ { "requested","eq", "person-uuid1" }, { "is_confirmed","eq",
"false" } ],      % Index Expressions
                                 "",100,   % StartKey, KeyCount
                                 "","",false,100   % StartCol, EndCol, Reversed, ColCount
)

for "requested" = "person-uuid1" and "is_confirmed" = false 

then I get the following entries in my log and the request times out along with all other
requests on all clients.

DEBUG [pool-1-thread-10] 2010-10-15 19:00:27,878 CassandraServer.java (line 531) scan
DEBUG [pool-1-thread-10] 2010-10-15 19:00:27,897 StorageProxy.java (line 563) restricted single
token match for query [0,0]
DEBUG [pool-1-thread-10] 2010-10-15 19:00:27,897 StorageProxy.java (line 649) scan ranges
are [0,0]
DEBUG [pool-1-thread-10] 2010-10-15 19:00:27,925 StorageProxy.java (line 669) reading org.apache.cassandra.db.IndexScanCommand@42a6eb
from 52@localhost/127.0.0.1
DEBUG [ReadStage:2] 2010-10-15 19:00:27,931 SliceQueryFilter.java (line 121) collecting 0
of 1: null:false:0@1287103291
DEBUG [ReadStage:2] 2010-10-15 19:00:27,933 SliceQueryFilter.java (line 121) collecting 0
of 2147483647: is_confirmed:false:4@1287103291
DEBUG [ReadStage:2] 2010-10-15 19:00:27,934 SliceQueryFilter.java (line 121) collecting 1
of 2147483647: request_type:false:6@1287103291
DEBUG [ReadStage:2] 2010-10-15 19:00:27,935 SliceQueryFilter.java (line 121) collecting 2
of 2147483647: requested:false:58@1287103291
DEBUG [ReadStage:2] 2010-10-15 19:00:27,935 SliceQueryFilter.java (line 121) collecting 3
of 2147483647: requested_network:false:57@1287103291
DEBUG [ReadStage:2] 2010-10-15 19:00:27,936 SliceQueryFilter.java (line 121) collecting 4
of 2147483647: requestor:false:58@1287103291
DEBUG [ReadStage:2] 2010-10-15 19:00:27,937 SliceQueryFilter.java (line 121) collecting 5
of 2147483647: requestor_network:false:57@1287103291
DEBUG [ReadStage:2] 2010-10-15 19:00:27,942 SliceQueryFilter.java (line 121) collecting 0
of 1: null:false:0@1287103291
DEBUG [ReadStage:2] 2010-10-15 19:00:27,943 SliceQueryFilter.java (line 121) collecting 0
of 1: null:false:0@1287103291
DEBUG [ReadStage:2] 2010-10-15 19:00:27,945 SliceQueryFilter.java (line 121) collecting 0
of 1: null:false:0@1287103291
DEBUG [ReadStage:2] 2010-10-15 19:00:27,946 SliceQueryFilter.java (line 121) collecting 0
of 1: null:false:0@1287103291
 this last line repeats forever until I stop the server.

If instead I do the lookup where both terms match or just the last term matches then nothing
goes wrong, I get a valid (empty or otherwise) result set.

It only seems to happen if the 2nd expression does not match.

I am using the very latest code from trunk.


Jason
                                       

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message