tree 6b178c9a284754749277f500b03d7a6fc9853177
parent ca9f4aeda769e05222e1734dd93ab95dc27d47eb
author David Jacot <djacot@confluent.io> 1717186679 +0200
committer GitHub <noreply@github.com> 1717186679 -0700
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJmWjB3CRC1aQ7uu5UhlAAA2AYQAJViBhvRijhIE8T5rB9q7FZR
 u5K4TiUO6m2RhBSAMKVypim46J2C2zKcVNQnImXrEz+mW4VrKMztanez8uBEhrOB
 ZivDdCJdQlIXa/CC2aSE0ilMVH22pHSM/IeXv5Zf1UG1d/xBC8rDAAUuA0zw18z1
 sY94UOgj1b+MkPRxTcqpMgJk4AMywL2p/d6c47IsZgsYhvvctUx9SkPg5Gz+NZpB
 X5LZxPpbOWxLbw1PdqUlzC/QQLzE3JWWn0AL9mFcZEDHG/Ld5wYb2Q/hdbUDqHSN
 7Kw15vc7MfMOsAz4dtDenJcNAsBD2gguqnQ6Defth+IN9IQT7Q50PFdkEe4m83vL
 fBSwB+sM5Oj9/Qw/BrSVQC5xxGXxnCWq7YCggN7TV/IKLW8lz0uzB2H7zf8gpeBh
 Pw6LqEMzPrm9BWASgIEnBbht8IlJ3r042cXXUqX7PwH4Y+gFrRk9OnVfQ/kEeuyr
 slej2yOJDSRqxp8V9ztBlpArJeEQTIEmudpfhed5a1eeNbFLyNQ+nEMs1SxdBmfE
 4eF8NlthWbAWhy0bfFPHNgd1jQfJWu510dNT7M24aVXaa06hMvuPelzvFnFnUSBO
 2p3gwqAtCeMrWel8GHDe2y3yxOY4Y9sDPkqo4V+/zKABfZ1p1Q/RbP3X4aFM/pvK
 PDot9OtYJ/NyC4wQwgFT
 =nL5q
 -----END PGP SIGNATURE-----
 

KAFKA-16864; Optimize uniform (homogenous) assignor (#16088)

This patch optimizes uniform (homogenous) assignor by avoiding creating a copy of all the assignments. Instead, the assignor creates a copy only if the assignment is updated. It is a sort of copy-on-write. This change reduces the overhead of the TargetAssignmentBuilder when ran with the uniform (homogenous) assignor.

Trunk:

```
Benchmark                                     (memberCount)  (partitionsToMemberRatio)  (topicCount)  Mode  Cnt   Score   Error  Units
TargetAssignmentBuilderBenchmark.build                10000                         10           100  avgt    5  24.535 ± 1.583  ms/op
TargetAssignmentBuilderBenchmark.build                10000                         10          1000  avgt    5  24.094 ± 0.223  ms/op
JMH benchmarks done
```

```
Benchmark                                       (assignmentType)  (assignorType)  (isRackAware)  (memberCount)  (partitionsToMemberRatio)  (subscriptionType)  (topicCount)  Mode  Cnt   Score   Error  Units
ServerSideAssignorBenchmark.doAssignment             INCREMENTAL         UNIFORM          false          10000                         10         HOMOGENEOUS           100  avgt    5  14.697 ± 0.133  ms/op
ServerSideAssignorBenchmark.doAssignment             INCREMENTAL         UNIFORM          false          10000                         10         HOMOGENEOUS          1000  avgt    5  15.073 ± 0.135  ms/op
JMH benchmarks done
```

Patch:

```
Benchmark                                     (memberCount)  (partitionsToMemberRatio)  (topicCount)  Mode  Cnt  Score   Error  Units
TargetAssignmentBuilderBenchmark.build                10000                         10           100  avgt    5  3.376 ± 0.577  ms/op
TargetAssignmentBuilderBenchmark.build                10000                         10          1000  avgt    5  3.731 ± 0.359  ms/op
JMH benchmarks done
```

```
Benchmark                                       (assignmentType)  (assignorType)  (isRackAware)  (memberCount)  (partitionsToMemberRatio)  (subscriptionType)  (topicCount)  Mode  Cnt  Score   Error  Units
ServerSideAssignorBenchmark.doAssignment             INCREMENTAL         UNIFORM          false          10000                         10         HOMOGENEOUS           100  avgt    5  1.975 ± 0.086  ms/op
ServerSideAssignorBenchmark.doAssignment             INCREMENTAL         UNIFORM          false          10000                         10         HOMOGENEOUS          1000  avgt    5  2.026 ± 0.190  ms/op
JMH benchmarks done
```

Reviewers: Ritika Reddy <rreddy@confluent.io>, Jeff Kim <jeff.kim@confluent.io>, Justine Olshan <jolshan@confluent.io>