THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
- Step1: Adding the first PID for user will create a bloom filter for this user in the cached map (let call it bloom_filter_1)
- Any new PIDs will be added to this cache within for the first half of
producer.id.quota.window.size.seconds
- Any new PIDs will be added to this cache within for the first half of
- Step2: A new bloom filter will be created along side the old one for the user once we exceed for the second half of
producer.id.quota.window.size.seconds (let's call it bloom_filter_2).
- All new PIDs from this point will be added to the new filter.
- Both bloom filters will be used to check if we came across the same PID before or not.
- Step3: The old bloom filter (bloom_filter_1) will be disposed once we reach 1.5 x
producer.id.quota.window.size.seconds
. Leaving only bloom_filter_2 From this point the cache will be only using bloom_filter_2 until the next producer.id.quota.window.size.seconds start
Step4: Repeat steps 2, and 3 on bloom_filter_2 once we reach next producer.id.quota.window.size.seconds
.
User entry in the cached map will be entirely removed from the caching layer if it doesn't have any active bloom filters attached to it anymore.
...
Name | Type | Default | Description |
---|---|---|---|
producer.id.quota.window.num | Int | 11 | The number of samples to retain in memory for alter producer id quotas |
producer.id.quota.window.size.seconds | Int | 13600 | The time span of each sample for producer id quotas. Default is 1hr. |
producer.id.quota.cache.cleanup.scheduler.interval.ms | Int | 10 | The frequency in ms that the producer id quota manager will check for disposed cached window. |
...