You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Sylvain Lebresne (JIRA)" <ji...@apache.org> on 2012/07/05 18:47:33 UTC

[jira] [Created] (CASSANDRA-4415) Add cursor API/auto paging to the native CQL protocol

Sylvain Lebresne created CASSANDRA-4415:
-------------------------------------------

             Summary: Add cursor API/auto paging to the native CQL protocol
                 Key: CASSANDRA-4415
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-4415
             Project: Cassandra
          Issue Type: New Feature
    Affects Versions: 1.2
            Reporter: Sylvain Lebresne


The goal here would be to use a query paging mechanism to the CQL native protocol. Typically the client/server with that would look something like this:
{noformat}
C sends query to S.
S sends N first rows matching the query + flag saying the response is not complete
C requests the next N rows
S sends N next rows + flag saying whether there is more
C requests the next N rows
...
S sends last rows + flag saying there is no more result
{noformat}

The clear goal is for user to not have to worry about limiting queries and doing manual paging.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (CASSANDRA-4415) Add cursor API/auto paging to the native CQL protocol

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

Sylvain Lebresne commented on CASSANDRA-4415:
---------------------------------------------

I've written a good chunk of code for this but there is one big issue with this I'm not sure how to solve best: this will "break" isolation from a user perspective.

More precisely, the goal is that from the user point of view all of this is transparent: it does a query and will then fetch query one by one and the driver will use that feature underneath to having getting into OOM situation and to avoid timeout for query yielding lots of result. However, since underneath we'll do multiple query, it might look as if there was not isolation if your unlucky with the timing of the requests.

So I don't know what to do about that. I unfortunately don't see a solution to fix it per-se, so the question is how to make that acceptable. 
                
> Add cursor API/auto paging to the native CQL protocol
> -----------------------------------------------------
>
>                 Key: CASSANDRA-4415
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-4415
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: 1.2
>            Reporter: Sylvain Lebresne
>
> The goal here would be to use a query paging mechanism to the CQL native protocol. Typically the client/server with that would look something like this:
> {noformat}
> C sends query to S.
> S sends N first rows matching the query + flag saying the response is not complete
> C requests the next N rows
> S sends N next rows + flag saying whether there is more
> C requests the next N rows
> ...
> S sends last rows + flag saying there is no more result
> {noformat}
> The clear goal is for user to not have to worry about limiting queries and doing manual paging.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (CASSANDRA-4415) Add cursor API/auto paging to the native CQL protocol

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

Tupshin Harper commented on CASSANDRA-4415:
-------------------------------------------

IMO, document the lack of isolation when paging thoroughly and punt. It's the best we can do, and is generally sufficient.
                
> Add cursor API/auto paging to the native CQL protocol
> -----------------------------------------------------
>
>                 Key: CASSANDRA-4415
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-4415
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: 1.2
>            Reporter: Sylvain Lebresne
>
> The goal here would be to use a query paging mechanism to the CQL native protocol. Typically the client/server with that would look something like this:
> {noformat}
> C sends query to S.
> S sends N first rows matching the query + flag saying the response is not complete
> C requests the next N rows
> S sends N next rows + flag saying whether there is more
> C requests the next N rows
> ...
> S sends last rows + flag saying there is no more result
> {noformat}
> The clear goal is for user to not have to worry about limiting queries and doing manual paging.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (CASSANDRA-4415) Add cursor API/auto paging to the native CQL protocol

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

Sylvain Lebresne commented on CASSANDRA-4415:
---------------------------------------------

Yeah, I guess we haven't much choice, though I'll note that the burden of saying when a query might lack isolation will be on the client driver documentation. That is, we can explain that drivers will likely use query paging for large queries which will defeats isolation, but then we'll have to refer to said driver documentation to know exactly when paging is used and how to control it. Unless we fix the page size to a constant, but that's a bit lame imho.
                
> Add cursor API/auto paging to the native CQL protocol
> -----------------------------------------------------
>
>                 Key: CASSANDRA-4415
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-4415
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: 1.2
>            Reporter: Sylvain Lebresne
>
> The goal here would be to use a query paging mechanism to the CQL native protocol. Typically the client/server with that would look something like this:
> {noformat}
> C sends query to S.
> S sends N first rows matching the query + flag saying the response is not complete
> C requests the next N rows
> S sends N next rows + flag saying whether there is more
> C requests the next N rows
> ...
> S sends last rows + flag saying there is no more result
> {noformat}
> The clear goal is for user to not have to worry about limiting queries and doing manual paging.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Comment Edited] (CASSANDRA-4415) Add cursor API/auto paging to the native CQL protocol

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

Tupshin Harper edited comment on CASSANDRA-4415 at 7/5/12 6:38 PM:
-------------------------------------------------------------------

IMO, document thoroughly the lack of isolation when paging and punt. It's the best we can do, and is generally sufficient.
                
      was (Author: tupshin):
    IMO, document the lack of isolation when paging thoroughly and punt. It's the best we can do, and is generally sufficient.
                  
> Add cursor API/auto paging to the native CQL protocol
> -----------------------------------------------------
>
>                 Key: CASSANDRA-4415
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-4415
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: 1.2
>            Reporter: Sylvain Lebresne
>
> The goal here would be to use a query paging mechanism to the CQL native protocol. Typically the client/server with that would look something like this:
> {noformat}
> C sends query to S.
> S sends N first rows matching the query + flag saying the response is not complete
> C requests the next N rows
> S sends N next rows + flag saying whether there is more
> C requests the next N rows
> ...
> S sends last rows + flag saying there is no more result
> {noformat}
> The clear goal is for user to not have to worry about limiting queries and doing manual paging.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira