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

Aleksey Yeschenko commented on CASSANDRA-13867:
-----------------------------------------------


Nicely done. This will make the codebase a bit more sane and safe - +1 from me. 
Have 3 very minor notes and a few nits highlighted by IDEA:

1. {{BatchUpdatesCollector.toMutations()}} creates ands throws away an 
unnecessary list in each iteration of the loop. Could replace that for-loop 
body with something like {{ksMap.values().forEach(b -> ms.add(b.build()));}} 
instead.
2. {{SingleTableUpdatesCollector.toMutations()}} validates indexed columns, but 
{{BatchUpdatesCollector.toMutations()}} doesn’t. Also, I don’t feel like that 
validation code completely belongs to {{UpdatesCollector}} - at least the 
nested calls. Maybe should put {{validateIndexedColumns()}} in 
{{PartitionUpdate}} and in {{Mutation}}, encapsulated?
3. There are a few places duplicating the logic for {{cdcEnabled}} calculation. 
I feel like it might be better to move it back to {{Mutation}} constructor 
instead. 

The nits in no particular order:
- {{update}} variable in {{RowUpdateBuilder.buildUpdate()}} is redundant, IDEA 
is nagging about it
- {{BatchUpdatesCollector.IMutationBuilder}} has some javadoc problems that 
IDEA doesn’t like
- {{BatchUpdatesCollector.MutationBuilder.add()}} calls default impl of 
{{PartitionUpdate.Builder.toString()}} on duplicate add() - should override 
{{toString()}} to I guess, or just log {{prev.metadata().id}} or something 
instead.
- {{BatchUpdatesCollector.CounterMutationBuilder}} can also be private, like 
{{BatchUpdatesCollector.MutationBuilder}} already is
- {{SingleTableUpdatesCollector}} has a bunch of unused imports

> Make PartitionUpdate and Mutation immutable
> -------------------------------------------
>
>                 Key: CASSANDRA-13867
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-13867
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>            Reporter: Marcus Eriksson
>            Assignee: Marcus Eriksson
>             Fix For: 4.x
>
>
> To avoid issues like CASSANDRA-13619 we should make PartitionUpdate and 
> Mutation immutable.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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

Reply via email to