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

Josh McKenzie edited comment on CASSANDRA-12106 at 9/29/21, 4:11 PM:
---------------------------------------------------------------------

Pushed up four commits with quite a few changes - some of those target what 
you've spoken about [~sumanth.pasupuleti], and your points on the PR have been 
addressed (I think) [~azotcsit].
{quote}It maybe useful to add a documentation
{quote}
Definitely will do once API's and guarantees are settled in the implementation. 
Good call!
{quote}it is probably best to log a warning if denylisted partitions exceed in 
either number or memory usage
{quote}
Agree 100%. Will add this. (edit: actually does after the recent commits since 
we refresh the denylist data on a per-table basis after we process the CQL for 
addition or removal; the code-paths warn if you're above either the global or 
per-table level)
{quote}Curious on the choice of exposing consistency level for querying 
denylisting partitions
{quote}
I commented the reasoning around why it defaults to CL.QUORUM in one of those 
commits (adding the params to the .yaml), but I'm receptive to an argument that 
we shouldn't even have that as a configurable at all to the end user and just 
twiddle with it in tests. I can see the idea of users being able to up it to 
CL.ALL, or perhaps applying that CL to just writes to the denylist at ALL and 
read at QUORUM, but then we're talking about more configurables for diminishing 
returns.
{quote}Curious on why we disable denylisting range reads by default
{quote}
All three types are enabled in the .yaml but commented out now.
{quote}what do you think of choosing text (vs blob). Advantage would be 
readability of the key
{quote}
I wasn't original author on this but here's my take thinking about it for a 
bit. We can either a) make things more readable in the table at the expense of 
having a different data type in the DB than is cached in memory and used in the 
read / write path, or b) keep the data type the same up and down the entire 
stack and push the cost to the end user to convert during their query. I lean 
towards b just because this is part of the hot path and I tend to dislike risk 
(even the minimal risk of differing data types in memory vs. table and 
conversion on load); we can document this (including the CQL to query and 
convert to human readable) to work around that little usability friction. wdyt?
{quote}What do you think about adding nodetool commands...
{quote}
Sounds great! I'd prefer we do that work on a followup ticket though as in my 
opinion the CQL + JMX combined interface for this should be adequate for 
operators on a first implementation.

Thanks for the feedback!


was (Author: jmckenzie):
Pushed up four commits with quite a few changes - some of those target what 
you've spoken about [~sumanth.pasupuleti], and your points on the PR have been 
addressed (I think) [~azotcsit].
{quote}It maybe useful to add a documentation
{quote}
Definitely will do once API's and guarantees are settled in the implementation. 
Good call!
{quote}it is probably best to log a warning if denylisted partitions exceed in 
either number or memory usage
{quote}
Agree 100%. Will add this.
{quote}Curious on the choice of exposing consistency level for querying 
denylisting partitions
{quote}
I commented the reasoning around why it defaults to CL.QUORUM in one of those 
commits (adding the params to the .yaml), but I'm receptive to an argument that 
we shouldn't even have that as a configurable at all to the end user and just 
twiddle with it in tests. I can see the idea of users being able to up it to 
CL.ALL, or perhaps applying that CL to just writes to the denylist at ALL and 
read at QUORUM, but then we're talking about more configurables for diminishing 
returns.
{quote}Curious on why we disable denylisting range reads by default
{quote}
All three types are enabled in the .yaml but commented out now.
{quote}what do you think of choosing text (vs blob). Advantage would be 
readability of the key
{quote}
I wasn't original author on this but here's my take thinking about it for a 
bit. We can either a) make things more readable in the table at the expense of 
having a different data type in the DB than is cached in memory and used in the 
read / write path, or b) keep the data type the same up and down the entire 
stack and push the cost to the end user to convert during their query. I lean 
towards b just because this is part of the hot path and I tend to dislike risk 
(even the minimal risk of differing data types in memory vs. table and 
conversion on load); we can document this (including the CQL to query and 
convert to human readable) to work around that little usability friction. wdyt?
{quote}What do you think about adding nodetool commands...
{quote}
Sounds great! I'd prefer we do that work on a followup ticket though as in my 
opinion the CQL + JMX combined interface for this should be adequate for 
operators on a first implementation.

Thanks for the feedback!

> Add ability to blocklist / denylist a CQL partition so all requests are 
> ignored
> -------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-12106
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-12106
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Legacy/Local Write-Read Paths, Local/Config
>            Reporter: Geoffrey Yu
>            Assignee: Josh McKenzie
>            Priority: Low
>             Fix For: 4.x
>
>         Attachments: 12106-trunk.txt
>
>
> Sometimes reads/writes to a given partition may cause problems due to the 
> data present. It would be useful to have a manual way to blocklist / denylist
>  such partitions so all read and write requests to them are rejected.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to