Rainer Jung wrote:
Hi Filip,
Filip Hanik - Dev Lists schrieb:
- Java 5 dispatcher: I mostly agree. I got lost in the code. The code
I thought was responsible was transport/PooledSender.java which uses a
fixed pool of threads without queueing. I overlooked somehow the
Executor with queue in the Java 5 dispatcher. Nevertheless there's
still some discrepancy, because we added some aspects to the queue in
5.5 which are gone now:
oh, I didn't even realize this :)
MessageDispatchInterceptor.java uses
protected FastQueue queue = new FastQueue();
- lock fairness biased to the remover in order to reduce the
likelyness of lock starvation
- taking over the whole queue by the remover instead of
removing item by item (again less lock contention paired with
less context switching)
- limited size: Favor prevention of OutOfMemoryError over replication
correctness in case we run into replication communication problems.
Priority is always on the primary function, i.e. a working webapp,
clustering is always a secondary function which should be as
transparent as possible during normal operations
Filip
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]