<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Performance in Parallel Processing in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-in-parallel-processing/m-p/10170893#M1822169</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My program model is as follows:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a RFC FM(ZRFC_BACKGROUND) that will be called in BACKGROUND TASK and&lt;/P&gt;&lt;P&gt;This FM in turn will call a child process(another RFC FM(ZRFC_CHILD)) in parallel for packages that are created in ZRFC_BACKGROUND&lt;/P&gt;&lt;P&gt;We can use around 10 work processes that belongs to one server group, for parallel processing &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Facts regarding Packaging:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;One Package has 4 retry attempts due to locking issues.&lt;UL&gt;&lt;LI&gt;if there is an error in child process, the package is held back in FM : ZRFC_BACKGROUND and re triggered after sometime&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;LI&gt;Locking issues are frequent.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Data in DB tables on which I will put SELECT query:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Header&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Table LIKP (With approximately 1 Million Entries) (My select query will fetch around&amp;nbsp;&amp;nbsp;&amp;nbsp; 800 entries) &lt;/LI&gt;&lt;LI&gt;Item&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Table LIPS (With approximately 6 Million Entries) (My select query will fetch around 10000 entries)&lt;/LI&gt;&lt;LI&gt;Partner&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Table VBPA (With around 3 Million Entries) (My select query will fetch around 3000 entries)&lt;/LI&gt;&lt;LI&gt;Reference&amp;nbsp;&amp;nbsp; Table LIPSRF (With around 74 million entries) (My select query will fetch around 10000 entries)&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;My QUESTION is which of the following approach is better:&lt;/STRONG&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; To put LIKP select query in the first background FM ZRFC_BACKGROUND and pass it to ZRFC_CHILD and do remaining query in ZRFC_CHILD&lt;/LI&gt;&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OR to put all the select query in ZRFC_BACKGROUND&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please keep following things in mind :&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;As we know it is not recommended to pass huge tables in RFC as it may increase the network load (In case of select query in ZRFC_BACKGROUND, network load will be more)&lt;/LI&gt;&lt;LI&gt;But it is also not recommended to do DB select several times (In case of select query in ZRFC_CHILD, db read time will be more )&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;On the basis of aove facts, please suggest which is the better approach.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Rocky&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 14 Mar 2014 11:10:53 GMT</pubDate>
    <dc:creator>Rocky1</dc:creator>
    <dc:date>2014-03-14T11:10:53Z</dc:date>
    <item>
      <title>Performance in Parallel Processing</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-in-parallel-processing/m-p/10170893#M1822169</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My program model is as follows:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a RFC FM(ZRFC_BACKGROUND) that will be called in BACKGROUND TASK and&lt;/P&gt;&lt;P&gt;This FM in turn will call a child process(another RFC FM(ZRFC_CHILD)) in parallel for packages that are created in ZRFC_BACKGROUND&lt;/P&gt;&lt;P&gt;We can use around 10 work processes that belongs to one server group, for parallel processing &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Facts regarding Packaging:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;One Package has 4 retry attempts due to locking issues.&lt;UL&gt;&lt;LI&gt;if there is an error in child process, the package is held back in FM : ZRFC_BACKGROUND and re triggered after sometime&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;LI&gt;Locking issues are frequent.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Data in DB tables on which I will put SELECT query:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Header&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Table LIKP (With approximately 1 Million Entries) (My select query will fetch around&amp;nbsp;&amp;nbsp;&amp;nbsp; 800 entries) &lt;/LI&gt;&lt;LI&gt;Item&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Table LIPS (With approximately 6 Million Entries) (My select query will fetch around 10000 entries)&lt;/LI&gt;&lt;LI&gt;Partner&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Table VBPA (With around 3 Million Entries) (My select query will fetch around 3000 entries)&lt;/LI&gt;&lt;LI&gt;Reference&amp;nbsp;&amp;nbsp; Table LIPSRF (With around 74 million entries) (My select query will fetch around 10000 entries)&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;My QUESTION is which of the following approach is better:&lt;/STRONG&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; To put LIKP select query in the first background FM ZRFC_BACKGROUND and pass it to ZRFC_CHILD and do remaining query in ZRFC_CHILD&lt;/LI&gt;&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OR to put all the select query in ZRFC_BACKGROUND&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please keep following things in mind :&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;As we know it is not recommended to pass huge tables in RFC as it may increase the network load (In case of select query in ZRFC_BACKGROUND, network load will be more)&lt;/LI&gt;&lt;LI&gt;But it is also not recommended to do DB select several times (In case of select query in ZRFC_CHILD, db read time will be more )&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;On the basis of aove facts, please suggest which is the better approach.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Rocky&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 14 Mar 2014 11:10:53 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-in-parallel-processing/m-p/10170893#M1822169</guid>
      <dc:creator>Rocky1</dc:creator>
      <dc:date>2014-03-14T11:10:53Z</dc:date>
    </item>
    <item>
      <title>Re: Performance in Parallel Processing</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-in-parallel-processing/m-p/10170894#M1822170</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Rocky,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Why do you have locking issues? In the worst case, parallel processing will not help at all or even slow down the process if there are too many locks. Ideally, parallel tasks should not collide with each other. Which tables do you update / insert?&lt;/P&gt;&lt;P&gt;How big are your packages? How long do they take to process?&lt;/P&gt;&lt;P&gt;From the database point of view, it will not make a big difference whether you select 1 x 10000 entries or 100 x 100 entries. On the other side, if your second approach leads to additional database accesses as compared to the first one, this of course could slow down the process.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards, Randolf&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 14 Mar 2014 11:48:46 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-in-parallel-processing/m-p/10170894#M1822170</guid>
      <dc:creator>former_member184455</dc:creator>
      <dc:date>2014-03-14T11:48:46Z</dc:date>
    </item>
    <item>
      <title>Re: Performance in Parallel Processing</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-in-parallel-processing/m-p/10170895#M1822171</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;What is the reason to implement parallel processing? If your queries are index-supported then they should return quite quickly. It seems that you can use a join select, as the tables are related.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Apart from this, in order to split the overall task into evenly sized packages you could read just LIKP-VBELN in ZRFC_BACKGROUND and then call the ZRFC_CHILD processes with the lists of VBELNs to be processed. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thomas&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 14 Mar 2014 11:56:33 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-in-parallel-processing/m-p/10170895#M1822171</guid>
      <dc:creator>ThomasZloch</dc:creator>
      <dc:date>2014-03-14T11:56:33Z</dc:date>
    </item>
  </channel>
</rss>

