Uploaded image for project: 'Nuxeo Platform'
  1. Nuxeo Platform
  2. NXP-11925

vcs selection cache do not scale on large folderish

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 5.6
    • Fix Version/s: QualifiedToSchedule
    • Component/s: Core VCS

      Description

      When adding a document in a large folderish, the core session is checking for the name unicity. This implies an iteration onto the folderish selection in the cache that don't scale on large folder.

      Also, a customer told us that flushing the cache makes the creation process quicker. We have to investigate this because there is no reason for. We're expecting the folder cache being rebuilt on next document creation, so the process would be longer instead.

      Nuxeo-Work-default-3" prio=10 tid=0x00007f2b9c3e5800 nid=0x6b12 runnable [0x00007f2b890d1000]
      java.lang.Thread.State: RUNNABLE
      at org.apache.commons.collections.map.AbstractReferenceMap.purgeBeforeRead(AbstractReferenceMap.java:336)
      at org.apache.commons.collections.map.AbstractReferenceMap.get(AbstractReferenceMap.java:228)
      at org.nuxeo.ecm.core.storage.sql.PersistenceContext.getIfPresent(PersistenceContext.java:536)
      at org.nuxeo.ecm.core.storage.sql.PersistenceContext.get(PersistenceContext.java:565)
      at org.nuxeo.ecm.core.storage.sql.Selection.getFragment(Selection.java:263)
      at org.nuxeo.ecm.core.storage.sql.Selection.getFragmentByValue(Selection.java:281)
      at org.nuxeo.ecm.core.storage.sql.SelectionContext.getSelectionFragment(SelectionContext.java:204)
      at org.nuxeo.ecm.core.storage.sql.PersistenceContext.getChildHierByName(PersistenceContext.java:1323)
      at org.nuxeo.ecm.core.storage.sql.SessionImpl.hasChildNode(SessionImpl.java:946)
      at org.nuxeo.ecm.core.storage.sql.ra.ConnectionImpl.hasChildNode(ConnectionImpl.java:203)
      at org.nuxeo.ecm.core.storage.sql.coremodel.SQLSession.hasChild(SQLSession.java:781)
      at org.nuxeo.ecm.core.storage.sql.coremodel.SQLDocumentLive.hasChild(SQLDocumentLive.java:562)
      at org.nuxeo.ecm.core.api.AbstractSession.generateDocumentName(AbstractSession.java:994)
      at org.nuxeo.ecm.core.api.AbstractSession.createDocument(AbstractSession.java:874)
      at sun.reflect.GeneratedMethodAccessor165.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:601)
      at org.nuxeo.ecm.core.api.TransactionalCoreSessionWrapper.invoke(TransactionalCoreSessionWrapper.java:133)
      at com.sun.proxy.$Proxy44.createDocument(Unknown Source)
      at de.mvbonline.vlb.CreateDummyProductsWork.create(CreateDummyProductsWork.java:53)
      at de.mvbonline.vlb.CreateDummyProductsWork.work(CreateDummyProductsWork.java:43)
      at org.nuxeo.ecm.core.work.AbstractWork.run(AbstractWork.java:164)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      at java.lang.Thread.run(Thread.java:722)

        Attachments

          Issue Links

            Activity

              People

              • Votes:
                0 Vote for this issue
                Watchers:
                6 Start watching this issue

                Dates

                • Created:
                  Updated: