You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Jonathan Ellis (JIRA)" <ji...@apache.org> on 2009/08/05 20:21:14 UTC

[jira] Created: (CASSANDRA-344) allow slicing during key range query

allow slicing during key range query
------------------------------------

                 Key: CASSANDRA-344
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-344
             Project: Cassandra
          Issue Type: New Feature
            Reporter: Jonathan Ellis
            Assignee: Jonathan Ellis
             Fix For: 0.4




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


[jira] Updated: (CASSANDRA-344) allow slicing during key range query

Posted by "Michael Greene (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-344?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michael Greene updated CASSANDRA-344:
-------------------------------------

    Component/s: Core

> allow slicing during key range query
> ------------------------------------
>
>                 Key: CASSANDRA-344
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-344
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>            Reporter: Jonathan Ellis
>             Fix For: 0.5
>
>


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


[jira] Assigned: (CASSANDRA-344) allow slicing during key range query

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-344?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jonathan Ellis reassigned CASSANDRA-344:
----------------------------------------

    Assignee:     (was: Jonathan Ellis)

> allow slicing during key range query
> ------------------------------------
>
>                 Key: CASSANDRA-344
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-344
>             Project: Cassandra
>          Issue Type: New Feature
>            Reporter: Jonathan Ellis
>             Fix For: 0.5
>
>


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


[jira] Commented: (CASSANDRA-344) allow slicing during key range query

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-344?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12777152#action_12777152 ] 

Jonathan Ellis commented on CASSANDRA-344:
------------------------------------------

no, the Range is number of columns per row, the other is number of rows

> allow slicing during key range query
> ------------------------------------
>
>                 Key: CASSANDRA-344
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-344
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>            Reporter: Jonathan Ellis
>            Assignee: Gary Dusbabek
>             Fix For: 0.5
>
>         Attachments: 344-thrift.patch
>
>


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


[jira] Updated: (CASSANDRA-344) allow slicing during key range query

Posted by "Gary Dusbabek (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-344?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gary Dusbabek updated CASSANDRA-344:
------------------------------------

    Attachment: 344-v3.diff

Generated with svn diff.

> allow slicing during key range query
> ------------------------------------
>
>                 Key: CASSANDRA-344
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-344
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>            Reporter: Jonathan Ellis
>            Assignee: Gary Dusbabek
>             Fix For: 0.5
>
>         Attachments: 344-thrift.patch, 344-v1.patch, 344-v2.patch, 344-v3.diff
>
>


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


[jira] Commented: (CASSANDRA-344) allow slicing during key range query

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-344?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12775153#action_12775153 ] 

Jonathan Ellis commented on CASSANDRA-344:
------------------------------------------

so right now,

ColumnFamilyStore.getKeyRange gets an iterator over all the keys, then scans through looking for stuff that's not deleted
CFS.getColumnFamily takes a queryfilter, and returns a CF from one row

we want to combine those so that we have a method that iterators over all the keys, applying a queryfilter (notably, we don't special case deleted rows anymore, just let the filter do its thing, and if nothing is found we return empty columnorsupercolumn[] for that key).

if you can refactor things so we can leave the old get_key_range around but deprecated, great.  if that makes things too fugly tho we'll push this to post-0.5 (and just get rid of the old one).

> allow slicing during key range query
> ------------------------------------
>
>                 Key: CASSANDRA-344
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-344
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>            Reporter: Jonathan Ellis
>            Assignee: Gary Dusbabek
>             Fix For: 0.5
>
>


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


[jira] Updated: (CASSANDRA-344) allow slicing during key range query

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-344?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jonathan Ellis updated CASSANDRA-344:
-------------------------------------

    Fix Version/s:     (was: 0.4)
                   0.5

This is a bigger change than I thought initially.  I will think about it but for now I am putting it in 0.5.  (I am also un-assigning it so if anyone else wants to grab it for 0.4 you are welcome to do so. :)

> allow slicing during key range query
> ------------------------------------
>
>                 Key: CASSANDRA-344
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-344
>             Project: Cassandra
>          Issue Type: New Feature
>            Reporter: Jonathan Ellis
>             Fix For: 0.5
>
>


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


[jira] Updated: (CASSANDRA-344) allow slicing during key range query

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-344?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jonathan Ellis updated CASSANDRA-344:
-------------------------------------

    Attachment: 344-v4.patch

rebased v4

> allow slicing during key range query
> ------------------------------------
>
>                 Key: CASSANDRA-344
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-344
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>            Reporter: Jonathan Ellis
>            Assignee: Gary Dusbabek
>             Fix For: 0.5
>
>         Attachments: 344-thrift.patch, 344-v1.patch, 344-v2.patch, 344-v3.diff, 344-v4.patch, 344-v4.patch
>
>


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


[jira] Updated: (CASSANDRA-344) allow slicing during key range query

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-344?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jonathan Ellis updated CASSANDRA-344:
-------------------------------------

    Attachment: 344-v4.patch

Made a couple changes:

 - renamed thrift method to get_range_slice for consistency [my fault, sorry]
 - renamed some things to RangeSliceX instead of SliceX or SliceRangeX to satisfy my OCD
 - RangeSliceReply now uses Rows internally [my fault for not mentioning that too], and propagates rangeCompletedLocally
 - added CFS.getKeyRangeRaw to do a keyrange w/o filtering out deleted rows.  avoiding that behavior is one of the reasons we're adding RangeSlice.

Still todo:

 - use rangeCompletedLocally in StorageProxy.getKeySlice (oops, missed that one -- rename to getRangeSlice :)
 - handle both kinds of column slice predicates, right now it assumes it is always a range.  i suggest leaving SlicePredicate un-flattened in RangeSliceCommand.  (in fact the way it is now it is guaranteed to NPE since exactly one of the Predicate sub-structs should be null.)  Look at SliceByNamesReadCommand and SliceFromReadCommand for turning the predicate into a QueryFilter.
 - add a test to test/system/test_server.py exercising both kinds of predicates to get_range_slice

Optionally, you might want to do this to serialize the Predicate directly: http://wiki.apache.org/thrift/ThriftUsageJava .  Of course there is an extra copy involved.  (We don't actually use that in Cassandra anywhere yet.  We probably should.)

Almost done! :)

> allow slicing during key range query
> ------------------------------------
>
>                 Key: CASSANDRA-344
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-344
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>            Reporter: Jonathan Ellis
>            Assignee: Gary Dusbabek
>             Fix For: 0.5
>
>         Attachments: 344-thrift.patch, 344-v1.patch, 344-v2.patch, 344-v3.diff, 344-v4.patch
>
>


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


[jira] Updated: (CASSANDRA-344) allow slicing during key range query

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-344?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jonathan Ellis updated CASSANDRA-344:
-------------------------------------

    Attachment: 344-thrift.patch

thrift change looks something like this IMO

> allow slicing during key range query
> ------------------------------------
>
>                 Key: CASSANDRA-344
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-344
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>            Reporter: Jonathan Ellis
>            Assignee: Gary Dusbabek
>             Fix For: 0.5
>
>         Attachments: 344-thrift.patch
>
>


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


[jira] Updated: (CASSANDRA-344) allow slicing during key range query

Posted by "Gary Dusbabek (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-344?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gary Dusbabek updated CASSANDRA-344:
------------------------------------

    Attachment: 344-v5.diff

adds a nostetest and fixes a few null pointer bugs.

> allow slicing during key range query
> ------------------------------------
>
>                 Key: CASSANDRA-344
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-344
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>            Reporter: Jonathan Ellis
>            Assignee: Gary Dusbabek
>             Fix For: 0.5
>
>         Attachments: 344-thrift.patch, 344-v1.patch, 344-v2.patch, 344-v3.diff, 344-v4.patch, 344-v4.patch, 344-v5.diff
>
>


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


[jira] Commented: (CASSANDRA-344) allow slicing during key range query

Posted by "Gary Dusbabek (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-344?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12775495#action_12775495 ] 

Gary Dusbabek commented on CASSANDRA-344:
-----------------------------------------

Is the count parameter redundant (the same as SlicePredicate.slice_range.count)?

> allow slicing during key range query
> ------------------------------------
>
>                 Key: CASSANDRA-344
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-344
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>            Reporter: Jonathan Ellis
>            Assignee: Gary Dusbabek
>             Fix For: 0.5
>
>         Attachments: 344-thrift.patch
>
>


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


[jira] Commented: (CASSANDRA-344) allow slicing during key range query

Posted by "Hudson (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-344?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12779960#action_12779960 ] 

Hudson commented on CASSANDRA-344:
----------------------------------

Integrated in Cassandra #263 (See [http://hudson.zones.apache.org/hudson/job/Cassandra/263/])
    add primitive get_range_slice. inefficient, but better than get_key_range + get_slices.
patch by gdusbabek; reviewed by jbellis for 


> allow slicing during key range query
> ------------------------------------
>
>                 Key: CASSANDRA-344
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-344
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>            Reporter: Jonathan Ellis
>            Assignee: Gary Dusbabek
>             Fix For: 0.5
>
>         Attachments: 344-thrift.patch, 344-v1.patch, 344-v2.patch, 344-v3.diff, 344-v4.patch, 344-v4.patch, 344-v5.diff
>
>


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


[jira] Assigned: (CASSANDRA-344) allow slicing during key range query

Posted by "Eric Evans (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-344?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Eric Evans reassigned CASSANDRA-344:
------------------------------------

    Assignee: Eric Evans

> allow slicing during key range query
> ------------------------------------
>
>                 Key: CASSANDRA-344
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-344
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>            Reporter: Jonathan Ellis
>            Assignee: Eric Evans
>             Fix For: 0.5
>
>


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


[jira] Updated: (CASSANDRA-344) allow slicing during key range query

Posted by "Gary Dusbabek (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-344?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gary Dusbabek updated CASSANDRA-344:
------------------------------------

    Attachment: 344-v1.patch

I'm in the middle of testing this (to see if it even works), but would appreciate feedback to know whether or not I am moving in the right direction.

> allow slicing during key range query
> ------------------------------------
>
>                 Key: CASSANDRA-344
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-344
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>            Reporter: Jonathan Ellis
>            Assignee: Gary Dusbabek
>             Fix For: 0.5
>
>         Attachments: 344-thrift.patch, 344-v1.patch
>
>


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


[jira] Updated: (CASSANDRA-344) allow slicing during key range query

Posted by "Gary Dusbabek (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-344?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gary Dusbabek updated CASSANDRA-344:
------------------------------------

    Attachment: 344-v2.patch

Removes max_cols replacements and reverts a few of the thrift changes.

> allow slicing during key range query
> ------------------------------------
>
>                 Key: CASSANDRA-344
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-344
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>            Reporter: Jonathan Ellis
>            Assignee: Gary Dusbabek
>             Fix For: 0.5
>
>         Attachments: 344-thrift.patch, 344-v1.patch, 344-v2.patch
>
>


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


[jira] Assigned: (CASSANDRA-344) allow slicing during key range query

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-344?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jonathan Ellis reassigned CASSANDRA-344:
----------------------------------------

    Assignee: Gary Dusbabek  (was: Eric Evans)

> allow slicing during key range query
> ------------------------------------
>
>                 Key: CASSANDRA-344
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-344
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>            Reporter: Jonathan Ellis
>            Assignee: Gary Dusbabek
>             Fix For: 0.5
>
>


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


[jira] Commented: (CASSANDRA-344) allow slicing during key range query

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-344?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12770793#action_12770793 ] 

Jonathan Ellis commented on CASSANDRA-344:
------------------------------------------

When adding this, we should deprecate the slice-less get_key_range, too.  It's problematic for a couple reasons:

 - skipping (a lot of) entirely-tombstoned rows can cause really bad performance problems while it's trying to collect N un-tombstoned ones; including slice fixes that because if no data is there an empty list still counts towards the result set
 - consistency_level doesn't really make sense w/o data to apply it to (my bad on that one)


> allow slicing during key range query
> ------------------------------------
>
>                 Key: CASSANDRA-344
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-344
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>            Reporter: Jonathan Ellis
>            Assignee: Eric Evans
>             Fix For: 0.5
>
>


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


[jira] Commented: (CASSANDRA-344) allow slicing during key range query

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-344?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12778659#action_12778659 ] 

Jonathan Ellis commented on CASSANDRA-344:
------------------------------------------

Hmm:

$ patch -p0 < 344-v2.patch
patching file interface/gen-java/org/apache/cassandra/service/Cassandra.java



> allow slicing during key range query
> ------------------------------------
>
>                 Key: CASSANDRA-344
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-344
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>            Reporter: Jonathan Ellis
>            Assignee: Gary Dusbabek
>             Fix For: 0.5
>
>         Attachments: 344-thrift.patch, 344-v1.patch, 344-v2.patch
>
>


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