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

Sylvain Lebresne commented on CASSANDRA-4684:
---------------------------------------------

All I'm saying is that there is a lot of case where a client needs to access 
the schema. And for some tools, like an eclipse plugin for instance, they would 
need to access the schema all the time (to offer say completion or validation). 

Now you don't need this to access the schema, you query the system table. 
However, if you do need to access the schema often, how do you do that? Well, 
either you query the database every damn time, and your plugin/tool/code will 
be super slow. Or, more likely, you cache the schema client side and implement 
some regular polling to refresh that cache. Which works, mostly, but has the 
defaults of polling: should you poll often or not? If you poll too often it's 
inefficient, if you poll not often enough you'll provide a bad user experience. 
Don't get me wrong, I'm not pretending that this is the worst problem database 
face today, but that is not far fetched either and all this ticket does is to 
provide a better solution to that problem. So why wouldn't we give people a 
better solution if we can? And we can very easily. It's not like this small 
patch touch any sensible part of the code, or somehow makes parts of the code 
unreadable (at least to me it seems like a very minor addition).

I also note that the patch don't even impose anything on clients implementors 
since events are optional (and optional by type of events).

As for libpq, as I said, this patch is an optimization so the fact that libpq 
don't support it is not a proof that it's useless either. And as a side note, 
and while I'm not expert in libpq, it has an aynchronous notification mechanism 
and I wouldn't be surprised that along with some simple trigger you can very 
easily have schema change notifications (does the eclipse plugin uses that if 
that does work? I don't know and frankly I don't care).
                
> Binary protocol: inform clients of schema changes
> -------------------------------------------------
>
>                 Key: CASSANDRA-4684
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-4684
>             Project: Cassandra
>          Issue Type: Improvement
>    Affects Versions: 1.2.0 beta 1
>            Reporter: Sylvain Lebresne
>            Assignee: Sylvain Lebresne
>            Priority: Minor
>             Fix For: 1.2.0 beta 2
>
>         Attachments: 0001-Return-schema-change-infos.txt, 
> 0002-Add-migration-events.txt
>
>
> It would be nice to inform clients when a schema change occurs as this would 
> allow said client to maintain the current state of the schema, which might be 
> useful/desirable. To allow that, we can:
> # return that a query has changed the schema (instead of simply a 'void' 
> return), in the same spirit than CASSANDRA-3707.
> # add events notification on schema change.
> Just to be clear, the goal is only to inform that a change has occured, the 
> client would still have to query the system table to know the exact content 
> of the change, but at least it'll know when to do such query.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to