MahsaSeifikar commented on code in PR #19742:
URL: https://github.com/apache/kafka/pull/19742#discussion_r2107840373


##########
core/src/main/scala/kafka/server/ClientQuotaManager.scala:
##########
@@ -155,6 +155,7 @@ class ClientQuotaManager(private val config: 
ClientQuotaManagerConfig,
     case None => new DefaultQuotaCallback
   }
   private val clientQuotaType = QuotaType.toClientQuotaType(quotaType)
+  private val activeQuotaEntities = new ConcurrentHashMap[ClientQuotaEntity, 
Boolean]()

Review Comment:
   `KafkaQuotaEntity` is used as the key for `activeQuotaEntities` because it 
tracks entity name (e.g., "userA" or "client1", or default user or client) and 
we can extract the entity type from that. Consider a scenario where a customer 
has two quotas: one for `(userA, client1)` and another for `(userA, client2)`. 
If we only tracked the entity type, removing the quota for one combination 
(e.g., `(userA, client1)`) could incorrectly affect other combinations of the 
same type (e.g., `(userA, client2)`). By using `KafkaQuotaEntity`, we make sure 
that removing one quota does not impact others of the same type. I found this 
issue while testing scenarios involving duplicate quota types.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to