<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:02:00 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>OpenDaylight JIRA</title>
    <link>https://jira.opendaylight.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>8.20.10</version>
        <build-number>820010</build-number>
        <build-date>22-06-2022</build-date>
    </build-info>


<item>
            <title>[INFRAUTILS-1] Add support for a better cooperative threading model</title>
                <link>https://jira.opendaylight.org/browse/INFRAUTILS-1</link>
                <project id="10129" key="INFRAUTILS">infrautils</project>
                    <description>&lt;p&gt;As it stands today, the controller does nothing to help or hinder the use of threads. Going forward, some system to more carefully manage how threads are created and scheduled is likely to help overall system performance.&lt;/p&gt;

&lt;p&gt;A good starting point would be to have a ThreadPoolService which OSGi bundles could depend on and then ask for new threads. The backing implementation could either just act as a blind passthrough to a java thread pool class or (in the future) could do something smart and have hierarchical thread pools with bins for containers, bundles or whatever.&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="19490">INFRAUTILS-1</key>
            <summary>Add support for a better cooperative threading model</summary>
                <type id="10100" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10310&amp;avatarType=issuetype">Improvement</type>
                                                <status id="5" iconUrl="https://jira.opendaylight.org/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10001">Won&apos;t Do</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="colindixon">Colin Dixon</reporter>
                        <labels>
                    </labels>
                <created>Wed, 17 Apr 2013 06:33:16 +0000</created>
                <updated>Tue, 29 Sep 2020 14:53:44 +0000</updated>
                            <resolved>Tue, 29 Sep 2020 14:53:44 +0000</resolved>
                                    <version>(unspecified)</version>
                                                    <component>General</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="35378" author="rob.sherwood@bigswitch.com" created="Fri, 19 Apr 2013 23:13:51 +0000"  >&lt;p&gt;FYI, we had much of the same concerns for the net-virt-platform code and added the threadpool service as a result.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/gitweb?p=net-virt-platform.git;a=blob;f=sdnplatform/src/main/java/org/sdnplatform/threadpool/IThreadPoolService.java;h=337d856fbfeefde67d3fec611ce1b885b50d6f72;hb=HEAD&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/gitweb?p=net-virt-platform.git;a=blob;f=sdnplatform/src/main/java/org/sdnplatform/threadpool/IThreadPoolService.java;h=337d856fbfeefde67d3fec611ce1b885b50d6f72;hb=HEAD&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Would such a thing be beneficial here?&lt;/p&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Rob&lt;br/&gt;
.&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="35379" author="mkothand@in.ibm.com" created="Sat, 20 Apr 2013 04:04:28 +0000"  >&lt;p&gt;There are few things to consider here (not necessarily blockers for &lt;br/&gt;
centralized pool for modules) .. &lt;/p&gt;

&lt;p&gt;Actually, there cannot be a central threadpool for the whole system &lt;br/&gt;
because we have multiple components involved. By components, I mean - &lt;br/&gt;
Infinispan, JGroups (at least I could not notice any libraries spawning &lt;br/&gt;
threads internally apart from these two)&lt;/p&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Infinispan by itself manages its internal threadpool. These threads are&lt;br/&gt;
usable for functionality like asynchronous cache-operations (putAsync, &lt;br/&gt;
removeAsync etc), asynchronous cache-listener (handle notifications such &lt;br/&gt;
as cache-operations entry-created, entry-evicted, entry-updated etc on per &lt;br/&gt;
cache basis), asynchronous cache-manager-listener notifications (handle &lt;br/&gt;
notifications such as cluster-view-changed, merge-event (instance rejoin &lt;br/&gt;
after cluster split) etc)&lt;br/&gt;
Of course, we do not use async support for these. But, in case, if we &lt;br/&gt;
start using async option of these features of Infinispan then, threadpool &lt;br/&gt;
required for this would be managed by Infinispan and we can configure &lt;br/&gt;
Infinispan with the pool parameters&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;JGroups internally uses threads for its own operations&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Now, threadpool which we can introduce at Opendaylight platform level &lt;br/&gt;
would be purely for the consumption by SAL and other components. &lt;/p&gt;

&lt;p&gt;So, whenever, we start exploiting async features of Infinispan also, &lt;br/&gt;
thread-budgeting must examine all  threadpools involved and no of cores of &lt;br/&gt;
the deployed system to select suitable quantity to reduce &lt;br/&gt;
context-switching overheads. &lt;/p&gt;

&lt;p&gt;Regards&lt;/p&gt;

&lt;p&gt;Muthukumaran (Muthu)&lt;br/&gt;
mkothand@in.ibm.com&lt;br/&gt;
M : +91-9845363820&lt;br/&gt;
L  : 080-49141730&lt;/p&gt;

&lt;p&gt;P(existence at t) = 1- 1/P(existence at t-1)&lt;/p&gt;



&lt;p&gt;From:   bugzilla-daemon@bugs.opendaylight.org&lt;br/&gt;
To:     Muthukumaran Kothandaraman/India/IBM@IBMIN&lt;br/&gt;
Date:   04/20/2013 04:42 AM&lt;br/&gt;
Subject:        &lt;a href=&quot;https://jira.opendaylight.org/browse/INFRAUTILS-1&quot; title=&quot;Add support for a better cooperative threading model&quot; class=&quot;issue-link&quot; data-issue-key=&quot;INFRAUTILS-1&quot;&gt;&lt;del&gt;INFRAUTILS-1&lt;/del&gt;&lt;/a&gt; Add support for a better cooperative threading &lt;br/&gt;
model&lt;/p&gt;



&lt;p&gt;&lt;a href=&quot;https://bugs.opendaylight.org/show_bug.cgi?id=11&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://bugs.opendaylight.org/show_bug.cgi?id=11&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Rob Sherwood &amp;lt;Rob.Sherwood@bigswitch.com&amp;gt; changed:&lt;/p&gt;

&lt;p&gt;           What    |Removed                     |Added&lt;br/&gt;
----------------------------------------------------------------------------&lt;br/&gt;
                 CC| |Rob.Sherwood@bigswitch.com&lt;/p&gt;

&lt;p&gt;&amp;#8212; Comment #2 from Rob Sherwood &amp;lt;Rob.Sherwood@bigswitch.com&amp;gt; 2013-04-19 &lt;br/&gt;
23:13:51 UTC &amp;#8212;&lt;br/&gt;
FYI, we had much of the same concerns for the net-virt-platform code and &lt;br/&gt;
added&lt;br/&gt;
the threadpool service as a result.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/gitweb?p=net-virt-platform.git;a=blob;f=sdnplatform/src/main/java/org/sdnplatform/threadpool/IThreadPoolService.java;h=337d856fbfeefde67d3fec611ce1b885b50d6f72;hb=HEAD&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/gitweb?p=net-virt-platform.git;a=blob;f=sdnplatform/src/main/java/org/sdnplatform/threadpool/IThreadPoolService.java;h=337d856fbfeefde67d3fec611ce1b885b50d6f72;hb=HEAD&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;Would such a thing be beneficial here?&lt;/p&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Rob&lt;br/&gt;
.&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="35380" author="rob.sherwood@bigswitch.com" created="Sat, 20 Apr 2013 04:20:55 +0000"  >&lt;p&gt;I&apos;m not sure that I (or assuming Collin) meant for the whole system... really just for various components in the controller&apos;s running process &amp;#8211; thus the link of an example implementation.&lt;/p&gt;

&lt;p&gt;Does that make more sense?&lt;/p&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Rob&lt;br/&gt;
.&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="35381" author="mkothand@in.ibm.com" created="Sat, 20 Apr 2013 04:45:43 +0000"  >&lt;p&gt;Hi Rob, &lt;/p&gt;

&lt;p&gt;Sure it does make sense. For various Opendaylight components we do need a &lt;br/&gt;
common thread-pool for better manageability and tuning. &lt;br/&gt;
I only meant that this Opendaylight specific thread-pool is one among &lt;br/&gt;
other possible thread-pools (Infinispan + JGroups) when we consider the &lt;br/&gt;
whole system.&lt;/p&gt;

&lt;p&gt;Regards&lt;/p&gt;

&lt;p&gt;Muthukumaran (Muthu)&lt;br/&gt;
mkothand@in.ibm.com&lt;br/&gt;
M : +91-9845363820&lt;br/&gt;
L  : 080-49141730&lt;/p&gt;

&lt;p&gt;P(existence at t) = 1- 1/P(existence at t-1)&lt;/p&gt;



&lt;p&gt;From:   bugzilla-daemon@bugs.opendaylight.org&lt;br/&gt;
To:     Muthukumaran Kothandaraman/India/IBM@IBMIN&lt;br/&gt;
Date:   04/20/2013 09:49 AM&lt;br/&gt;
Subject:        &lt;a href=&quot;https://jira.opendaylight.org/browse/INFRAUTILS-1&quot; title=&quot;Add support for a better cooperative threading model&quot; class=&quot;issue-link&quot; data-issue-key=&quot;INFRAUTILS-1&quot;&gt;&lt;del&gt;INFRAUTILS-1&lt;/del&gt;&lt;/a&gt; Add support for a better cooperative threading &lt;br/&gt;
model&lt;/p&gt;



&lt;p&gt;&lt;a href=&quot;https://bugs.opendaylight.org/show_bug.cgi?id=11&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://bugs.opendaylight.org/show_bug.cgi?id=11&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&amp;#8212; Comment #4 from Rob Sherwood &amp;lt;Rob.Sherwood@bigswitch.com&amp;gt; 2013-04-20 &lt;br/&gt;
04:20:55 UTC &amp;#8212;&lt;br/&gt;
I&apos;m not sure that I (or assuming Collin) meant for the whole system... &lt;br/&gt;
really&lt;br/&gt;
just for various components in the controller&apos;s running process &amp;#8211; thus &lt;br/&gt;
the&lt;br/&gt;
link of an example implementation.&lt;/p&gt;

&lt;p&gt;Does that make more sense?&lt;/p&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Rob&lt;br/&gt;
.&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="35382" author="carolsand@gmail.com" created="Mon, 4 May 2015 20:11:35 +0000"  >&lt;p&gt;This bug is part of the project to Move all ADSAL associated component bugs to ADSAL&lt;/p&gt;</comment>
                            <comment id="35383" author="rovarga" created="Thu, 19 May 2016 18:27:04 +0000"  >&lt;p&gt;This is probably best addressed in infrautils.&lt;/p&gt;</comment>
                            <comment id="68646" author="rovarga" created="Tue, 29 Sep 2020 14:53:44 +0000"  >&lt;p&gt;After a couple of years of experience, having global threadpools is not a good idea, as applications will end up tramping on each other.&lt;/p&gt;

&lt;p&gt;The second reason is we want to avoid as much as possible being framework-ish &#8211; that just increases the bar for entry of fresh developers and also means our components are actually &lt;b&gt;less&lt;/b&gt; reusable outside the confines of Karaf.&lt;/p&gt;

&lt;p&gt;The third reason is that &lt;a href=&quot;https://wiki.openjdk.java.net/display/loom/Main&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Project Loom&lt;/a&gt; is bound to rather thoroughly change the way threading works &#8211; notably structured concurrency will not be using pools.&lt;/p&gt;

&lt;p&gt;Based on these reasons I am closing this as WONTFIX.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10002">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="24563">CONTROLLER-9</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                            <customfield id="customfield_11400" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10208" key="com.atlassian.jira.plugin.system.customfieldtypes:textfield">
                        <customfieldname>External issue ID</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>11</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10201" key="com.atlassian.jira.plugin.system.customfieldtypes:url">
                        <customfieldname>External issue URL</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[https://bugs.opendaylight.org/show_bug.cgi?id=11]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10206" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Issue Type</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10308"><![CDATA[New Feature]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i01mfr:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>