when we test picketlink performance, we found the picketlink performance is very bad due to each of process have global lock in the code. e.g org.picketlink.identity.federation.web.process.SAMLHandlerChainProcessor. ServiceProviderBaseProcessor and org/picketlink/identity/federation/bindings/tomcat/idp/AbstractIDPValve. but we check the handler is thread safe, so the lock is unreasonable. we can remove this lock or change the hanlder not singletone.
we had tried to fix by our self. after remove unreasonable lock, the TPS will back to 456, one TPS include one login and one global logout.
when we test picketlink performance, we found the picketlink performance is very bad due to each of process have global lock in the code. e.g org.picketlink.identity.federation.web.process.SAMLHandlerChainProcessor. ServiceProviderBaseProcessor and org/picketlink/identity/federation/bindings/tomcat/idp/AbstractIDPValve. but we check the handler is thread safe, so the lock is unreasonable. we can remove this lock or change the hanlder not singletone.
we had tried to fix by our self. after remove unreasonable lock, the TPS will back to 456, one TPS include one login and one global logout.
please check our gist.
https://gist.github.com/wzhx78/5418959