<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:53:41 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>[CONTROLLER-715] Cleanup ShardReadTransactions</title>
                <link>https://jira.opendaylight.org/browse/CONTROLLER-715</link>
                <project id="10113" key="CONTROLLER">controller</project>
                    <description>&lt;p&gt;Read-only transactions are not explicitly closed by the client. This is fine for the in-memory store as they get garbage collected (GC&apos;ed) when they go out of scope and no other clean is needed. &lt;/p&gt;

&lt;p&gt;However this poses a problem for the distributed store. For all transactions, a ShardTransaction actor is created, which may be remote, by the front-end TransactionProxy which handles all read/put etc operations. For a write Tx, on commit or close, the ShardTransaction and associated actor are cleanup. But for a read-only Tx, there&apos;s nothing that cleans them up which results in a memory leak (verified via heap dump).&lt;/p&gt;

&lt;p&gt;At the very least, we can utilize a timer to purge ShardTransactions (send PoisonPill message) that haven&apos;t been accessed for a period of time. To be safe we would need a rather long inactivity time out, say 10 minutes. We should do this for all transactions as a stopgap as, even for write Tx, the client-side node could go down before committing/closing or the client encounters an error that prevents it from committing/closing.&lt;/p&gt;

&lt;p&gt;This could still lead to a build-up of stale ShardTransactions if there&apos;s a large burst  of client transactions. We could try to be more proactive and clean up the back-end ShardTransaction when the front-end TransactionProxy is GC&apos;ed, utilizing PhantomReferences and a reference queue. There&apos;s no guarantee an object will get GC&apos;ed in any timely manner nor anyway to control that but client transaction instances should be relatively short-lived, i.e. created locally in a method, used, then go out of scope. In that case, they should generally remain in the young generation (eden) space and not get pushed to old generation. The GC cleans up objects in young generation much more frequently and efficiently than the old generation.&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="25269">CONTROLLER-715</key>
            <summary>Cleanup ShardReadTransactions</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</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="10000">Done</resolution>
                                        <assignee username="tpantelis">Tom Pantelis</assignee>
                                    <reporter username="tpantelis">Tom Pantelis</reporter>
                        <labels>
                    </labels>
                <created>Thu, 21 Aug 2014 19:57:06 +0000</created>
                <updated>Fri, 29 Aug 2014 19:54:49 +0000</updated>
                            <resolved>Fri, 29 Aug 2014 19:54:49 +0000</resolved>
                                    <version>Helium</version>
                                                    <component>mdsal</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="48925" author="tpantelis" created="Fri, 22 Aug 2014 15:47:19 +0000"  >&lt;p&gt;Submitted &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/10175/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/10175/&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                    <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>1598</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=1598]]></customfieldvalue>

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

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