[infinispan-dev] Distributed Counter Discussion

Eric Wittmann eric.wittmann at redhat.com
Fri Mar 18 10:19:11 EDT 2016


Agreed. :)

On 3/18/2016 9:31 AM, Bela Ban wrote:
> So actually you don't care if you have multiple counters in case of a
> network split, but you do care that the numbers of different counters
> get reconciled when a network partition heals.
>
> Example
> - C1: 1000
> - Network split: C1: 1000, C2: 1000
> - Different clients update counters on both sides of the partition: C1:
> 1500 C2: 1600
> - Network split disappears, reconciling C1 to 2100: 1000 +500 +600. This
> means the 500 added to C1 should have been added to C2 as well, and the
> 600 to C2 should have been added to C1
>
> If such a behavior would be acceptable, then we could do without CP and
> live with AP
>
> On 18/03/16 14:19, Eric Wittmann wrote:
>> Yes, precisely.  The API Gateway itself is clustered.  It services a
>> large volume of inbound traffic which it reverse-proxies to appropriate
>> back-end APIs after applying policies such as security, rate limiting,
>> caching, etc.
>>
>> -Eric
>>
>> On 3/18/2016 2:32 AM, Bela Ban wrote:
>>> Stupid question: whay do you need a distributed counter for this? Is the
>>> service you're monitoring replicated in a cluster?
>>>
>>> On 17/03/16 18:06, Eric Wittmann wrote:
>>>> Greetings.  Apologies for coming in a bit late on this conversation.
>>>> Tristan pointed me to it a couple of days ago and unfortunately I'm just
>>>> now getting time to reply.
>>>>
>>>> I can try to quickly give an overview of apiman's (JBoss API Management
>>>> Gateway) requirements.
>>>>
>>>> What we're trying to do is implement support for Limiting policies:
>>>>
>>>> * Rate Limiting/Throttling (e.g. limit of 100 requests per second)
>>>> * Quotas (e.g. limit of 100,000,000 requests per month)
>>>> * Transfer Quotas (e.g. limit of 2.5GB of data downloaded per day)
>>>>
>>>> We will need to support multiple backing implementations of the Rate
>>>> Limiter, and we're trying to get Infinispan to be one of those
>>>> implementations.
>>>>
>>>> In no particular order, we would need the following characteristics:
>>>>
>>>> - Can be "squishy" for quotas and transfer quotas:  If you
>>>>        get 100,001,017 requests that's OK
>>>> - Strict would be cool as an option:  Hard-fail when the
>>>>        counter reaches the limit - no chance it will go over.
>>>> - Lots of individual counters:  users may publish 100s of
>>>>        APIs to the Gateway, and each API may be consumed by
>>>>        100s or 1000s of users/client.  Depending on configuration
>>>>        of the policy, *each* user/client has a separate limit.
>>>> - Counters need to be created dynamically:  users can
>>>>        add APIs via the Management UI, configure them to add
>>>>        policies (e.g. a Quota policy) and then publish them to
>>>>        a running Gateway, at which point end users can invoke
>>>>        the API through the Gateway, which will use a counter
>>>>        to enforce the Quota.
>>>> - Counter values reset at the end of a time boundary:  for
>>>>        example, at the end of the month the counter value for
>>>>        the example quota above would reset to 0.
>>>> - Don't care (right now) what the counter value is: at the
>>>>        moment we simply need to know if some counter max value
>>>>        has been reached.  In the future we would like to know
>>>>        when a max value is being "approached" (e.g. to notify a
>>>>        user)
>>>> - Should be persistent: it would not be ideal for e.g. per-
>>>>        month quota values to be lost on server restart.
>>>>
>>>> That's all the high level requirements I can think of off the top of my
>>>> head, and after reading all of the current messages in this thread. :)
>>>>
>>>> -Eric
>>>> _______________________________________________
>>>> infinispan-dev mailing list
>>>> infinispan-dev at lists.jboss.org
>>>> https://lists.jboss.org/mailman/listinfo/infinispan-dev
>>>>
>>>
>> _______________________________________________
>> infinispan-dev mailing list
>> infinispan-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/infinispan-dev
>>
>


More information about the infinispan-dev mailing list