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]

Reply via email to