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

Improve RedisBlockingQueue to reduce number of requests

    XMLWordPrintable

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 6.0, 7.3
    • Fix Version/s: 6.0-HF27, 7.4
    • Component/s: Redis

      Description

      The RedisBlockingQueue is polling the Redis server repeatedly to check for new job every 100ms.

      Every Worker threads is doing this (4 default, 4elasticsearch, 4 escalation, 1 updateACEStatus, 1 fulltextUpdater, 1 permissionsPurge, 1 collections, 1 audit ...) so more than 17 threads creating more than hundred of requests per second for a single Nuxeo node.

      This should be avoided.

      Also multiple Redis commands should be pipelined.

      The Redis queue implementation generates less requests to Redis and improve performance by prioritizing local worker with potentially warm cache. Also Redis commands are now pipelined reducing the number of Redis roundtrip.

        Attachments

          Issue Links

            Activity

              People

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

                Dates

                • Created:
                  Updated:
                  Resolved: