<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:54:59 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-1223] Clustering : Chunk an append entry to ensure that we not exceed akka-remoting size limit</title>
                <link>https://jira.opendaylight.org/browse/CONTROLLER-1223</link>
                <project id="10113" key="CONTROLLER">controller</project>
                    <description></description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="25777">CONTROLLER-1223</key>
            <summary>Clustering : Chunk an append entry to ensure that we not exceed akka-remoting size limit</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="moraja@cisco.com">Moiz Raja</reporter>
                        <labels>
                    </labels>
                <created>Tue, 24 Mar 2015 15:47:27 +0000</created>
                <updated>Mon, 3 Jul 2017 21:43:03 +0000</updated>
                            <resolved>Mon, 3 Jul 2017 21:43:03 +0000</resolved>
                                    <version>Post-Helium</version>
                                                    <component>clustering</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="50318" author="moraja@cisco.com" created="Tue, 24 Mar 2015 15:48:30 +0000"  >&lt;p&gt;A large transaction with a lot of operations can result in a really large append entry which may need to be chunked the same as snapshot chunking.&lt;/p&gt;</comment>
                            <comment id="50319" author="tpantelis" created="Mon, 18 Jan 2016 08:12:35 +0000"  >&lt;p&gt;If a single AppendEntries exceeds the max size, maybe we should just send a snapshot.&lt;/p&gt;</comment>
                            <comment id="50320" author="rovarga" created="Wed, 13 Apr 2016 09:52:18 +0000"  >&lt;p&gt;This is related to maximum-frame-size. This affects not only AppendEntries, but also other messages. Rather than dealing with this in the business logic, I think we should be plugging into the transport and implement some sort of fragmentation/defragmentation component &amp;#8211; if that is possible.&lt;/p&gt;</comment>
                            <comment id="50321" author="rovarga" created="Mon, 19 Dec 2016 17:29:22 +0000"  >&lt;p&gt;We can solve this by switching to Artery (and perhaps allocating a dedicated channel to carry these messages).&lt;/p&gt;

&lt;p&gt;Patch to switch to Artery: &lt;a href=&quot;https://git.opendaylight.org/gerrit/49466&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/49466&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="50322" author="rovarga" created="Tue, 20 Dec 2016 14:46:27 +0000"  >&lt;p&gt;One additional improvement we can do with Artery is to separate messages into separate subchannels, hence eliminating latency cross-talk between components.&lt;/p&gt;

&lt;p&gt;Specifically:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;RAFT messages should use one subchannel&lt;/li&gt;
	&lt;li&gt;Frontend -&amp;gt; Backend messages should use another subchannel&lt;/li&gt;
	&lt;li&gt;Backend -&amp;gt; Frontend messages should use yet another subchannel&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;This should result in RAFT not being blocked by anything going on in the FE/BE interface and Shards being able to make forward progress irrespective of frontend request being made from their local node to shard leaders on other nodes.&lt;/p&gt;</comment>
                            <comment id="50323" author="tpantelis" created="Wed, 28 Dec 2016 05:04:57 +0000"  >&lt;p&gt;It does not appear Artery itself solves this - while the aeron layer will fragment messages into smaller chunks, akka still imposes an upper limit governed by artery.advanced.maximum-frame-size. We&apos;ll need to bump this up as we did with netty.tcp.maximum-frame-size. &lt;/p&gt;

&lt;p&gt;From what I&apos;ve read, Artery defines 3 sub channels: 1 for system/heartbeat messages, 1 for ordinary messages and 1 for large messages. By default all user messages go into the &quot;ordinary&quot; sub channel and are thus isolated over the wire from system messages. You can specify particular actors to utilize the large message channel via the artery.large-message-destinations setting. We may want to use this for the FE actors (i.e. read replies can be large). I have not seen anything in the akka docs whereby you can define your own custom sub channels.&lt;/p&gt;

&lt;p&gt;Artery does allow for the configuration of inbound and outbound &quot;lanes&quot; such that ser/des can be performed in parallel for different destination actors, although the messages still share the same transport sub channel. However this feature is not supported or recommended for use yet (needs more hardening).&lt;/p&gt;</comment>
                            <comment id="50324" author="han.jie@zte.com.cn" created="Wed, 12 Apr 2017 08:17:44 +0000"  >&lt;p&gt;I have committed a component to the gerrit&#65292;which does the job of fragmentation and defragmentation mentioned above&#65292; it has past the test of reading large data in one go of in three nodes cluster that would not  broke the heartbreak of raft.&lt;br/&gt;
Looking forward to a more in-depth discussion.&lt;/p&gt;

&lt;p&gt;Some links&#65306;&lt;br/&gt;
&lt;a href=&quot;https://bugs.opendaylight.org/show_bug.cgi?id=7841&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://bugs.opendaylight.org/show_bug.cgi?id=7841&lt;/a&gt; ,in which attached the UML  squences for its usage.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/54753/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/54753/&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="50325" author="tpantelis" created="Mon, 26 Jun 2017 19:30:49 +0000"  >&lt;p&gt;Submitted &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/57301/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/57301/&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>2890</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=2890]]></customfieldvalue>

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

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10204" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>ODL SR Target Milestone</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10320"><![CDATA[Nitrogen]]></customfieldvalue>

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

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