[ 
https://issues.apache.org/jira/browse/CASSANDRA-19413?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Szymon Miezal reassigned CASSANDRA-19413:
-----------------------------------------

    Assignee: Szymon Miezal

> Batch size guardrail ignores primary key size
> ---------------------------------------------
>
>                 Key: CASSANDRA-19413
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-19413
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Feature/Guardrails
>            Reporter: Szymon Miezal
>            Assignee: Szymon Miezal
>            Priority: Normal
>
> {color:#1f2328}The size of a mutation does not consider the primary key size. 
> In the context of BATCHed mutations, this means that INSERTs, DELETEs, and 
> UPDATEs for tables with a simple PRIMARY KEY and no clustering columns would 
> be equal to zero (or almost zero depending on the version). Consequently, the 
> batch_size_fail_threshold_in_kb has no effect for such tables, and it cannot 
> protect the cluster from being overloaded.{color}
> {color:#1f2328}A test that reproduces the problem in 3.11 - 
> [https://github.com/szymon-miezal/cassandra/commit/50b27c1e9030ce5ace6a6486a9876493c4ad41ae#diff-8cb249caec219439da461a4369f20530bb7d6cc0467c7e46f16288e22b574e61R43]
>  
> {color}
> {color:#1f2328}There are a few ways it could be solved:{color}
>  * {color:#1f2328}Modifying the existing batch_size_fail_threshold_in_kb to 
> take into account the primary keys size (it has the disadvantage of changing 
> the semantic of the guardrail thus introducing a regression).
> {color}
>  * {color:#1f2328}Adding a new guardrail e.g. 
> {color:#1f2328}batch_size_with_pk_fail_threshold_in_kb that is going to be 
> calculated taking primary key into account.{color}{color}
>  * {{{color:#1f2328}{color:#1f2328}Adding a -D switch{color:#1f2328} that by 
> default would be {color}{{false}}{color:#1f2328} meaning that in case the new 
> formula (which takes PK into account) yields value over the error threshold 
> it will gracefully tell us about it in an additional log message. Changing 
> the flag value to {color}{{true}}{color:#1f2328} would be equivalent to the 
> new formula and error will be thrown in case we get over the 
> threshold.{color}{color}{color}}}
> {{{color:#1f2328}{color:#1f2328}{color:#1f2328}I have a preference for going 
> with an option that adds a new guardrail.{color}{color}{color}}}
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

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

Reply via email to