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

Andres de la Peña commented on CASSANDRA-15977:
-----------------------------------------------

[~skandyla] thanks for the feedback. I see that the provided typical request 
explicitly selects the {{ids}} column, which is a not-frozen collection. 

Not-frozen collection columns are columns with multiple cells. The 
{{ColumnFilter}} uses the method {{fetchedColumnIsQueried}} for single-cell 
columns and {{fetchedCellIsQueried}} for each cell in a multi-cell column. The 
bug fixed by this ticket makes {{fetchedCellIsQueried}} to first verify that 
the containing column of the cell is also fetched, doing an extra call to 
{{fetchedColumnIsQueried}} for every collection item. This might be what is 
causing the performance regression. Note that, if I'm right, those extra calls 
only happen if there's an explicit selection of a multi-cell column (not a 
{{*}} selection),  and there are conflicts among the queried replicas. What's 
the average number of items of {{ids}}? Is it possible that the replicas are 
very out-of-sync?

For the sake of correctness in (at least) read repair we need that additional 
call to {{fetchedColumnIsQueried}} to verify that the column of a cell is also 
fetched. Otherwise, we'd be sending repairs for columns that are not selected. 
What we could do to make this more efficiently is trying to make the call to 
{{fetchedColumnIsQueried}} just once when we start reading the first cell of a 
collection, and reuse that result for every following cell of the same 
collection. I'll open a separate ticket for that after a bit more investigation.

Also, forgive me for asking but, are you sure that this is the specific commit 
causing the problem? Any help with reproduction steps is more that welcome.

cc [~maedhroz]

> 4.0 Quality: Read Repair Test Audit
> -----------------------------------
>
>                 Key: CASSANDRA-15977
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-15977
>             Project: Cassandra
>          Issue Type: Task
>          Components: Test/dtest/java, Test/unit
>            Reporter: Andres de la Peña
>            Assignee: Andres de la Peña
>            Priority: Normal
>             Fix For: 3.11.9, 4.0, 4.0-beta3
>
>         Attachments: Screenshot 2021-02-05 at 18.01.10.png
>
>          Time Spent: 13h 50m
>  Remaining Estimate: 0h
>
> This is a subtask of CASSANDRA-15579 focusing on read repair.
> [This 
> document|https://docs.google.com/document/d/1-gldHcdLSMRbDhhI8ahs_tPeAZsjurjXr38xABVjWHE/edit?usp=sharing]
>  lists and describes the existing functional tests for read repair, so we can 
> have a broad view of what is currently covered. We can comment on this 
> document and add ideas for new cases/tests, so it can gradually evolve to a 
> more or less detailed test plan.



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

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

Reply via email to