Uploaded image for project: 'JGroups'
  1. JGroups
  2. JGRP-2541

Get rid of internal thread pool

    XMLWordPrintable

Details

    • Enhancement
    • Resolution: Done
    • Major
    • 5.2
    • None
    • None
    • False
    • False
    • Undefined

    Description

      Currently, we have a regular and an internal thread pool. The goal of the internal pool is to handle internal messages exclusively, so that heartbeats for example are not stuck behind regular messages. However, the following points speak in favor of abolishing the internal pool:

      • Increased code complexity and configuration (we have to maintain 2 thread pools instead of 1)
      • Work stealing in UNICAST3 and NAKACK2 defeats the purpose of the internal pool: a thread of the internal pool might deliver regular messages, and vice versa. In the former case, since regular messages may block, the internal pool can become exhausted
      • Due to work stealing, when the regular pool is exhausted, the chances of the internal pool getting exhausted are high, so we might as well just have 1 pool
      • Internal messages are dropped when the internal pool is full (changed in JGRP-2539 [1]). This doesn't require an internal pool
      • SUMMARY: the goal that the internal thread pool processes only internal messages is not achievable with work stealing in place, therefore we might as well abolish it. This leads to less code complexity and configuration.

      [1] https://issues.redhat.com/browse/JGRP-2539

      Attachments

        Activity

          People

            rhn-engineering-bban Bela Ban
            rhn-engineering-bban Bela Ban
            Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: