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

Bulk Action executions improvements

    XMLWordPrintable

    Details

    • Type: Epic
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: Bulk

      Description

      A Bulk command submitted to the Bulk Service contains a query that represents a list of items and an action to apply to this set. The execution of the Bulk command is divided into two parts:

      • The scroll: The Scroll computation reads the submitted bulk command and materializes the query results into the action stream.
      • The processing: The Action computation reads the action stream and applies the action processing to the items.

      To provide options for controlling the Bulk command execution, a Bulk action can be flagged as:

      Sequential Scroll (NXP-26212 called sequentialCommands)

      • All bulk commands are routed to the same scroll thread, eliminating parallel scrolling.
      • The processing of a Bulk command can be concurrent.
      • Multiple Bulk commands may briefly run in parallel, overlapping for a short duration.

      Examples: Actions like delete, update acl, move: where it is better to avoid parallel command that might conflict.

      Sequential Processing (NXP-30985)

      • All items of a Bulk command are processed sequentially by the same action thread.
      • Multiple Bulk commands can be scrolled and processed in parallel.

      Examples: a Bulk action that run an automation operation to add docs to a collection, if this is done concurrently we will have concurrent update exception

      Exclusive (NXP-32091)

      • Only one Bulk command can be submitted and running at a time.
      • Submitting a Bulk command while one is running will result in an immediate error.
      • The processing can be concurrent.
      • The entire execution is sequential.

      Examples: heavy administrative operation like: full GC, migration, full reindex, or periodical tasks that can be skipped if already running (transient GC, workflow escalation, ...)

      Note that it is possible to have Sequential Commands by using sequential Scroll with a the bulk action with a single partition,
      or simply using an exclusive command.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                bdelbosc Benoit Delbosc
                Reporter:
                bdelbosc Benoit Delbosc
                Participants:
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: