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

Improve non optimized STARTSWITH operator on Oracle

    XMLWordPrintable

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 5.9.1
    • Fix Version/s: 5.8.0-HF07, 5.9.2
    • Component/s: Core VCS

      Description

      pathOptimization enables fast search on path (STARTSWITH operator) at the cost of path materialization. The ancestors table that contains a list of ancestors for each node may become too big for large volume. So at some point it can be interesting to disable the path optimization and to reduce the STARTSWITH usage in NXQL.

      The problem is that when the pathOptimization is disable the implementation uses a NX_IN_TREE function that don't support large volume (the function is O(total nb of docs)).

      Even if there is no more NXQL using the STARTSWITH operator, the remove API uses internally the NX_IN_TREE function to get the list children to delete and we get stuck when we have very large volume.

      This ticket is to provide a better implementation of NX_IN_TREE (or DialectOracle.getInTreeSql) using the Oracle CONNECT BY operator.

        Attachments

          Issue Links

            Activity

              People

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

                Dates

                • Created:
                  Updated:
                  Resolved: