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

New Core API for recursive processing

    XMLWordPrintable

    Details

    • Type: Task
    • Status: Open
    • Priority: Minor
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: QualifiedToSchedule
    • Component/s: Core

      Description

      By nature, inside Nuxeo Platform we have a lot of processing that is done on a document sub tree :

      • update ACLs on a sub tree (and compute readacls)
      • change life cycle on a sub tree
      • remove documents (delete a sub tree)
      • move a sub tree (and recompute all sub paths)

      All these processing have common characteristics :

      • they can be long running process
      • they can be configured / plugged (ex: version policy removal, lifecycle transitions ...)
      • we must ensure they will run at some point

      Currently, the majority of these processing are handled at database level using triggers and stored procedure.
      This approach shows several limitations :

      • since most processing are synchronous it creates freezes for the users
        • a lots of support client have complained about that
      • it creates performance issues, especially on database engine that don't handle correctly concurrency
        • we had a lot of problems with SQL Server, but there are also problems with PGSQL
      • we need to code, debug and maintain for several database vendors
        • that's really a pain
      • because processing is handled at SQL level
        • some configuration rules are by-passed
        • listeners don't get fired (ex: document delete event )
        • we can not use the same approach for non SQL DB anyway !

      To fix that we need extract a new set of core level APIs (resurseXXX) that :

      • will be shared across most repository backends
        • but may actually be optimized at low level if needed
      • will be Java based and will leverage the `WorkManager` infrastructure

      Part of the work could also be shared with what has been done for ElasticSearch (recursive re-indexing).

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                tdelprat Thierry Delprat
                Participants:
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated: