Session management. Horse races

Just raw results without explanation…

Horses: Session, SessionI, SessionII, SessionIII, SessionIV, SessionV, SessionVI, SessionVII, DarkHorse – implement different patterns to acquire DFC-session

DFC Settings:

  • default – means default settings
  • reuse_limit – dfc.session.reuse_limit = 2147483647
  • global_pool – dfc.session.global_pool_enabled=true
  • old pool – dfc.compatibility.useD7SessionPooling=false

Results: DFC benchmark

Preview:



DNF (did not finish) means enabling global pool causes thread-safety issues like:

java.util.NoSuchElementException
        at java.util.LinkedList.getFirst(LinkedList.java:109)
        at com.documentum.fc.client.impl.session.GlobalSessionPool.get(GlobalSessionPool.java:41)
        at com.documentum.fc.client.impl.session.PooledSessionFactory.newSession(PooledSessionFactory.java:33)
        at com.documentum.fc.client.impl.session.SessionManager.getSessionFromFactory(SessionManager.java:134)
        at com.documentum.fc.client.impl.session.SessionManager.newSession(SessionManager.java:72)
        at com.documentum.fc.client.impl.session.SessionManager.getSession(SessionManager.java:191)
        at tel.panfilov.documentum.benchmark.impl.Session.doOp(Session.java:31)
        at tel.panfilov.documentum.benchmark.impl.SessionI.doOp(SessionI.java:14)
        at tel.panfilov.documentum.benchmark.Benchmark.run(Benchmark.java:105)
        at java.lang.Thread.run(Thread.java:662)


java.util.ConcurrentModificationException
        at java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:761)
        at java.util.LinkedList$ListItr.remove(LinkedList.java:729)
        at com.documentum.fc.client.impl.session.GlobalSessionPool.flush(GlobalSessionPool.java:114)
        at com.documentum.fc.client.impl.session.PooledSessionFactory.flush(PooledSessionFactory.java:80)
        at com.documentum.fc.client.impl.session.SessionManager.flushSessions(SessionManager.java:259)
        at com.documentum.fc.client.impl.session.SessionManager.flushSessions(SessionManager.java:287)
        at tel.panfilov.documentum.benchmark.impl.SessionIII.doOp(SessionIII.java:15)
        at tel.panfilov.documentum.benchmark.Benchmark.run(Benchmark.java:105)
        at java.lang.Thread.run(Thread.java:662


Exception in thread "Global Session pool worker" java.util.ConcurrentModificationException
        at java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:761)
        at java.util.LinkedList$ListItr.next(LinkedList.java:696)
        at com.documentum.fc.client.impl.session.GlobalSessionPool.flushExpiredSessions(GlobalSessionPool.java:203)
        at com.documentum.fc.client.impl.session.GlobalSessionPool$ExpirationThread.run(GlobalSessionPool.java:232)