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

Stefan Podkowinski commented on CASSANDRA-13459:
------------------------------------------------

We do implement some basic backpressure for inter-node communication 
(CASSANDRA-8457) based on Netty's {{Channel.isWritable()}} indicator (see 
{{MessageOutHandler.channelWritabilityChanged()}}, 
{{OutboundConnectionParams}}, {{QueuedMessage}}). And there's also 
{{CoalescingStrategy}}. But I don't think we're doing any of this for native 
transport. My guess would be that this kind of optimizations won't be very 
effective for single connection based request/response semantics, in contrast 
to the bulky async messaging for inter-node communication.

But we could still optimize native transport a bit for diag events by 
implementing load shedding, as we only provide events on best effort basis, see 
[5121a848|https://github.com/spodkowinski/cassandra/commit/5121a848855f35894f2fb5176d7dc46f7b2a8571].
 Ideally we would then also indicate that messages have been dropped/omitted, 
but we'll also have to introduce a corresponding message to the protocol spec.
{quote}Looking at what you have now there is no query language correct? You 
subscribe to these events via the wire protocol not the query language?
{quote}
Yes, exactly. I'd assume most drivers would have a hard time to support 
publish/subscribe semantics in existing request/response query execution models.

> Diag. Events: Native transport integration
> ------------------------------------------
>
>                 Key: CASSANDRA-13459
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-13459
>             Project: Cassandra
>          Issue Type: Sub-task
>          Components: CQL
>            Reporter: Stefan Podkowinski
>            Assignee: Stefan Podkowinski
>            Priority: Major
>              Labels: client-impacting
>
> Events should be consumable by clients that would received subscribed events 
> from the connected node. This functionality is designed to work on top of 
> native transport with minor modifications to the protocol standard (see 
> [original 
> proposal|https://docs.google.com/document/d/1uEk7KYgxjNA0ybC9fOuegHTcK3Yi0hCQN5nTp5cNFyQ/edit?usp=sharing]
>  for further considered options). First we have to add another value for 
> existing event types. Also, we have to extend the protocol a bit to be able 
> to specify a sub-class and sub-type value. E.g. 
> {{DIAGNOSTIC_EVENT(GossiperEvent, MAJOR_STATE_CHANGE_HANDLED)}}. This still 
> has to be worked out and I'd appreciate any feedback.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to