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

Benedict commented on CASSANDRA-9318:
-------------------------------------

I'm filling the blanks for CASSANDRA-5039, since I didn't write the ticket, but 
that is the only sane implementation: for one, we no longer have a 
BlockingQueue in most places that matter, but more importantly a bound that 
blocked task submission could lead to problems with various other systems 
seizing up, and e.g. write saturation stopping us serving reads, etc.

bq.  At CL=1 and the way I hear people think about availability in C* I think 
what you want is to get better at failing to hinting before the coordinator or 
processing node overloads. Under overload conditions CL=1 is basically 
synonymous with writing hints right?

Right.

bq. Maybe this is a congestion control problem? If we piggybacked information 
in responses on congestion issues maybe we could make better decisions about 
new requests such as rejecting a %age or going straight to hints before 
resources have been committed across the cluster?

Yes, I completely agree (in broad strokes, anyway), but that's much more 
complex than we seem to be discussing here, and I'm pretty sure not 2.1 
material. Ideally we would be sending information back to coordinators 
informing them that we have been load shedding, so that they can invalidate 
their handlers for us in preference to those for anyone else. Another related 
ticket is CASSANDRA-3852, which also IMO depends on a system like this. 

> Bound the number of in-flight requests at the coordinator
> ---------------------------------------------------------
>
>                 Key: CASSANDRA-9318
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-9318
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Ariel Weisberg
>            Assignee: Ariel Weisberg
>             Fix For: 2.1.x
>
>
> It's possible to somewhat bound the amount of load accepted into the cluster 
> by bounding the number of in-flight requests and request bytes.
> An implementation might do something like track the number of outstanding 
> bytes and requests and if it reaches a high watermark disable read on client 
> connections until it goes back below some low watermark.
> Need to make sure that disabling read on the client connection won't 
> introduce other issues.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to