home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 17 / CD_ASCQ_17_101194.iso / vrac_os2 / fsorte.zip / FSORT.INF (.txt) < prev    next >
OS/2 Help File  |  1994-08-29  |  64KB  |  840 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. Copyright ΓòÉΓòÉΓòÉ
  3.  
  4.  
  5.          FSORT ver 2.01d
  6.          32bit MULTI-THREADED,
  7.          FIXED-LENGTH record sort,
  8.          for OS/2 2.x systems
  9.  
  10.          COPYRIGHT (C) 1994  MYSTIC SOFTWARE
  11.  
  12.          MYSTIC SOFTWARE reserves the right to change
  13.          the performance or functionality of all aspects
  14.          of this sort.
  15.  
  16.          You may Download the latest version of FSORT
  17.          by calling the Mystic Software BBS at 913-263-7394.
  18.          The FSORT evaluation package is in FILE AREA 2.
  19.  
  20.  
  21. ΓòÉΓòÉΓòÉ 2. Obtaining the most recent FSORT evaluation package ΓòÉΓòÉΓòÉ
  22.  
  23.  
  24.  
  25.          You may Download the latest version of FSORT
  26.          by calling the Mystic Software BBS at 913-263-7394.
  27.          The FSORT evaluation package is in FILE AREA 2.
  28.  
  29.  
  30. ΓòÉΓòÉΓòÉ 3. Sample parmfile and data ΓòÉΓòÉΓòÉ
  31.  
  32.  
  33.          A sample parm file and data file are included with this
  34.          evaluation copy of FSORT.  DATA.DAT has 10000
  35.          records. Each record has a 5 character ASCII number
  36.          followed by carriage-return/line-feed for a total
  37.          of 7 characters.  You can type this file or use
  38.          an editor to view its contents. This file is in
  39.          ascending order.  DATA.PRM has the sort control
  40.          statements to tell FSORT to sort DATA.DAT in descending
  41.          order and create an output file named FSORT.OUT.
  42.          You can run this sample entering "FSORT DATA.PRM".
  43.  
  44.  
  45. ΓòÉΓòÉΓòÉ 4. Questions Suggestions or Problems ΓòÉΓòÉΓòÉ
  46.  
  47.  
  48.          Please direct any questions, suggestions, or problems
  49.          to Larry Griffiths on the Mystic Software BBS
  50.          at 913-263-7394.  After you log on:
  51.  
  52.          [J]oin a Conference...
  53.          Join message base "2"...
  54.          [E]nter a message...
  55.          ENTRY METHOD [F], [Q], or [L]...
  56.          To - Larry Griffiths
  57.          Subject -
  58.          Security -
  59.          Spell Checking -
  60.              (Enter your question, problem, or comments)
  61.          A blank line ends message
  62.          [S]ave message
  63.  
  64.  
  65.  
  66. ΓòÉΓòÉΓòÉ 5. Introduction ΓòÉΓòÉΓòÉ
  67.  
  68.  
  69. FSORT is a 32 bit OS/2 2.x FIXED-LENGTH RECORD
  70. sort program with disk sortwork capability.
  71. The size of the file to be sorted is limited by the amount
  72. of disk space available.  FSORT is a "Stable" sort.
  73. Any records with EQUAL sort fields
  74. will be kept in the same order as they were in
  75. the input file.
  76.  
  77.  
  78. ΓòÉΓòÉΓòÉ 6. Command Format ΓòÉΓòÉΓòÉ
  79.  
  80.  
  81. The command format is as follows:
  82.  
  83. FSORT Infilename Outfilename [Sort fields] [Options]
  84.  
  85.   Infilename:  Name of the input file.
  86.          This file must contain records of equal length. FSORT
  87.          will terminate if the recordsize is not a multiple
  88.          of the filesize.
  89.  
  90.   Outfilename:  Name of the output file.
  91.  
  92.   A PARAMETER FILE CAN BE SPECIFIED BY ENTERING ONLY ONE PARAMETER.
  93.  
  94.   EXAMPLE: "FSORT PARMS.PRM".
  95.  
  96.   Each parameter in the parameter file must be separated by space(s)
  97.   or placed on a new line.
  98.  
  99.   EXAMPLE:
  100.  
  101.         Infilename Outfilename
  102.         5,7,bi,a 1,1,fl,a
  103.         m4000 l72
  104.  
  105.  
  106. ΓòÉΓòÉΓòÉ 7. Sort Fields ΓòÉΓòÉΓòÉ
  107.  
  108.  
  109.   Sort fields:  The Sort fields must follow Infilename and Outfilename.
  110.  
  111.          Up to 64 sort fields may be specified.
  112.  
  113.          The starting position must be greater than zero.
  114.  
  115.          Starting position + Field length - 1
  116.          cannot be greater than the record length.
  117.  
  118.          Each sort field contains:
  119.  
  120.          The Starting position.
  121.  
  122.            (1-16384)
  123.  
  124.          The Length.
  125.  
  126.            (1-16384)
  127.  
  128.          The Field type.
  129.  
  130.            BI - binary.
  131.            C  - character.
  132.  
  133.            FL - Floating point.
  134.              (lengths must be 4, 8, or 10 bytes).
  135.              You must have a 386 coprocessor,
  136.              a 486, or a Pentium.
  137.  
  138.            I  - Signed Intel format integer.
  139.              (lengths must be 1, 2, or 4 bytes)
  140.              Specify "R" if Signed integers are
  141.              not in an Intel format and you have a 486
  142.              or Pentium machine.
  143.  
  144.            LA - lowercase ASCII.
  145.            UA - uppercase ASCII.
  146.            LE - lowercase EBCDIC.
  147.            UE - uppercase EBCDIC.
  148.  
  149.          The Order of the sorted output.
  150.  
  151.            A - ascending.
  152.            D - descending.
  153.  
  154.            F - forward (sort from left to right) (default).
  155.            R - reverse (sort from right to left).
  156.              Bytes are stored with the most significant
  157.              bytes in the rightmost position of the field.
  158.  
  159.              "R" will not work for Signed integers
  160.              unless you have a 486 or Pentium processor.
  161.  
  162.              "R" is not valid for Floating point.
  163.  
  164.  
  165. ΓòÉΓòÉΓòÉ 8. Examples ΓòÉΓòÉΓòÉ
  166.  
  167.  
  168.     EXAMPLES: "FSORT in out 1,1,bi,a"
  169.  
  170.          (This will sort column 1 for a length of 1,
  171.          BINARY, in ascending order)
  172.  
  173.          "FSORT in out 3,3,bi,d"
  174.  
  175.          (Sort starting in column 3, for a length of 3,
  176.          BINARY, in descending order)
  177.  
  178.          "FSORT in out 5,2,bi,a 2,3,bi,d"
  179.  
  180.          (Sort starting in column 5, for a length of 2,
  181.          BINARY, in ascending sequence.
  182.          If the first field is the same in both
  183.          records being compared, then sort
  184.          starting in column 2, for a length of 3, BINARY
  185.          in descending sequence)
  186.  
  187.          "FSORT in out 5,2,bi,a 2,1,bi,d"
  188.  
  189.          (Sort starting in column 5, for a length of 2, BINARY
  190.          in ascending sequence.  If the first field is the same
  191.          in both records being compared, then sort
  192.          starting in column 2, for a length of 1, BINARY
  193.          in descending sequence)
  194.  
  195.          "FSORT in out 5,2,ua,d"
  196.  
  197.          (Sort starting in column 5, for a length of 2,
  198.          Lowercase ASCII characters are treated the
  199.          same as Uppercase ASCII characters, descending.)
  200.  
  201.          "FSORT in out 5,2,bi,ar"
  202.  
  203.          (Sort starting in column 5, for a length of 2, BINARY
  204.          in ascending sequence.  This is the same as
  205.          specifying FSORT in out 6,1,bi,a 5,1,bi,a
  206.  
  207.  
  208. ΓòÉΓòÉΓòÉ 9. Options ΓòÉΓòÉΓòÉ
  209.  
  210.  
  211.  
  212.  
  213.   Options:  The options must follow Infilename and Outfilename.
  214.        They are described as follows:
  215.  
  216.  
  217.        Hnnn  - (2-256) Override number of sortworks.
  218.            Use this if you have lots of memory but little
  219.            disk space on your computer.  Example:
  220.  
  221.            4 megabytes of memory are available for sorting.
  222.            Disk C: has a 1 gigabyte input file to be sorted.
  223.            Disk D: has 1 gigabyte of free space on it.
  224.            FSORT may choose multiple merge passes to sort
  225.            the file in the least amount of time, but this
  226.            would require 2 gigabytes of disk work space.
  227.  
  228.            SOLUTION: The input and output file path names
  229.                 must be the same so that the output
  230.                 file will write over the input file.
  231.                 H256 will create 256 disk work files
  232.                 with 4 megabytes of data in each
  233.                 workfile.  H256 tells FSORT to use
  234.                 a merge width of 256.  This allows
  235.                 FSORT to merge in one pass without the
  236.                 need for additional disk work files.
  237.                 It may take longer to sort the file
  238.                 but function comes before performance
  239.                 in the above example.
  240.  
  241.  
  242.            NOTE:   FSORT requires 8 bytes of overhead for
  243.                 each record that it sorts.  If the
  244.                 record length in the above example was
  245.                 100 then each workfile would really
  246.                 hold less than 4 megabytes of records.
  247.                 FSORT could only sort about
  248.                 900 megabytes instead of
  249.                 the 1 gigabyte file shown in the above
  250.                 example. Keep this in mind if you
  251.                 need to sort files this way.
  252.  
  253.  
  254.        Lnnnn - (1-16384) Length of each record.
  255.  
  256.  
  257.        Mnnnn - (129-32000) Amount of memory to use in kilobytes.
  258.            M73 means 73k or 74752 bytes.
  259.  
  260.            DEFAULT (256k)
  261.  
  262.            WARNING: Elapsed sort time will increase
  263.                 dramatically if you specify
  264.                 a value that is greater than
  265.                 the amount of free memory
  266.                 available on your system.
  267.                 This may also cause the SWAP FILE
  268.                 disk to become full.
  269.  
  270.  
  271.  
  272.        Unnnnnnnn - UPSI (USER PROGRAM SWITCH INDICATORS)
  273.  
  274.            Reserved.
  275.  
  276.  
  277.        Wcc  - (A-Z) Up to TWO sortwork disks.
  278.  
  279.            DEFAULT (Root directory of current disk)
  280.  
  281.            Put sort work areas on these drive letters.
  282.            You can enhance performance by placeing
  283.            sortworks on separate PHYSICAL hard drives.
  284.  
  285.  
  286. ΓòÉΓòÉΓòÉ 10. Alternate Sequence tables ΓòÉΓòÉΓòÉ
  287.  
  288.  
  289.           FSORT comes with 4 tables called LA, UA, LE, and UE.
  290.           You may create your own tables if you have a hex editor.
  291.           A table must be exactly 256 bytes (characters) in length.
  292.           FSORT takes each character from the sort field and uses
  293.           it as an offset into the table.  Here is an example of how
  294.           to make ascii characters 0-9 look like ascii spaces:
  295.  
  296.               ----------------------------------------------------
  297.               00 - 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
  298.               10 - 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
  299.               20 - 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
  300.               -----------------------------------
  301.   ----------> 30 | 20 20 20 20 20 20 20 20 20 20|3A 3B 3C 3D 3E 3F
  302.               -----------------------------------
  303.               40 - 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
  304.               50 - 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F
  305.               60 - 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F
  306.               70 - 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F
  307.               80 - 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F
  308.               90 - 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F
  309.               A0 - A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF
  310.               B0 - B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF
  311.               C0 - C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF
  312.               D0 - D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF
  313.               E0 - E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF
  314.               F0 - F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF
  315.               ----------------------------------------------------
  316.  
  317.           The hexidecimal representation of ascii 0 is 30.
  318.           The hexidecimal representation of ascii space is 20.
  319.           Goto hexidecimal offset 30 in the table and place
  320.              the hexidecimal value of 20 there.
  321.           Continue the above process for the remaining hexidecimal
  322.           representations of ascii numbers 1 thru 9.
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330. ΓòÉΓòÉΓòÉ 11. Space Requirements ΓòÉΓòÉΓòÉ
  331.  
  332.  
  333.   Space requirements:
  334.  
  335.   You may use the same filename for Input and Output.
  336.  
  337.   CAUTION!!!  The input file will be lost if Phase 1 has ended
  338.         and one of the following conditions occurs:
  339.  
  340.  
  341.         A) A hardware or software failure.
  342.           This includes failure of a network connection if
  343.           a network disk is used for the output file or
  344.           work files.
  345.  
  346.         B) A power failure. (If you are not using an
  347.           Uninterruptible Power System)
  348.  
  349.         C) The sort is interrupted by CTRL-BREAK or the
  350.           window is closed.
  351.  
  352.         BACKUP THE INPUT FILE BEFORE USING THIS TYPE OF
  353.         SORTING PROCEDURE OR RISK LOSING THE INPUT FILE!!!
  354.  
  355.   FSORT will delete the input file when phase 1 is complete.
  356.  
  357.  
  358. Phase1:  (SORT PHASE)
  359.  
  360.     If the OUTPUT file name is different than the INPUT file name,
  361.     then the OUTPUT file will be erased if it exists.
  362.  
  363.     If Phase 1 can sort the input file in memory, then disk
  364.     workfiles are not used.
  365.  
  366.     If Phase 1 cannot sort the input file in memory then Phase 1
  367.     disk workfiles are created and they will use the same amount
  368.     of disk space as the INPUT file.
  369.  
  370.     The INPUT file will be erased at the end of Phase 1
  371.     if the OUTPUT file pathname is the same
  372.     as the INPUT file pathname.
  373.  
  374.  
  375.  
  376. Phase2:  (MERGE PHASE)
  377.  
  378.     Phase 2 has three possible choices:
  379.  
  380.  
  381.     A)  If Phase 1 could sort the input file in memory:
  382.       The output file will be written directly from memory.
  383.       Workfile space is not used.
  384.  
  385.     B)  If Phase 1 created disk workfiles and Phase 2 can complete
  386.       processing in one merge pass:
  387.       Workfile space is equal to the space used by the input
  388.       file.
  389.  
  390.     C)  If Phase 2 needs to perform multiple merge passes:
  391.       Workfiles will need twice the space that the
  392.       input file uses.
  393.  
  394. Here are some pictorial examples of some sorts where the
  395. input file pathname and the output file pathname are the same:
  396.  
  397. *************************************************************************
  398. *   The Input file, Output file, and Workfiles are on the same disk.    *
  399. *   The Input file can be sorted in memory.                             *
  400. *************************************************************************
  401.  
  402.            ------------
  403.            |iiiiiiiiii|
  404.            |iiiiiiiiii|
  405.            |iiiiiiiiii|
  406. Phase1     |iiiiiiiiii|
  407.            |iiiiiiiiii|
  408.            |iiiiiiiiii|
  409.            |iiiiiiiiii|
  410.            |iiiiiiiiii|
  411.            |iiiiiiiiii|
  412.            ------------
  413.  
  414.            ------------
  415.            |..........|
  416.            |..........|
  417.            |..........|
  418. Phase1     |..........|
  419. End        |..........|
  420.            |..........|
  421.            |..........|
  422.            |..........|
  423.            |..........|
  424.            ------------
  425.  
  426.            ------------
  427.            |oooooooooo|
  428.            |oooooooooo|
  429.            |oooooooooo|
  430. Phase2     |oooooooooo|
  431.            |oooooooooo|
  432.            |oooooooooo|
  433.            |oooooooooo|
  434.            |oooooooooo|
  435.            |oooooooooo|
  436.            ------------
  437.  
  438. *************************************************************************
  439. *   The Input file, Output file, and Workfiles are on the same disk.    *
  440. *   Phase 1 creates disk workfiles.                                     *
  441. *   Phase 2 only requires one merge pass.                               *
  442. *************************************************************************
  443.  
  444.            ------------
  445.            |iiiiiiiiii|
  446.            |iiiiiiiiii|
  447.            |iiiiiiiiii|
  448. Phase1     |iiiiiiiiii|
  449.            |1111111111|
  450.            |1111111111|
  451.            |1111111111|
  452.            |1111111111|
  453.            |..........|
  454.            ------------
  455.  
  456.            ------------
  457.            |..........|
  458.            |..........|
  459.            |..........|
  460. Phase1     |..........|
  461. End        |1111111111|
  462.            |1111111111|
  463.            |1111111111|
  464.            |1111111111|
  465.            |..........|
  466.            ------------
  467.  
  468.            ------------
  469.            |oooooooooo|
  470.            |oooooooooo|
  471.            |oooooooooo|
  472. Phase2     |oooooooooo|
  473.            |1111111111|
  474.            |1111111111|
  475.            |1111111111|
  476.            |1111111111|
  477.            |..........|
  478.            ------------
  479.  
  480.            ------------
  481.            |oooooooooo|
  482.            |oooooooooo|
  483.            |oooooooooo|
  484. Phase2     |oooooooooo|
  485. End        |..........|
  486.            |..........|
  487.            |..........|
  488.            |..........|
  489.            |..........|
  490.            ------------
  491.  
  492. *************************************************************************
  493. *   The Input file, Output file, and Workfiles are on the same disk.    *
  494. *   Phase 1 creates disk workfiles.                                     *
  495. *   Phase 2 creates additional workfiles.                               *
  496. *************************************************************************
  497.  
  498.            ------------
  499.            |iiiiiiiiii|
  500.            |iiiiiiiiii|
  501.            |iiiiiiiiii|
  502. Phase1     |iiiiiiiiii|
  503.            |1111111111|
  504.            |1111111111|
  505.            |1111111111|
  506.            |1111111111|
  507.            |..........|
  508.            ------------
  509.  
  510.            ------------
  511.            |..........|
  512.            |..........|
  513.            |..........|
  514. Phase1     |..........|
  515. End        |1111111111|
  516.            |1111111111|
  517.            |1111111111|
  518.            |1111111111|
  519.            |..........|
  520.            ------------
  521.  
  522.            ------------
  523.            |2222222222|
  524.            |2222222222|
  525.            |2222222222|
  526. Phase2     |2222222222|
  527. multiple   |1111111111|
  528. merge      |1111111111|
  529. passes     |1111111111|
  530.            |1111111111|
  531.            |..........|
  532.            ------------
  533.  
  534.            ------------
  535.            |2222222222|
  536.            |2222222222|
  537.            |2222222222|
  538. Phase2     |2222222222|
  539. before     |..........|
  540. final      |..........|
  541. merge      |..........|
  542. pass       |..........|
  543.            |..........|
  544.            ------------
  545.  
  546.            ------------
  547.            |2222222222|
  548.            |2222222222|
  549.            |2222222222|
  550. Phase2     |2222222222|
  551. Final      |oooooooooo|
  552. Merge      |oooooooooo|
  553. Pass       |oooooooooo|
  554.            |oooooooooo|
  555.            |..........|
  556.            ------------
  557.  
  558.            ------------
  559.            |..........|
  560.            |..........|
  561.            |..........|
  562. Phase2     |..........|
  563. End        |oooooooooo|
  564.            |oooooooooo|
  565.            |oooooooooo|
  566.            |oooooooooo|
  567.            |..........|
  568.            ------------
  569.  
  570. *************************************************************************
  571. *   The Input file, Output file are on the same disk.                   *
  572. *   the Workfiles are on a different disk.                              *
  573. *   The Input file can be sorted in memory.                             *
  574. *************************************************************************
  575.  
  576.            ------------     ------------
  577.            |iiiiiiiiii|     |..........|
  578.            |iiiiiiiiii|     |..........|
  579.            |iiiiiiiiii|     |..........|
  580. Phase1     |iiiiiiiiii|     |..........|
  581.            |iiiiiiiiii|     |..........|
  582.            |iiiiiiiiii|     |..........|
  583.            |iiiiiiiiii|     |..........|
  584.            |iiiiiiiiii|     |..........|
  585.            |iiiiiiiiii|     |..........|
  586.            ------------     ------------
  587.  
  588.            ------------     ------------
  589.            |..........|     |..........|
  590.            |..........|     |..........|
  591.            |..........|     |..........|
  592. Phase1     |..........|     |..........|
  593. End        |..........|     |..........|
  594.            |..........|     |..........|
  595.            |..........|     |..........|
  596.            |..........|     |..........|
  597.            |..........|     |..........|
  598.            ------------     ------------
  599.  
  600.            ------------     ------------
  601.            |oooooooooo|     |..........|
  602.            |oooooooooo|     |..........|
  603.            |oooooooooo|     |..........|
  604. Phase2     |oooooooooo|     |..........|
  605.            |oooooooooo|     |..........|
  606.            |oooooooooo|     |..........|
  607.            |oooooooooo|     |..........|
  608.            |oooooooooo|     |..........|
  609.            |oooooooooo|     |..........|
  610.            ------------     ------------
  611.  
  612. *************************************************************************
  613. *   The Input file, Output file are on the same disk.                   *
  614. *   The Workfiles are on a different disk.                              *
  615. *   Phase 1 creates disk workfiles.                                     *
  616. *   Phase 2 only requires one merge pass.                               *
  617. *************************************************************************
  618.  
  619.            ------------     ------------
  620.            |iiiiiiiiii|     |1111111111|
  621.            |iiiiiiiiii|     |1111111111|
  622.            |iiiiiiiiii|     |1111111111|
  623. Phase1     |iiiiiiiiii|     |1111111111|
  624.            |iiiiiiiiii|     |1111111111|
  625.            |iiiiiiiiii|     |1111111111|
  626.            |iiiiiiiiii|     |1111111111|
  627.            |iiiiiiiiii|     |1111111111|
  628.            |iiiiiiiiii|     |1111111111|
  629.            ------------     ------------
  630.  
  631.            ------------     ------------
  632.            |..........|     |1111111111|
  633.            |..........|     |1111111111|
  634.            |..........|     |1111111111|
  635. Phase1     |..........|     |1111111111|
  636. End        |..........|     |1111111111|
  637.            |..........|     |1111111111|
  638.            |..........|     |1111111111|
  639.            |..........|     |1111111111|
  640.            |..........|     |1111111111|
  641.            ------------     ------------
  642.  
  643.            ------------     ------------
  644.            |oooooooooo|     |1111111111|
  645.            |oooooooooo|     |1111111111|
  646.            |oooooooooo|     |1111111111|
  647. Phase2     |oooooooooo|     |1111111111|
  648.            |oooooooooo|     |1111111111|
  649.            |oooooooooo|     |1111111111|
  650.            |oooooooooo|     |1111111111|
  651.            |oooooooooo|     |1111111111|
  652.            |oooooooooo|     |1111111111|
  653.            ------------     ------------
  654.  
  655.            ------------     ------------
  656.            |oooooooooo|     |..........|
  657.            |oooooooooo|     |..........|
  658.            |oooooooooo|     |..........|
  659. Phase2     |oooooooooo|     |..........|
  660. end        |oooooooooo|     |..........|
  661.            |oooooooooo|     |..........|
  662.            |oooooooooo|     |..........|
  663.            |oooooooooo|     |..........|
  664.            |oooooooooo|     |..........|
  665.            ------------     ------------
  666.  
  667. *************************************************************************
  668. *   The Input file, Output file are on the same disk.                   *
  669. *   The Workfiles are on a different disk.                              *
  670. *   Phase 1 creates disk workfiles.                                     *
  671. *   Phase 2 creates additional workfiles.                               *
  672. *************************************************************************
  673.  
  674.            ------------     ------------
  675.            |iiiiiiiiii|     |1111111111|
  676.            |iiiiiiiiii|     |1111111111|
  677.            |iiiiiiiiii|     |1111111111|
  678. Phase1     |iiiiiiiiii|     |1111111111|
  679.            |..........|     |..........|
  680.            |..........|     |..........|
  681.            |..........|     |..........|
  682.            |..........|     |..........|
  683.            |..........|     |..........|
  684.            ------------     ------------
  685.  
  686.            ------------     ------------
  687.            |..........|     |1111111111|
  688.            |..........|     |1111111111|
  689.            |..........|     |1111111111|
  690. Phase1     |..........|     |1111111111|
  691. End        |..........|     |..........|
  692.            |..........|     |..........|
  693.            |..........|     |..........|
  694.            |..........|     |..........|
  695.            |..........|     |..........|
  696.            ------------     ------------
  697.  
  698.            ------------     ------------
  699.            |..........|     |1111111111|
  700.            |..........|     |1111111111|
  701.            |..........|     |1111111111|
  702. Phase2     |..........|     |1111111111|
  703. multiple   |..........|     |2222222222|
  704. merge      |..........|     |2222222222|
  705. passes     |..........|     |2222222222|
  706.            |..........|     |2222222222|
  707.            |..........|     |..........|
  708.            ------------     ------------
  709.  
  710.            ------------     ------------
  711.            |..........|     |..........|
  712.            |..........|     |..........|
  713.            |..........|     |..........|
  714. Phase2     |..........|     |..........|
  715. before     |..........|     |2222222222|
  716. final      |..........|     |2222222222|
  717. merge      |..........|     |2222222222|
  718. pass       |..........|     |2222222222|
  719.            |..........|     |..........|
  720.            ------------     ------------
  721.  
  722.            ------------     ------------
  723.            |oooooooooo|     |..........|
  724.            |oooooooooo|     |..........|
  725.            |oooooooooo|     |..........|
  726. Phase2     |oooooooooo|     |..........|
  727. final      |..........|     |2222222222|
  728. merge      |..........|     |2222222222|
  729. pass       |..........|     |2222222222|
  730.            |..........|     |2222222222|
  731.            |..........|     |..........|
  732.            ------------     ------------
  733.  
  734.            ------------     ------------
  735.            |oooooooooo|     |..........|
  736.            |oooooooooo|     |..........|
  737.            |oooooooooo|     |..........|
  738. Phase2     |oooooooooo|     |..........|
  739. end        |..........|     |..........|
  740.            |..........|     |..........|
  741.            |..........|     |..........|
  742.            |..........|     |..........|
  743.            |..........|     |..........|
  744.            ------------     ------------
  745.  
  746.  
  747. ΓòÉΓòÉΓòÉ 12. Execution Graph 1 (122 character records) ΓòÉΓòÉΓòÉ
  748.  
  749. The following Graph was created by varying the memory from 64k to 4096k
  750. in increments of 64k.  The data file consisted of 500,000 122 character
  751. records.  These records were in random order.  There were 12 one character
  752. sort fields.  FSORT made two merge passes until it hit 1024k of memory.
  753. Increasing memory above 4096k (4meg) was not necessary as it did not
  754. decrease execution time. Phase1 is BLUE and Phase2 is GREEN.
  755. FSORT ran on the following hardware:
  756.         50mhz EISA 486 with 32meg of memory.
  757.         SCSI cache controller with 4meg of memory.
  758.         Two physical SCSI disk drives.
  759.         INPUT file was on a HPFS partition with 1024k cache.
  760.         SORTWORK files were on a FAT partition with 2048k cache.
  761.  
  762.  
  763. ΓòÉΓòÉΓòÉ 13. Execution Graph 1 (16 character records) ΓòÉΓòÉΓòÉ
  764.  
  765. The following Graph was created by varying the memory from 64k to 4096k
  766. in increments of 64k.  The data file consisted of 3,812,500 16 character
  767. records.  These records were in random order.  There was one integer
  768. sort field.
  769. Phase1 is BLUE and Phase2 is GREEN.
  770. FSORT ran on the following hardware:
  771.         50mhz EISA 486 with 32meg of memory.
  772.         SCSI cache controller with 4meg of memory.
  773.         Two physical SCSI disk drives.
  774.         INPUT file was on a HPFS partition with 1024k cache.
  775.         SORTWORK files were on a FAT partition with 2048k cache.
  776.  
  777.  
  778. ΓòÉΓòÉΓòÉ 14. Performance ΓòÉΓòÉΓòÉ
  779.  
  780.  
  781. The performance of FSORT can be improved in two ways.
  782.  
  783.   1) Increase the amount of REAL memory that it can use for sorting.
  784.    See Graph 1 to show wasted memory allocation.
  785.  
  786.   2) Place the sortwork areas on seperate PHYSICAL disk devices.
  787.  
  788.  
  789. ΓòÉΓòÉΓòÉ 15. Technical Support ΓòÉΓòÉΓòÉ
  790.  
  791. FSORT is tested by giving it many combinations of input parameters
  792. and then checking for correct output.  This will give many of you
  793. that warm, fuzzy feeling.  FSORT is currently supported thru the
  794. Mystic Software BBS and Questions and Problems should be answered within
  795. 24 hours.  However, some of you may be looking for emergency telephone
  796. support.  Mystic Software is a new Corporation and cannot provide this
  797. kind of support at this time.  You may send a letter of intent to
  798. purchase software support for FSORT to:
  799.  
  800.           Mystic Software
  801.           P.O. Box 691
  802.           Abilene, Kansas 67410
  803.  
  804. Support rates will depend upon how many letters of intent are
  805. received.  Support contracts would run for one year with options
  806. to renew every year.
  807.  
  808.    Number of contracts
  809.  
  810.       100 -  500    $400 to $2000 a year
  811.  
  812.       501 - 1000    $200 to $400  a year
  813.  
  814.       1001 - 5000    $50 to $200  a year
  815.  
  816. Please specify the amount of money that you would be willing to
  817. commit for an Annual Support contract.  You will be notified in
  818. writing when and if the above levels of letters of intent have
  819. been received.
  820.  
  821.  
  822.  
  823. ΓòÉΓòÉΓòÉ 16. D I S C L A I M E R ΓòÉΓòÉΓòÉ
  824.  
  825.              D I S C L A I M E R
  826. THIS PROGRAM IS AN EVALUATION COPY AND AS SUCH YOU ARE PERMITTED TO
  827. DISTRIBUTE IT WITHOUT CHARGE PROVIDED THAT ALL FILES ARE UNMODIFIED
  828. AND DISTRIBUTED TOGETHER.  DUE COPYRIGHT MUST BE OBSERVED.  THIS
  829. PROGRAM IS PROVIDED "AS IS" WITHOUT ANY WARRANTY OF ANY KIND,
  830. EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  831. WARRANTIES OF MERCHANTABLILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  832.  
  833. IN NO EVENT SHALL MYSTIC SOFTWARE BE LIABLE FOR ANY DAMAGES,
  834. EITHER DIRECT OR CONSEQUENTIAL, CAUSED BY THE USE,
  835. OR INABLILITY TO USE THIS PROGRAM, EVEN IF MYSTIC SOFTWARE
  836. HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
  837.  
  838. ALL TRADEMARKS AND SERVICE MARKS ARE THE PROPERTY
  839. OF THEIR RESPECTIVE OWNERS.
  840.