<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.appian.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Appian Parallelism</title><link>https://community.appian.com/discussions/f/process/21089/appian-parallelism</link><description>Hi all, 
 I have a process that I want to run, for the amounts of data/records on an array, BUT, I want to control the number of instances it runs each time. 
 For example, I have 20k records but I want the process to execute 30 each time.</description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>RE: Appian Parallelism</title><link>https://community.appian.com/thread/86819?ContentTypeID=1</link><pubDate>Fri, 08 Oct 2021 18:16:51 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:f7559a6d-a3e9-4083-8911-8b0002a9edf7</guid><dc:creator>matthewz0002</dc:creator><description>&lt;p&gt;If you are still looking for a potential solution you could look into the Transaction Manager located in the App Market. This App also gives you the ability to adjust/tune batch sizes/cycle time to obtain better performance and to load balance batches of through your application servers. Another benefit is that you can throttle the batches so that they don&amp;#39;t overload your servers.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://community.appian.com/b/appmarket/posts/transaction-manager"&gt;community.appian.com/.../transaction-manager&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Appian Parallelism</title><link>https://community.appian.com/thread/82323?ContentTypeID=1</link><pubDate>Thu, 03 Jun 2021 19:12:16 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:554153cf-ad7b-4ee3-8f25-4c0302c217be</guid><dc:creator>davel001150</dc:creator><description>&lt;p&gt;You could create a super-process that passes the next 30 from the list into a sub-process, which is synchronous and arranged in a loop.&amp;nbsp; The sub-process it&amp;#39;s called runs a subprocess MNI, once for each item in the 30.&amp;nbsp; Configure it so that all instances start at the same time, but the node doesn&amp;#39;t move on until all instances are complete.&amp;nbsp; In the super-process, if there are more, collect the next 30, and pass as the parameter in the subprocess again.&amp;nbsp; You need to nest the subprocesses 2 levels deep so you don&amp;#39;t hit the 1000 limit (Instead you have a theoretical 1,000,000 limit).&lt;/p&gt;
&lt;p&gt;That should get you continuously processing no more than 30 at a time until they&amp;#39;re all done, (Though you may run into difficulty with the 1000 MNI limit should the numbers significantly change.&amp;nbsp; You could do 50 in parallel per sub-loop and not find many problems &amp;#39;til you hit 50,000)&lt;/p&gt;
&lt;p&gt;I highly suggest some investigation to see if you can achieve the same result in an expression using a!forEach, no process modeler at all.&amp;nbsp; If it is possible, it&amp;#39;s also possibly several orders of magnitude faster than this approach.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Appian Parallelism</title><link>https://community.appian.com/thread/82223?ContentTypeID=1</link><pubDate>Mon, 31 May 2021 17:33:00 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:977f0c8a-3bd5-4ef0-9bd5-6f9b3d72798f</guid><dc:creator>Shyam Bommakanti</dc:creator><description>[quote userid="48177" url="~/discussions/f/process/21089/appian-parallelism"]For example, I have 20k records but I want the process to execute 30 each time.[/quote]
&lt;p&gt;There are multiple strategies, one way is to&amp;nbsp;query batchsize 30 in&amp;nbsp;&lt;a href="https://docs.appian.com/suite/help/21.2/fnc_system_queryrecordtype.html" rel="noopener noreferrer" target="_blank"&gt;a!queryRecordType()&lt;/a&gt;&amp;nbsp;and kickoff &lt;a href="https://docs.appian.com/suite/help/21.2/Start_Process_Smart_Service.html" rel="noopener noreferrer" target="_blank"&gt;Start Process Smart Service&lt;/a&gt;&amp;nbsp;for each of the 30 instances and a way to check if the processes are complete and kickoff next batch (One of the ways to check if the kickoff subprocesses are completed using send/receive message nodes).&lt;/p&gt;
&lt;p&gt;Kicking off lot of processes this way is not recommended/not a best practice.&amp;nbsp;There are some cases it is fine, like initial application setup/data migration etc.&lt;/p&gt;
&lt;p&gt;&lt;a href="/discussions/f/process/21097/how-to-maintain-relationship-between-parent-and-child-processes-dynamically" rel="noopener noreferrer" target="_blank"&gt;Please refer to similar&amp;nbsp;use case&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>