<?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: How to improve PIPE performance in Operating System - OpenVMS</title>
    <link>https://community.hpe.com/t5/operating-system-openvms/how-to-improve-pipe-performance/m-p/3155319#M875</link>
    <description>For a comparison of the pipe driver with the CRTL pipe from the guy who wrote the pipe driver (MPA0:), see&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://groups.google.com/groups?hl=en&amp;amp;lr=&amp;amp;ie=UTF-8&amp;amp;oe=UTF-8&amp;amp;selm=3B30F1EA.17FB4BAE%40compaq.com.doom" target="_blank"&gt;http://groups.google.com/groups?hl=en&amp;amp;lr=&amp;amp;ie=UTF-8&amp;amp;oe=UTF-8&amp;amp;selm=3B30F1EA.17FB4BAE%40compaq.com.doom&lt;/A&gt;</description>
    <pubDate>Sun, 04 Jan 2004 16:23:19 GMT</pubDate>
    <dc:creator>Craig A Berry</dc:creator>
    <dc:date>2004-01-04T16:23:19Z</dc:date>
    <item>
      <title>How to improve PIPE performance</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-improve-pipe-performance/m-p/3155315#M871</link>
      <description>I have a 700,000 block text files, zipped to 90,000 blocks.&lt;BR /&gt;Unzipping takes 11 minutes.&lt;BR /&gt;Searching takes 6 minutes.&lt;BR /&gt;Using PIPE to send the output of the unzip directly to the zip and avoid using a temporary file takes 50 minutes.&lt;BR /&gt;&lt;BR /&gt;Is there anyway to reduce the overhead of using PIPE?</description>
      <pubDate>Fri, 02 Jan 2004 11:20:58 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-improve-pipe-performance/m-p/3155315#M871</guid>
      <dc:creator>Peter T Jackson</dc:creator>
      <dc:date>2004-01-02T11:20:58Z</dc:date>
    </item>
    <item>
      <title>Re: How to improve PIPE performance</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-improve-pipe-performance/m-p/3155316#M872</link>
      <description>I assume you mean "directly to the search" rather than "directly to the zip"?  In other words, you only care about the search results and not the file itself?  In any case I'm not sure why creating a temporary file is considered a bad thing, and clearly it's faster in your case.&lt;BR /&gt;&lt;BR /&gt;I don't know of any way you can influence PIPE performance directly, though you might want to look at &lt;BR /&gt;&lt;BR /&gt;$ help pipe description Improving_Subprocess_Performance&lt;BR /&gt;&lt;BR /&gt;I doubt the recommendations there will make much difference in your case since I suspect the overhead comes from interprocess communication rather than from the initial spawning of a subprocess.&lt;BR /&gt;&lt;BR /&gt;If you have a *lot* of memory, you could try unzipping to a RAM disk and doing the search there.  &lt;BR /&gt;&lt;BR /&gt;If the situation merits custom programming, you could start with the unzip sources and write something that searches unzipped output on the fly.&lt;BR /&gt;</description>
      <pubDate>Fri, 02 Jan 2004 14:13:11 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-improve-pipe-performance/m-p/3155316#M872</guid>
      <dc:creator>Craig A Berry</dc:creator>
      <dc:date>2004-01-02T14:13:11Z</dc:date>
    </item>
    <item>
      <title>Re: How to improve PIPE performance</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-improve-pipe-performance/m-p/3155317#M873</link>
      <description>Hello,&lt;BR /&gt;&lt;BR /&gt;assuming you are at 7.3-2 you might want to look at&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://h71000.www7.hp.com/doc/732FINAL/5763/5763pro_046.html" target="_blank"&gt;http://h71000.www7.hp.com/doc/732FINAL/5763/5763pro_046.html&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;Altough this discusses the pipe C-RTL function since the DCL pipe is most probably implemented in C setting the logicals might affect it too.&lt;BR /&gt;&lt;BR /&gt;Defining DECC$PIPE_BUFFER_SIZE to 65535 might not be a bad value.&lt;BR /&gt;&lt;BR /&gt;And yes, I know there is at least one person here in the forum who is much more competent to comment on this ;-)&lt;BR /&gt;&lt;BR /&gt;Greetings, Martin</description>
      <pubDate>Fri, 02 Jan 2004 20:54:27 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-improve-pipe-performance/m-p/3155317#M873</guid>
      <dc:creator>Martin P.J. Zinser</dc:creator>
      <dc:date>2004-01-02T20:54:27Z</dc:date>
    </item>
    <item>
      <title>Re: How to improve PIPE performance</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-improve-pipe-performance/m-p/3155318#M874</link>
      <description>Martin,&lt;BR /&gt;&lt;BR /&gt;Unless this changed recently, DCL's PIPE command uses the undocumented pipe driver and bears no relation to the CRTL's pipe() function.  Both do interprocess communication, but I don't know if there's any way to adjust buffer sizes for the pipe driver.</description>
      <pubDate>Sun, 04 Jan 2004 14:32:02 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-improve-pipe-performance/m-p/3155318#M874</guid>
      <dc:creator>Craig A Berry</dc:creator>
      <dc:date>2004-01-04T14:32:02Z</dc:date>
    </item>
    <item>
      <title>Re: How to improve PIPE performance</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-improve-pipe-performance/m-p/3155319#M875</link>
      <description>For a comparison of the pipe driver with the CRTL pipe from the guy who wrote the pipe driver (MPA0:), see&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://groups.google.com/groups?hl=en&amp;amp;lr=&amp;amp;ie=UTF-8&amp;amp;oe=UTF-8&amp;amp;selm=3B30F1EA.17FB4BAE%40compaq.com.doom" target="_blank"&gt;http://groups.google.com/groups?hl=en&amp;amp;lr=&amp;amp;ie=UTF-8&amp;amp;oe=UTF-8&amp;amp;selm=3B30F1EA.17FB4BAE%40compaq.com.doom&lt;/A&gt;</description>
      <pubDate>Sun, 04 Jan 2004 16:23:19 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-improve-pipe-performance/m-p/3155319#M875</guid>
      <dc:creator>Craig A Berry</dc:creator>
      <dc:date>2004-01-04T16:23:19Z</dc:date>
    </item>
    <item>
      <title>Re: How to improve PIPE performance</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-improve-pipe-performance/m-p/3155320#M876</link>
      <description>Thanks for the answers.&lt;BR /&gt;&lt;BR /&gt;Yes I meant "directly to search".&lt;BR /&gt;The files can be much larger than the one I used for my testing. The largest I have seen was over 11 Gbytes unzipped. Temporary files that large are a problem.&lt;BR /&gt;The system that generated that large a file had lots of memory but it was in use.&lt;BR /&gt;&lt;BR /&gt;The procedure is written in DCL so that it can be easily distributed and so that security conscious customers can check that it is not a risk.&lt;BR /&gt;Often it will be run on the text file directly. The option to handle zipped files is there to avoid having to find the disk space to unzip them after receiving the zipped version over the internet, and so to reduce the size of the collection of files I use for testing. PIPE is simpler than trying to automate the handling of a temporary file.&lt;BR /&gt;&lt;BR /&gt;I looked at the suggestions in help and played around with set RMS before asking here.&lt;BR /&gt;&lt;BR /&gt;Pete</description>
      <pubDate>Mon, 05 Jan 2004 05:30:25 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-improve-pipe-performance/m-p/3155320#M876</guid>
      <dc:creator>Peter T Jackson</dc:creator>
      <dc:date>2004-01-05T05:30:25Z</dc:date>
    </item>
    <item>
      <title>Re: How to improve PIPE performance</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-improve-pipe-performance/m-p/3155321#M877</link>
      <description>As others have said, DCL pipe is not implemented via C RTL pipe().&lt;BR /&gt;&lt;BR /&gt;To help complete the circle of information in this string, the C RTL pipe implementation is based on mailboxes and the logicals DECC$PIPE_BUFFER_SIZE and DECC$PIPE_BUFFER_QUOTA directly translate to corresponding parameters in the crembx call.&lt;BR /&gt;&lt;BR /&gt;Brad&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Mon, 05 Jan 2004 10:02:30 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-improve-pipe-performance/m-p/3155321#M877</guid>
      <dc:creator>Brad McCusker</dc:creator>
      <dc:date>2004-01-05T10:02:30Z</dc:date>
    </item>
    <item>
      <title>Re: How to improve PIPE performance</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-improve-pipe-performance/m-p/3155322#M878</link>
      <description>I think the only options available to you, Peter, work against your requirement that it be something available out of the box in DCL.  &lt;BR /&gt;&lt;BR /&gt;If that requirement can be lifted, there are all sorts of PC utilities that search within zip archives, and it might be possible to find an open source one and port it.&lt;BR /&gt;&lt;BR /&gt;I also found a Perl-based solution.  There's no way to know whether it's faster than PIPE without trying it in your environment, but it might be worth a look.  If you want to try it you'll have to have Perl and install the following extensions:&lt;BR /&gt;&lt;BR /&gt;Compress::Zlib&lt;BR /&gt;Archive::Zip&lt;BR /&gt;&lt;BR /&gt;These can be obtained from &lt;A href="http://search.cpan.org." target="_blank"&gt;http://search.cpan.org.&lt;/A&gt;  They have some problems building on VMS, but it can be done.  I can probably walk you through it if you're interested.&lt;BR /&gt;&lt;BR /&gt;Archive::Zip comes with a sample script that does exactly what you want, i.e., searches the contents of a zip archive.  The following example does a case insensitive search for "fall" in a zipped version SYS$MANAGER:SYLOGIN.TEMPLATE.&lt;BR /&gt; &lt;BR /&gt;$ zip archive.zip sys$manager:sylogin.template&lt;BR /&gt;  adding: [.SYSMGR]SYLOGIN.TEMPLATE (deflated 61%)&lt;BR /&gt;$ perl zipGrep.pl "(?i:fall)" archive.zip&lt;BR /&gt;sysmgr/sylogin.template:$!   process logins.  Each section falls through into the next section,&lt;BR /&gt;sysmgr/sylogin.template:$!   the "Batch" section.  (Note that all "Interactive" users will "fall&lt;BR /&gt;sysmgr/sylogin.template:$!   then fall through again into the other sections.)&lt;BR /&gt;sysmgr/sylogin.template:$! Fall through...&lt;BR /&gt;sysmgr/sylogin.template:$! Fall through...&lt;BR /&gt;sysmgr/sylogin.template:$! Fall through...&lt;BR /&gt;</description>
      <pubDate>Mon, 05 Jan 2004 14:25:29 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-improve-pipe-performance/m-p/3155322#M878</guid>
      <dc:creator>Craig A Berry</dc:creator>
      <dc:date>2004-01-05T14:25:29Z</dc:date>
    </item>
    <item>
      <title>Re: How to improve PIPE performance</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-improve-pipe-performance/m-p/3155323#M879</link>
      <description>Hello Craig,&lt;BR /&gt;&lt;BR /&gt;which opens up the question: Do we do our own pipe() in Perl for recent versions or is it the C-RTL one if and when available ;-)&lt;BR /&gt;&lt;BR /&gt;Happy new year,&lt;BR /&gt;&lt;BR /&gt;Martin</description>
      <pubDate>Mon, 05 Jan 2004 14:40:33 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-improve-pipe-performance/m-p/3155323#M879</guid>
      <dc:creator>Martin P.J. Zinser</dc:creator>
      <dc:date>2004-01-05T14:40:33Z</dc:date>
    </item>
    <item>
      <title>Re: How to improve PIPE performance</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-improve-pipe-performance/m-p/3155324#M880</link>
      <description>Just to be clear, for Peter's sake, Martin's question is a tangent.  I suggested Archive::Zip because it doesn't use pipes at all, not DCL's, not the CRTL's, and not Perl's home-grown ones.&lt;BR /&gt;&lt;BR /&gt;It's an interesting tangent, though.  Perl since 5.6 uses a homegrown pipe implementation because the one in the CRTL is so prone to hangs and deadlocks.  I believe this was still true as of v7.3-1, but I should probably give it a whirl again.  I have a goal of making this configurable so you can choose which pipe implementation you want, but I haven't done it yet.</description>
      <pubDate>Mon, 05 Jan 2004 16:55:06 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-improve-pipe-performance/m-p/3155324#M880</guid>
      <dc:creator>Craig A Berry</dc:creator>
      <dc:date>2004-01-05T16:55:06Z</dc:date>
    </item>
    <item>
      <title>Re: How to improve PIPE performance</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-improve-pipe-performance/m-p/3155325#M881</link>
      <description>Craig,&lt;BR /&gt;&lt;BR /&gt;  Depending on the complexity of your SEARCH&lt;BR /&gt;requirements...&lt;BR /&gt;&lt;BR /&gt;  Since UNZIP is available in source form, you could create a version that does the search directly on the output. "Simple" matter of finding the final output stage and implementing a filter on the data stream.&lt;BR /&gt;&lt;BR /&gt; That will save you a process creation and two lots of I/O processing (out of UNZIP and into SEARCH). Furthermore, since you're potentially avoiding writing any of the uninteresting text, you may reduce the overall time below your 11 minutes for the unzip alone.&lt;BR /&gt;&lt;BR /&gt;  If you don't want to modify UNZIP, another option is to create your own mailbox with whatever characteristics you think will help performance. Something like this:&lt;BR /&gt;&lt;BR /&gt;program makemailbox&lt;BR /&gt;inputs: lognam,bufquo,maxmsg&lt;BR /&gt;$crembx(,chan,maxmsg,bufquo,,,lognam,,)&lt;BR /&gt;$hiber&lt;BR /&gt;end program&lt;BR /&gt;&lt;BR /&gt;(may be simpler just to hard code the mailbox attributes)&lt;BR /&gt;&lt;BR /&gt;$ SPAWN/NOWAIT makemailbox mymailbox max quo&lt;BR /&gt;$ SPAWN/NOWAIT SEARCH mymailbox whatever&lt;BR /&gt;$ PIPE UNZIP -c file &amp;gt; mymailbox&lt;BR /&gt;&lt;BR /&gt;Notes:&lt;BR /&gt;  The "PIPE &amp;gt;" command was easiest way I could find to redirect UNZIP output into the mailbox. It does not involve subprocess creation or use a pipe, so it's unlikely to have any negative performance effect.&lt;BR /&gt;&lt;BR /&gt;  The "makemailbox" subprocess needs to stay around until one of the other processes has opened a channel to the mailbox. It will remain indefinitely until killed or woken (SYS$WAKE).&lt;BR /&gt;&lt;BR /&gt;  The SEARCH subprocess will terminate at EOF of the UNZIPped stream. Issuing a second UNZIP against the same mailbox will put the main process into RWMBX because there is no reader.&lt;BR /&gt;&lt;BR /&gt;  No idea if this mechanism will be an improvement, try it and see!</description>
      <pubDate>Mon, 05 Jan 2004 16:58:14 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-improve-pipe-performance/m-p/3155325#M881</guid>
      <dc:creator>John Gillings</dc:creator>
      <dc:date>2004-01-05T16:58:14Z</dc:date>
    </item>
    <item>
      <title>Re: How to improve PIPE performance</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-improve-pipe-performance/m-p/3155326#M882</link>
      <description>&lt;BR /&gt;Think IOs. Think buffered IOs specifically.&lt;BR /&gt;Change your search to searc/stat and compare.&lt;BR /&gt;&lt;BR /&gt;Anything involving a pipe/mailbox will have search do an IO (kernel mode routine) for each and every record. Synchroneously. Hopelessly slow.&lt;BR /&gt;&lt;BR /&gt;When reading from a file search will use RMS with large buffers and RMS will use Asynchroneous read ahead from the disk. Depending on the fil e contents you'll see about 100 records per (direct) IO and no buffered IO other then the (status) output.&lt;BR /&gt;&lt;BR /&gt;Accept the intermediate file, or adapt unzip to search for you as John suggests. Could put the temp file on ram disk?&lt;BR /&gt;&lt;BR /&gt;hth,&lt;BR /&gt;Hein.&lt;BR /&gt;</description>
      <pubDate>Mon, 05 Jan 2004 17:28:08 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-improve-pipe-performance/m-p/3155326#M882</guid>
      <dc:creator>Hein van den Heuvel</dc:creator>
      <dc:date>2004-01-05T17:28:08Z</dc:date>
    </item>
    <item>
      <title>Re: How to improve PIPE performance</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-improve-pipe-performance/m-p/3155327#M883</link>
      <description>Again thanks.&lt;BR /&gt;&lt;BR /&gt;Unfortunately the advantages of using DCL are too great.&lt;BR /&gt;The point of using the PIPE is to avoid the need for a large temporary file.&lt;BR /&gt;The procedure can work on the text files directly so the unzip can be be done manually when the disk space is available.&lt;BR /&gt;Most users will not use the procedure on zip files often.&lt;BR /&gt;The only exception is myself when running my test suite.&lt;BR /&gt;&lt;BR /&gt;A RAM disk would not be useful.&lt;BR /&gt;On the systems where very large files are created the memory is in use.&lt;BR /&gt;The largest I have seen was over 10 Gbytes.&lt;BR /&gt;&lt;BR /&gt;It sounds like a pipe driver that have the option of doing buffered IO is the only way to improve this, but my procedure alone is not enough to justify writing one</description>
      <pubDate>Thu, 08 Jan 2004 05:45:28 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-improve-pipe-performance/m-p/3155327#M883</guid>
      <dc:creator>Peter T Jackson</dc:creator>
      <dc:date>2004-01-08T05:45:28Z</dc:date>
    </item>
  </channel>
</rss>

