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 (Created) (JIRA)" <ji...@apache.org> on 2012/01/06 19:18:39 UTC

[jira] [Created] (CASSANDRA-3707) Add KeyspaceChange CqlResultType

Add KeyspaceChange CqlResultType
--------------------------------

                 Key: CASSANDRA-3707
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3707
             Project: Cassandra
          Issue Type: New Feature
          Components: API
            Reporter: Jonathan Ellis
            Priority: Minor
             Fix For: 1.1


High level clients want to handle failover and load balancing transparently to the application, which means not just connection pooling but moving an existing connection to another server if necessary.  When this happens, the client needs to know what the active keyspace was before failover, so it can set it to the same one in the new connection.

Currently some clients handle this by checking for "SET KEYSPACE" queries, which violates the design principle that clients shouldn't have to parse CQL.  Adding a new CqlResultType (that is set in response to a SET KEYSPACE command) would make this unnecessary.

--
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] [Updated] (CASSANDRA-3707) Add KeyspaceChange CqlResultType

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

satish babu krishnamoorthy updated CASSANDRA-3707:
--------------------------------------------------

    Attachment: trunk-3707.txt
    
> Add KeyspaceChange CqlResultType
> --------------------------------
>
>                 Key: CASSANDRA-3707
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3707
>             Project: Cassandra
>          Issue Type: Sub-task
>          Components: API
>            Reporter: Jonathan Ellis
>            Assignee: satish babu krishnamoorthy
>              Labels: cql
>             Fix For: 1.1.2
>
>         Attachments: trunk-3707.txt
>
>
> High level clients want to handle failover and load balancing transparently to the application, which means not just connection pooling but moving an existing connection to another server if necessary.  When this happens, the client needs to know what the active keyspace was before failover, so it can set it to the same one in the new connection.
> Currently some clients handle this by checking for "SET KEYSPACE" queries, which violates the design principle that clients shouldn't have to parse CQL.  Adding a new CqlResultType (that is set in response to a SET KEYSPACE command) would make this unnecessary.

--
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] [Updated] (CASSANDRA-3707) Add KeyspaceChange CqlResultType

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

Jonathan Ellis updated CASSANDRA-3707:
--------------------------------------

    Priority: Major  (was: Critical)
    
> Add KeyspaceChange CqlResultType
> --------------------------------
>
>                 Key: CASSANDRA-3707
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3707
>             Project: Cassandra
>          Issue Type: Sub-task
>          Components: API
>            Reporter: Jonathan Ellis
>              Labels: cql
>             Fix For: 1.1
>
>
> High level clients want to handle failover and load balancing transparently to the application, which means not just connection pooling but moving an existing connection to another server if necessary.  When this happens, the client needs to know what the active keyspace was before failover, so it can set it to the same one in the new connection.
> Currently some clients handle this by checking for "SET KEYSPACE" queries, which violates the design principle that clients shouldn't have to parse CQL.  Adding a new CqlResultType (that is set in response to a SET KEYSPACE command) would make this unnecessary.

--
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-3707) Add KeyspaceChange CqlResultType

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

Rick Shaw commented on CASSANDRA-3707:
--------------------------------------

How about returning both current KS and CF in the metadata response on all requests? I understand it is overhead, but from the clients there is currently no way to get it via CQL.
                
> Add KeyspaceChange CqlResultType
> --------------------------------
>
>                 Key: CASSANDRA-3707
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3707
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: API
>            Reporter: Jonathan Ellis
>            Priority: Minor
>              Labels: cql
>             Fix For: 1.1
>
>
> High level clients want to handle failover and load balancing transparently to the application, which means not just connection pooling but moving an existing connection to another server if necessary.  When this happens, the client needs to know what the active keyspace was before failover, so it can set it to the same one in the new connection.
> Currently some clients handle this by checking for "SET KEYSPACE" queries, which violates the design principle that clients shouldn't have to parse CQL.  Adding a new CqlResultType (that is set in response to a SET KEYSPACE command) would make this unnecessary.

--
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] [Updated] (CASSANDRA-3707) Add KeyspaceChange CqlResultType

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

Jonathan Ellis updated CASSANDRA-3707:
--------------------------------------

    Issue Type: Sub-task  (was: New Feature)
        Parent: CASSANDRA-3761
    
> Add KeyspaceChange CqlResultType
> --------------------------------
>
>                 Key: CASSANDRA-3707
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3707
>             Project: Cassandra
>          Issue Type: Sub-task
>          Components: API
>            Reporter: Jonathan Ellis
>            Priority: Critical
>              Labels: cql
>             Fix For: 1.1
>
>
> High level clients want to handle failover and load balancing transparently to the application, which means not just connection pooling but moving an existing connection to another server if necessary.  When this happens, the client needs to know what the active keyspace was before failover, so it can set it to the same one in the new connection.
> Currently some clients handle this by checking for "SET KEYSPACE" queries, which violates the design principle that clients shouldn't have to parse CQL.  Adding a new CqlResultType (that is set in response to a SET KEYSPACE command) would make this unnecessary.

--
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-3707) Add KeyspaceChange CqlResultType

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

paul cannon commented on CASSANDRA-3707:
----------------------------------------

bq. How about returning both current KS and CF in the metadata response on all requests?

If "all requests" here includes "USE" instructions, then that would solve the problem too. It doesn't seem to add much value, though; load-balancing client libraries would need to keep track of the current keyspace per connection either way.
                
> Add KeyspaceChange CqlResultType
> --------------------------------
>
>                 Key: CASSANDRA-3707
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3707
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: API
>            Reporter: Jonathan Ellis
>            Priority: Minor
>              Labels: cql
>             Fix For: 1.1
>
>
> High level clients want to handle failover and load balancing transparently to the application, which means not just connection pooling but moving an existing connection to another server if necessary.  When this happens, the client needs to know what the active keyspace was before failover, so it can set it to the same one in the new connection.
> Currently some clients handle this by checking for "SET KEYSPACE" queries, which violates the design principle that clients shouldn't have to parse CQL.  Adding a new CqlResultType (that is set in response to a SET KEYSPACE command) would make this unnecessary.

--
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-3707) Add KeyspaceChange CqlResultType

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

paul cannon commented on CASSANDRA-3707:
----------------------------------------

Yeah, but I'm not sure it's common for client libs to need that information (what keyspace was used with query Q). The programmer should generally know what keyspace is being used with a given query.

Do you have a use case?
                
> Add KeyspaceChange CqlResultType
> --------------------------------
>
>                 Key: CASSANDRA-3707
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3707
>             Project: Cassandra
>          Issue Type: Sub-task
>          Components: API
>            Reporter: Jonathan Ellis
>            Assignee: satish babu krishnamoorthy
>              Labels: cql
>             Fix For: 1.1.2
>
>
> High level clients want to handle failover and load balancing transparently to the application, which means not just connection pooling but moving an existing connection to another server if necessary.  When this happens, the client needs to know what the active keyspace was before failover, so it can set it to the same one in the new connection.
> Currently some clients handle this by checking for "SET KEYSPACE" queries, which violates the design principle that clients shouldn't have to parse CQL.  Adding a new CqlResultType (that is set in response to a SET KEYSPACE command) would make this unnecessary.

--
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] [Assigned] (CASSANDRA-3707) Add KeyspaceChange CqlResultType

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

satish babu krishnamoorthy reassigned CASSANDRA-3707:
-----------------------------------------------------

    Assignee: satish babu krishnamoorthy
    
> Add KeyspaceChange CqlResultType
> --------------------------------
>
>                 Key: CASSANDRA-3707
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3707
>             Project: Cassandra
>          Issue Type: Sub-task
>          Components: API
>            Reporter: Jonathan Ellis
>            Assignee: satish babu krishnamoorthy
>              Labels: cql
>             Fix For: 1.1.2
>
>
> High level clients want to handle failover and load balancing transparently to the application, which means not just connection pooling but moving an existing connection to another server if necessary.  When this happens, the client needs to know what the active keyspace was before failover, so it can set it to the same one in the new connection.
> Currently some clients handle this by checking for "SET KEYSPACE" queries, which violates the design principle that clients shouldn't have to parse CQL.  Adding a new CqlResultType (that is set in response to a SET KEYSPACE command) would make this unnecessary.

--
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-3707) Add KeyspaceChange CqlResultType

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

Rick Shaw commented on CASSANDRA-3707:
--------------------------------------

Returning in a special type that only gets set when the script calls "USE" really only tells you what the DEFAULT KS is. Not what KS was used in the request (other than USE of course). That is because you can say "SELECT x,y from KS.CF where key="10";" now; where KS can override the currently set default from USE.
                
> Add KeyspaceChange CqlResultType
> --------------------------------
>
>                 Key: CASSANDRA-3707
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3707
>             Project: Cassandra
>          Issue Type: Sub-task
>          Components: API
>            Reporter: Jonathan Ellis
>            Assignee: satish babu krishnamoorthy
>              Labels: cql
>             Fix For: 1.1.2
>
>
> High level clients want to handle failover and load balancing transparently to the application, which means not just connection pooling but moving an existing connection to another server if necessary.  When this happens, the client needs to know what the active keyspace was before failover, so it can set it to the same one in the new connection.
> Currently some clients handle this by checking for "SET KEYSPACE" queries, which violates the design principle that clients shouldn't have to parse CQL.  Adding a new CqlResultType (that is set in response to a SET KEYSPACE command) would make this unnecessary.

--
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-3707) Add KeyspaceChange CqlResultType

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

Jonathan Ellis commented on CASSANDRA-3707:
-------------------------------------------

Quoting Rick from CASSANDRA-2478:

bq. Much of the pressure in the corporate world I live in is from teams that are trying to use JDBC driver for C* in the same fashion and with the same BI, ETL and statistics tools (Talend, Informatica, Datastage, SPSS, SAS) as they do for relational solutions. Many of these tools are quite comprehensive in the information they can display and use, so they are heavy users of the metadata features of the driver. Returning no data for some functions often causes the tooling to just give up, not to use what they have. 

However, given that we've added this functionality to the 2478 driver, do we need to mangle Thrift again to add it there too?  (Since clients will need to be updated to use the new information either way...)
                
> Add KeyspaceChange CqlResultType
> --------------------------------
>
>                 Key: CASSANDRA-3707
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3707
>             Project: Cassandra
>          Issue Type: Sub-task
>          Components: API
>            Reporter: Jonathan Ellis
>            Assignee: satish babu krishnamoorthy
>              Labels: cql
>             Fix For: 1.1.2
>
>
> High level clients want to handle failover and load balancing transparently to the application, which means not just connection pooling but moving an existing connection to another server if necessary.  When this happens, the client needs to know what the active keyspace was before failover, so it can set it to the same one in the new connection.
> Currently some clients handle this by checking for "SET KEYSPACE" queries, which violates the design principle that clients shouldn't have to parse CQL.  Adding a new CqlResultType (that is set in response to a SET KEYSPACE command) would make this unnecessary.

--
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