<?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 Re: Reducing Target/Handling latency in Batch Optimized Apply in Qlik Replicate</title>
    <link>https://community.qlik.com/t5/Qlik-Replicate/Reducing-Target-Handling-latency-in-Batch-Optimized-Apply/m-p/2552170#M16491</link>
    <description>&lt;P&gt;Hello &lt;SPAN style="background: var(--ck-color-mention-background); color: var(--ck-color-mention-text);"&gt;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/368629"&gt;@Dsolisc&lt;/a&gt;&lt;/SPAN&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you for reaching out to the &lt;STRONG&gt;Qlik community&lt;/STRONG&gt;.&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://community.qlik.com/t5/Qlik-Replicate/Replicate-table-creation-quot-public-quot-quot-attrep/td-p/1786523" target="_blank"&gt;&lt;STRONG&gt;Reuse attrep_changes table&lt;/STRONG&gt;&lt;/A&gt;&lt;STRONG&gt;:&lt;/STRONG&gt; Not possible. It’s internally managed and recreated as needed; no parameter to force TRUNCATE-only.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://community.qlik.com/t5/Official-Support-Articles/General-understanding-of-Qlik-Replicate-Change-Processing-Tuning/ta-p/1937341" target="_blank"&gt;&lt;STRONG&gt;Reduce round-trips&lt;/STRONG&gt;&lt;/A&gt;&lt;STRONG&gt;: &lt;/STRONG&gt;Only real lever = &lt;STRONG&gt;fewer apply cycles. &lt;/STRONG&gt;Increase, but less than (e.g. 5–10s) and batch size (memory).&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://community.qlik.com/t5/Qlik-Replicate/Usage-of-batch-apply-mode-and-transaction-apply-mode/td-p/2129373" target="_blank"&gt;&lt;STRONG&gt;Transactional Apply&lt;/STRONG&gt;&lt;/A&gt;&lt;STRONG&gt;:&lt;/STRONG&gt; Worse over high RTT. Executes row-by-row; batch is &lt;STRONG&gt;much faster&lt;/STRONG&gt;.&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://community.qlik.com/t5/Official-Support-Articles/Qlik-Replicate-Latency-impacts-from-Target-Apply-stage-switching/ta-p/2048527" target="_blank"&gt;&lt;STRONG&gt;Internal latency tuning knobs&lt;/STRONG&gt;&lt;/A&gt;&lt;STRONG&gt;:&lt;/STRONG&gt; None for pipelining SQL Batch apply already minimizes statements.&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://community.qlik.com/t5/Official-Support-Articles/Troubleshooting-Qlik-Replicate-Latency-and-Performance-Issues/ta-p/1929456" target="_blank"&gt;&lt;STRONG&gt;Biggest improvement&lt;/STRONG&gt;&lt;/A&gt;&lt;STRONG&gt;:&lt;/STRONG&gt; Reduce RTT, Move Replicate closer to Aurora (same AWS region).&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Key takeaway:&lt;/STRONG&gt; Your ~6s floor = fixed per-cycle overhead + 100ms RTT. &lt;STRONG&gt;Reduce cycle frequency or reduce distance.&lt;/STRONG&gt;&lt;/P&gt;</description>
    <pubDate>Fri, 26 Jun 2026 12:31:21 GMT</pubDate>
    <dc:creator>Rahul_Kale</dc:creator>
    <dc:date>2026-06-26T12:31:21Z</dc:date>
    <item>
      <title>Reducing Target/Handling latency in Batch Optimized Apply</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/Reducing-Target-Handling-latency-in-Batch-Optimized-Apply/m-p/2552106#M16479</link>
      <description>&lt;P&gt;Hi Community i need some advise to improve 2 task in Qlik replicate, below i give more details:&lt;/P&gt;
&lt;UL class="code-line" dir="auto" data-line="3"&gt;
&lt;LI class="code-line" dir="auto" data-line="3"&gt;&lt;STRONG&gt;Qlik Replicate:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;2025.11 (Windows Failover Cluster, On-Premise Chile)&lt;/LI&gt;
&lt;LI class="code-line" dir="auto" data-line="4"&gt;&lt;STRONG&gt;Source:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;IBM DB2 for iSeries (On-Premise Chile)&lt;/LI&gt;
&lt;LI class="code-line" dir="auto" data-line="5"&gt;&lt;STRONG&gt;Target:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Amazon Aurora PostgreSQL 17.7 (AWS us-east-1) — reached via Direct Connect (~90-130ms RTT)&lt;/LI&gt;
&lt;LI class="code-line" dir="auto" data-line="6"&gt;&lt;STRONG&gt;Mode:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Batch Optimized Apply, 1 table per task&lt;/LI&gt;
&lt;/UL&gt;
&lt;H4 id="problem" class="code-line" dir="auto" data-line="8"&gt;&lt;FONT face="batang,apple gothic"&gt;Problem&lt;/FONT&gt;&lt;/H4&gt;
&lt;P class="code-line" data-line="9"&gt;After tuning the batch settings (&lt;CODE&gt;Apply batched changes - But less than&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;from 30s → 2s,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;Force apply memory&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;500 → 100MB), latency spikes (up to 35s) disappeared. But a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;stable floor of ~6s remains&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P class="code-line" data-line="11"&gt;Performance log shows the latency is entirely on the target side:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class="code-line" dir="auto" data-line="12"&gt;Source latency 0.38s  |  Target latency 6.53s  |  Handling latency 6.14s
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P class="code-line" data-line="16"&gt;We confirmed the bottleneck is&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;not&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;the source (0.4s),&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;not&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Aurora resources (idle, DB Load 0.27/8 vCPU, dominant wait = Client:ClientRead), and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;not&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;the Qlik server (CPU ~0%). The ~6s is spent in the apply cycle (COPY → UPDATE → TRUNCATE/DROP of the Net Changes table) over the cross-continent link.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P class="code-line" data-line="19"&gt;&lt;STRONG&gt;With a single-table-per-task Batch Optimized Apply over a high-RTT (~100ms) link to Aurora PostgreSQL, how can we reduce the target/handling latency floor?&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Specifically:&lt;/P&gt;
&lt;OL class="code-line" dir="auto" data-line="21"&gt;
&lt;LI class="code-line" dir="auto" data-line="21"&gt;Is there an internal parameter to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;reuse the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;attrep_changes&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Net Changes table&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(TRUNCATE only) instead of DROP+CREATE each cycle, to cut round-trips?&lt;/LI&gt;
&lt;LI class="code-line" dir="auto" data-line="22"&gt;Can apply-cycle SQL operations be&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;pipelined/batched&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;to reduce the number of network round-trips per cycle?&lt;/LI&gt;
&lt;LI class="code-line" dir="auto" data-line="23"&gt;For low-latency over high-RTT links, would&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Transactional Apply&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(min changes=100, max time=1s) outperform Batch Optimized Apply?&lt;/LI&gt;
&lt;LI class="code-line" dir="auto" data-line="24"&gt;Any recommended internal parameters for&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;high-latency target connections&lt;/STRONG&gt;?&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;any advice is welcome&lt;/P&gt;
&lt;P&gt;Regard&lt;/P&gt;</description>
      <pubDate>Thu, 25 Jun 2026 16:18:08 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/Reducing-Target-Handling-latency-in-Batch-Optimized-Apply/m-p/2552106#M16479</guid>
      <dc:creator>Dsolisc</dc:creator>
      <dc:date>2026-06-25T16:18:08Z</dc:date>
    </item>
    <item>
      <title>Re: Reducing Target/Handling latency in Batch Optimized Apply</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/Reducing-Target-Handling-latency-in-Batch-Optimized-Apply/m-p/2552142#M16480</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/368629"&gt;@Dsolisc&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;The &lt;STRONG&gt;Net Change table attrep_changes&lt;/STRONG&gt; is an intermediate table used by the &lt;STRONG&gt;Batch Optimized Apply&lt;/STRONG&gt; mode. It is created when the first change is captured from the source database and is truncated between batches.&lt;/P&gt;
&lt;P&gt;Under normal circumstances, the &lt;STRONG&gt;Net Change table&lt;/STRONG&gt; is not repeatedly dropped and recreated. It is only recreated when necessary, for example, if a captured &lt;STRONG&gt;DDL&lt;/STRONG&gt; operation changes the source table structure and the &lt;STRONG&gt;Net Change table&lt;/STRONG&gt; metadata needs to be refreshed to match the new schema. In addition, the table is dropped when the Replicate task stops and is automatically recreated the next time the task starts.&lt;/P&gt;
&lt;P&gt;In short, the lifecycle of the &lt;STRONG&gt;Net Change table&lt;/STRONG&gt; is by design, and there is no option to disable its automatic recreation when it is required.&lt;/P&gt;
&lt;P&gt;If you observe that the &lt;STRONG&gt;Net Change table&lt;/STRONG&gt; is being dropped and recreated frequently during task execution, please set &lt;STRONG&gt;SOURCE_CAPTURE&lt;/STRONG&gt;/&lt;STRONG&gt;TARGET_APPLY&lt;/STRONG&gt; to &lt;STRONG&gt;Verbose&lt;/STRONG&gt;, reproduce the issue, and review the task log files. The verbose logs should help identify what is triggering the table recreation.&lt;/P&gt;
&lt;P&gt;Also, based on what you've described, it appears that your environment has relatively high network latency (high RTT). In such environments, Batch Optimized Apply is generally the preferred mode. However, I would still recommend evaluating the performance of &lt;STRONG&gt;Transactional Apply&lt;/STRONG&gt; in your environment to determine whether it better meets your workload and performance requirements.&lt;/P&gt;
&lt;P&gt;BTW, I noticed that your current design uses &lt;STRONG&gt;single-table-per-task&lt;/STRONG&gt;. I'm not sure how many tasks or tables you have in total, however, the tasks do impact each other by competing for the same system resources. You may want to try running only a few tasks as a test to see whether the overall performance improves. This would help us estimate whether resource contention is a contributing factor.&lt;/P&gt;
&lt;P&gt;Hope this helps.&lt;BR /&gt;John.&lt;/P&gt;</description>
      <pubDate>Fri, 26 Jun 2026 05:20:17 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/Reducing-Target-Handling-latency-in-Batch-Optimized-Apply/m-p/2552142#M16480</guid>
      <dc:creator>john_wang</dc:creator>
      <dc:date>2026-06-26T05:20:17Z</dc:date>
    </item>
    <item>
      <title>Re: Reducing Target/Handling latency in Batch Optimized Apply</title>
      <link>https://community.qlik.com/t5/Qlik-Replicate/Reducing-Target-Handling-latency-in-Batch-Optimized-Apply/m-p/2552170#M16491</link>
      <description>&lt;P&gt;Hello &lt;SPAN style="background: var(--ck-color-mention-background); color: var(--ck-color-mention-text);"&gt;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/368629"&gt;@Dsolisc&lt;/a&gt;&lt;/SPAN&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you for reaching out to the &lt;STRONG&gt;Qlik community&lt;/STRONG&gt;.&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://community.qlik.com/t5/Qlik-Replicate/Replicate-table-creation-quot-public-quot-quot-attrep/td-p/1786523" target="_blank"&gt;&lt;STRONG&gt;Reuse attrep_changes table&lt;/STRONG&gt;&lt;/A&gt;&lt;STRONG&gt;:&lt;/STRONG&gt; Not possible. It’s internally managed and recreated as needed; no parameter to force TRUNCATE-only.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://community.qlik.com/t5/Official-Support-Articles/General-understanding-of-Qlik-Replicate-Change-Processing-Tuning/ta-p/1937341" target="_blank"&gt;&lt;STRONG&gt;Reduce round-trips&lt;/STRONG&gt;&lt;/A&gt;&lt;STRONG&gt;: &lt;/STRONG&gt;Only real lever = &lt;STRONG&gt;fewer apply cycles. &lt;/STRONG&gt;Increase, but less than (e.g. 5–10s) and batch size (memory).&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://community.qlik.com/t5/Qlik-Replicate/Usage-of-batch-apply-mode-and-transaction-apply-mode/td-p/2129373" target="_blank"&gt;&lt;STRONG&gt;Transactional Apply&lt;/STRONG&gt;&lt;/A&gt;&lt;STRONG&gt;:&lt;/STRONG&gt; Worse over high RTT. Executes row-by-row; batch is &lt;STRONG&gt;much faster&lt;/STRONG&gt;.&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://community.qlik.com/t5/Official-Support-Articles/Qlik-Replicate-Latency-impacts-from-Target-Apply-stage-switching/ta-p/2048527" target="_blank"&gt;&lt;STRONG&gt;Internal latency tuning knobs&lt;/STRONG&gt;&lt;/A&gt;&lt;STRONG&gt;:&lt;/STRONG&gt; None for pipelining SQL Batch apply already minimizes statements.&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://community.qlik.com/t5/Official-Support-Articles/Troubleshooting-Qlik-Replicate-Latency-and-Performance-Issues/ta-p/1929456" target="_blank"&gt;&lt;STRONG&gt;Biggest improvement&lt;/STRONG&gt;&lt;/A&gt;&lt;STRONG&gt;:&lt;/STRONG&gt; Reduce RTT, Move Replicate closer to Aurora (same AWS region).&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Key takeaway:&lt;/STRONG&gt; Your ~6s floor = fixed per-cycle overhead + 100ms RTT. &lt;STRONG&gt;Reduce cycle frequency or reduce distance.&lt;/STRONG&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 26 Jun 2026 12:31:21 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Replicate/Reducing-Target-Handling-latency-in-Batch-Optimized-Apply/m-p/2552170#M16491</guid>
      <dc:creator>Rahul_Kale</dc:creator>
      <dc:date>2026-06-26T12:31:21Z</dc:date>
    </item>
  </channel>
</rss>

