<?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>article Oracle - Optimizing read speeds using Oracle ASM storage in Official Support Articles</title>
    <link>https://community.qlik.com/t5/Official-Support-Articles/Oracle-Optimizing-read-speeds-using-Oracle-ASM-storage/ta-p/1712080</link>
    <description>&lt;P&gt;&lt;STRONG&gt;Preface:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Qlik Log Reader is Qlik's proprietary high speed redo log parser for parsing the Oracle redo logs, it also&amp;nbsp;provides greatly improved performance and reduces the load on the Oracle server when compared with other methods such as Oracle LogMiner.&lt;BR /&gt;&lt;BR /&gt;When the Oracle redo logs are stored in ASM, Replicate enables several techniques to improve the read performance. This includes the Copy redo logs to a temporary folder, which allows Replicate to Copy the redo logs and read it from a faster storage.&lt;BR /&gt;&lt;BR /&gt;The problem originates in the 32KB packet size limitation when reading directly from ASM. Other methods like reading using the 'binary file' allows readings MBs of data, and this is why the Copy to folder does help improve performance.&lt;BR /&gt;&lt;BR /&gt;Replicate now supports a new method for reading from ASM. This is accomplished by reading ASM via parallel threads. Starting from Replicate v6.2 this is the default read method for ASM. This allows Replicate to read the redo log in several threads thus improving the performance.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT size="4"&gt;The Parallel Method:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Starting from Replicate v6.2 the default ASM read mode is 4 parallel threads, the parameter that configures this is called &lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;parallelASMReadThreads&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;, the maximum value for this parameter is 8 threads. Finding the right value for a specific environment may require few testing cycles.&lt;BR /&gt;&lt;BR /&gt;Using the parallel method may add some overhead as follows:&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;P&gt;&lt;SPAN&gt;Some CPU overhead to the Replicate and Oracle machines.&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;SPAN&gt;More network traffic as we will be reading in 4 threads.&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN&gt;That being said, this overhead is understandable and may not be noticeable. Also note that the Copy method also introduces overhead:&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;P&gt;&lt;SPAN&gt;Storage for the temporary location.&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;SPAN&gt;More permissions and managing the deletion of the copied logs.&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;SPAN&gt;Copying the redo logs and reading from the temporary location.&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Further Optimizations with Parallel:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;The parallel method does not solve the 32KB ASM read limitation, however, it does help by reading in several threads. We have added another mechanizm that can be enabled by setting the &lt;/SPAN&gt;&lt;SPAN&gt;asmUsePLSQLArray&lt;/SPAN&gt;&lt;SPAN&gt; internal parameter.&lt;BR /&gt;&lt;BR /&gt;When enabled, Replicate will buffer 50 reads at the ASM server (where the PL/SQL is processed) and send back this larger buffer. This will cause less round trips but it will still read in 32KB buffers.&lt;BR /&gt;The user can enable &lt;/SPAN&gt;&lt;SPAN&gt;asmUsePLSQLArray &lt;/SPAN&gt;&lt;SPAN&gt;even when reading using a single thread, however, the benefit will be seen when working with parallel ASM threads. The benefit will vary from system to another, we have observed up to 10-20% improvement in throughput in some cases.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Limitation:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The 50 buffers setting is fixed. This feature can only be used on platforms where the redo log block size = 512 bytes: Linux, Windows, this excludes HPUX.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Advanced Tweak:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;The parallel mode can be further optimized using the &lt;/SPAN&gt;&lt;SPAN&gt;readAheadBlocks &lt;/SPAN&gt;&lt;SPAN&gt;parameter.&lt;BR /&gt;&lt;BR /&gt;Currently, each thread will read:&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;readAheadBlocks &lt;/SPAN&gt;&lt;SPAN&gt;/ &lt;/SPAN&gt;&lt;SPAN&gt;parallelASMReadThreads&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN&gt;The &lt;/SPAN&gt;default value of the &lt;SPAN&gt;readAheadBlocks &lt;/SPAN&gt;is 100,000 (in blocks), and the maximum value is 2,000,000.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Important Note&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Our testing and experience so far has shown that a value of 100,000 (50MBs) is optimal for most platforms.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Support for the parallel ASM read is available starting from these versions:&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Qlik Replicate 6.1 or higher.&lt;/LI&gt;
&lt;/UL&gt;</description>
    <pubDate>Mon, 08 Nov 2021 15:38:37 GMT</pubDate>
    <dc:creator>Sonja_Bauernfeind</dc:creator>
    <dc:date>2021-11-08T15:38:37Z</dc:date>
    <item>
      <title>Oracle - Optimizing read speeds using Oracle ASM storage</title>
      <link>https://community.qlik.com/t5/Official-Support-Articles/Oracle-Optimizing-read-speeds-using-Oracle-ASM-storage/ta-p/1712080</link>
      <description>&lt;P&gt;&lt;STRONG&gt;Preface:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Qlik Log Reader is Qlik's proprietary high speed redo log parser for parsing the Oracle redo logs, it also&amp;nbsp;provides greatly improved performance and reduces the load on the Oracle server when compared with other methods such as Oracle LogMiner.&lt;BR /&gt;&lt;BR /&gt;When the Oracle redo logs are stored in ASM, Replicate enables several techniques to improve the read performance. This includes the Copy redo logs to a temporary folder, which allows Replicate to Copy the redo logs and read it from a faster storage.&lt;BR /&gt;&lt;BR /&gt;The problem originates in the 32KB packet size limitation when reading directly from ASM. Other methods like reading using the 'binary file' allows readings MBs of data, and this is why the Copy to folder does help improve performance.&lt;BR /&gt;&lt;BR /&gt;Replicate now supports a new method for reading from ASM. This is accomplished by reading ASM via parallel threads. Starting from Replicate v6.2 this is the default read method for ASM. This allows Replicate to read the redo log in several threads thus improving the performance.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT size="4"&gt;The Parallel Method:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Starting from Replicate v6.2 the default ASM read mode is 4 parallel threads, the parameter that configures this is called &lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;parallelASMReadThreads&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;, the maximum value for this parameter is 8 threads. Finding the right value for a specific environment may require few testing cycles.&lt;BR /&gt;&lt;BR /&gt;Using the parallel method may add some overhead as follows:&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;P&gt;&lt;SPAN&gt;Some CPU overhead to the Replicate and Oracle machines.&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;SPAN&gt;More network traffic as we will be reading in 4 threads.&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN&gt;That being said, this overhead is understandable and may not be noticeable. Also note that the Copy method also introduces overhead:&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;P&gt;&lt;SPAN&gt;Storage for the temporary location.&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;SPAN&gt;More permissions and managing the deletion of the copied logs.&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;SPAN&gt;Copying the redo logs and reading from the temporary location.&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Further Optimizations with Parallel:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;The parallel method does not solve the 32KB ASM read limitation, however, it does help by reading in several threads. We have added another mechanizm that can be enabled by setting the &lt;/SPAN&gt;&lt;SPAN&gt;asmUsePLSQLArray&lt;/SPAN&gt;&lt;SPAN&gt; internal parameter.&lt;BR /&gt;&lt;BR /&gt;When enabled, Replicate will buffer 50 reads at the ASM server (where the PL/SQL is processed) and send back this larger buffer. This will cause less round trips but it will still read in 32KB buffers.&lt;BR /&gt;The user can enable &lt;/SPAN&gt;&lt;SPAN&gt;asmUsePLSQLArray &lt;/SPAN&gt;&lt;SPAN&gt;even when reading using a single thread, however, the benefit will be seen when working with parallel ASM threads. The benefit will vary from system to another, we have observed up to 10-20% improvement in throughput in some cases.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Limitation:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The 50 buffers setting is fixed. This feature can only be used on platforms where the redo log block size = 512 bytes: Linux, Windows, this excludes HPUX.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Advanced Tweak:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;The parallel mode can be further optimized using the &lt;/SPAN&gt;&lt;SPAN&gt;readAheadBlocks &lt;/SPAN&gt;&lt;SPAN&gt;parameter.&lt;BR /&gt;&lt;BR /&gt;Currently, each thread will read:&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;readAheadBlocks &lt;/SPAN&gt;&lt;SPAN&gt;/ &lt;/SPAN&gt;&lt;SPAN&gt;parallelASMReadThreads&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN&gt;The &lt;/SPAN&gt;default value of the &lt;SPAN&gt;readAheadBlocks &lt;/SPAN&gt;is 100,000 (in blocks), and the maximum value is 2,000,000.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Important Note&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Our testing and experience so far has shown that a value of 100,000 (50MBs) is optimal for most platforms.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Support for the parallel ASM read is available starting from these versions:&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Qlik Replicate 6.1 or higher.&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Mon, 08 Nov 2021 15:38:37 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Official-Support-Articles/Oracle-Optimizing-read-speeds-using-Oracle-ASM-storage/ta-p/1712080</guid>
      <dc:creator>Sonja_Bauernfeind</dc:creator>
      <dc:date>2021-11-08T15:38:37Z</dc:date>
    </item>
  </channel>
</rss>

