Child pages
  • ConcurrencyControl and Overload protection

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3
Info

Realized in 1.0.8

 

 

DistributeMe should provide means to control overload of a server.
Effectively it means that distributeme should limit outgoing requests on the client side, and incoming requests on the server side.

There are generally 3 proposal how to realize it:

1. Pragmatic

New annotation, @ConcurrencyControl(clientLimit, serverLimit)

2. A little more detailed

New annotations:
@ConcurrencyControlServerSide(limit)
@ConcurrencyControlClientSide(limit)

3. Large more complicated

Code Block
ConcurrencyControlStrategy{
  boolean allowOutgoingCall(...);
  boolean allowIncomingCall(...);
}
Code Block
public @interface ConcurrencyControl {
	Class<? extends ConcurrencyControlStrategy> strategyClass();
	String strategyParameter() default "";
}

4. Mixed

Realize 3 and 2, and let 2 be internally translated into 3.