|
39 | 39 |
|
40 | 40 | <para><informaltable colsep="1" frame="all" rowsep="1">
|
41 | 41 | <tgroup cols="2">
|
42 |
| - <colspec colwidth="78.50pt" /> |
| 42 | + <colspec colwidth="78.50pt"/> |
43 | 43 |
|
44 |
| - <colspec /> |
| 44 | + <colspec/> |
45 | 45 |
|
46 | 46 | <tbody>
|
47 | 47 | <row>
|
|
241 | 241 |
|
242 | 242 | <para><informaltable colsep="1" frame="all" rowsep="1">
|
243 | 243 | <tgroup cols="2">
|
244 |
| - <colspec colwidth="125pt" /> |
| 244 | + <colspec colwidth="125pt"/> |
245 | 245 |
|
246 |
| - <colspec /> |
| 246 | + <colspec/> |
247 | 247 |
|
248 | 248 | <tbody>
|
249 | 249 | <row>
|
|
256 | 256 | written to disk is always determined by the number of nodes in
|
257 | 257 | the cluster on which the workunit executes, regardless of the
|
258 | 258 | number of nodes on the target cluster(s) unless the WIDTH option
|
259 |
| - is also specified. Use this option for bare-metal deployments. |
260 |
| - </entry> |
| 259 | + is also specified. Use this option for bare-metal |
| 260 | + deployments.</entry> |
261 | 261 | </row>
|
262 | 262 |
|
263 | 263 | <row>
|
|
292 | 292 | names of the plane(s) to write the
|
293 | 293 | <emphasis>indexfile</emphasis> to. The
|
294 | 294 | <emphasis>targetPlane</emphasis> names must be listed as they
|
295 |
| - are defined in the deployment. </entry> |
| 295 | + are defined in the deployment.</entry> |
296 | 296 | </row>
|
297 | 297 |
|
298 | 298 | <row>
|
@@ -856,17 +856,17 @@ BUILD(FilterDsLib1);
|
856 | 856 |
|
857 | 857 | <informaltable colsep="1" frame="all" rowsep="1">
|
858 | 858 | <tgroup cols="2">
|
859 |
| - <colspec align="left" colwidth="122.40pt" /> |
| 859 | + <colspec align="left" colwidth="188*"/> |
860 | 860 |
|
861 |
| - <colspec /> |
| 861 | + <colspec colwidth="812*"/> |
862 | 862 |
|
863 | 863 | <tbody>
|
864 | 864 | <row>
|
865 | 865 | <entry><emphasis role="bold">LZW</emphasis></entry>
|
866 | 866 |
|
867 |
| - <entry>The default compression. It is a variant of the |
868 |
| - Lempel-Ziv-Welch algorithm. It remains the default for backward |
869 |
| - compatibility.</entry> |
| 867 | + <entry>A variant of the Lempel-Ziv-Welch algorithm. This was the |
| 868 | + the default compression prior to versions 9.6.90, 9.8.66,and |
| 869 | + 9.10.12.</entry> |
870 | 870 | </row>
|
871 | 871 |
|
872 | 872 | <row>
|
@@ -894,34 +894,113 @@ BUILD(FilterDsLib1);
|
894 | 894 | compression on the payload. The resulting index can be smaller
|
895 | 895 | than using lz4.</entry>
|
896 | 896 | </row>
|
| 897 | + |
| 898 | + <row> |
| 899 | + <entry><emphasis role="bold"><emphasis |
| 900 | + role="bold">'inplace:lz4s'</emphasis> </emphasis></entry> |
| 901 | + |
| 902 | + <entry>Causes inplace compression on the key fields and lz4s |
| 903 | + compression on the payload. This uses the stream LZ4 API to avoid |
| 904 | + recompressing the data and reduce the index build times.</entry> |
| 905 | + </row> |
| 906 | + |
| 907 | + <row> |
| 908 | + <entry><emphasis role="bold"><emphasis |
| 909 | + role="bold">'inplace:lz4shc'</emphasis> </emphasis></entry> |
| 910 | + |
| 911 | + <entry>The default compression for inplace indexes in versions |
| 912 | + after versions 9.6.90, 9.8.66, and 9.10.12. Causes inplace |
| 913 | + compression on the key fields and lz4shc compression on the |
| 914 | + payload. This uses the stream LZ4 API to avoid recompressing the |
| 915 | + data and reduce the index build times.</entry> |
| 916 | + </row> |
897 | 917 | </tbody>
|
898 | 918 | </tgroup>
|
899 | 919 | </informaltable>
|
900 | 920 |
|
901 |
| - <para>The inplace index compression format (introduced in version 9.2.0) |
902 |
| - improves compression of keyed fields and allows them to be searched |
903 |
| - without decompression. The original index compression implementation |
904 |
| - decompresses the rows when they are read from disk.</para> |
| 921 | + <para>The lz4s and lz4hc inplace index compression formats (introduced in |
| 922 | + versions 9.6.90, 9.8.66, and 9.10.12 9.2.0 or later) improves compression |
| 923 | + and reduces build time. These formats require an engine that supports it. |
| 924 | + In other words, <emphasis role="bold">if you build an index using the lz4s |
| 925 | + or lz4shc formats, you must use a platform later than 9.6.90, 9.8.66, and |
| 926 | + 9.10.12 to read those indexes.</emphasis></para> |
| 927 | + |
| 928 | + <para>If you attempt to read an index with the inplace compression format |
| 929 | + on a system that does not support it, you will receive an error |
| 930 | + message.</para> |
905 | 931 |
|
906 | 932 | <para>Because the branch nodes can be searched without decompression more
|
907 | 933 | branch nodes fit into memory which can improve search performance. The lz4
|
908 | 934 | compression used for the payload is significantly faster at decompressing
|
909 |
| - leaf pages than the previous LZW compression.</para> |
| 935 | + leaf pages than the previous LZW compression. Whether performance is |
| 936 | + better with lz4hc (a high-compression variant of lz4) on the payload |
| 937 | + fields depends on the access characteristics of the data and how much of |
| 938 | + the index is cached in memory.</para> |
910 | 939 |
|
911 |
| - <para>Whether performance is better with lz4hc (a high-compression variant |
912 |
| - of lz4) on the payload fields depends on the access characteristics of the |
913 |
| - data and how much of the index is cached in memory.</para> |
| 940 | + <para><emphasis role="bold">Compression Levels :</emphasis></para> |
914 | 941 |
|
915 |
| - <para>If you attempt to read an index with the inplace compression format |
916 |
| - on a system that does not support them, you will receive an error |
917 |
| - message.</para> |
| 942 | + <informaltable colsep="1" frame="all" rowsep="1"> |
| 943 | + <tgroup cols="2"> |
| 944 | + <colspec align="left" colwidth="240*"/> |
| 945 | + |
| 946 | + <colspec colwidth="836*"/> |
| 947 | + |
| 948 | + <tbody> |
| 949 | + <row> |
| 950 | + <entry><emphasis role="bold">hclevel</emphasis></entry> |
| 951 | + |
| 952 | + <entry>An integer between 2 and 12 to specify the level of |
| 953 | + compression. The default is 3. Higher levels increase the |
| 954 | + compression, but also increase the compression times. This may be |
| 955 | + cost effective depending on the length of time the data is stored, |
| 956 | + and the storage costs compared to the compute costs to build the |
| 957 | + index.</entry> |
| 958 | + </row> |
918 | 959 |
|
919 |
| - <para>See Also: <link linkend="INDEX_record_structure">INDEX</link>, <link |
920 |
| - linkend="JOIN">JOIN</link>, <link linkend="FETCH">FETCH</link>, <link |
921 |
| - linkend="MODULE_Structure">MODULE</link>, <link |
922 |
| - linkend="INTERFACE_Structure">INTERFACE</link>, <link |
923 |
| - linkend="LIBRARY">LIBRARY</link>, <link |
924 |
| - linkend="DISTRIBUTE">DISTRIBUTE</link>, <link |
925 |
| - linkend="_WORKUNIT">#WORKUNIT</link></para> |
| 960 | + <row> |
| 961 | + <entry><emphasis role="bold">maxcompression</emphasis></entry> |
| 962 | + |
| 963 | + <entry>The maximum desired compression ratio. This avoids the leaf |
| 964 | + nodes getting too large when expanded, but increases the size of |
| 965 | + some indexes. The default is 20.</entry> |
| 966 | + </row> |
| 967 | + |
| 968 | + <row> |
| 969 | + <entry><emphasis role="bold">maxrecompress</emphasis></entry> |
| 970 | + |
| 971 | + <entry>Specifies the number of times the entire input dataset |
| 972 | + should be recompressed to free up space. Increasing the number |
| 973 | + decreases the size of the indexes, and will probably decrease the |
| 974 | + decompress time slightly (because there are fewer stream blocks), |
| 975 | + but will increase the build time. The default is 1.</entry> |
| 976 | + </row> |
| 977 | + </tbody> |
| 978 | + </tgroup> |
| 979 | + </informaltable> |
| 980 | + |
| 981 | + <para/> |
| 982 | + |
| 983 | + <para>Example:</para> |
| 984 | + |
| 985 | + <programlisting>Vehicles := DATASET('vehicles', |
| 986 | + {STRING2 st,STRING20 city,STRING20 lname},FLAT); |
| 987 | + |
| 988 | +SearchTerms := RECORD |
| 989 | + Vehicles.st; |
| 990 | + Vehicles.city; |
| 991 | +END; |
| 992 | +Payload := RECORD |
| 993 | + Vehicles.lname; |
| 994 | +END; |
| 995 | +VehicleKey := INDEX(Vehicles,SearchTerms,Payload,'vkey::st.city', |
| 996 | + COMPRESSED('inplace:lz4shc,compressopt(hclevel=9, |
| 997 | + maxcompression=25, |
| 998 | + maxrecompress=4)')); |
| 999 | +BUILD(VehicleKey);</programlisting> |
| 1000 | + |
| 1001 | + <para>See Also: <link linkend="DATASET">DATASET</link>, <link |
| 1002 | + linkend="BUILD">BUILDINDEX</link>, <link linkend="JOIN">JOIN</link>, <link |
| 1003 | + linkend="FETCH">FETCH</link>, <link |
| 1004 | + linkend="KEYED-WILD">KEYED/WILD</link></para> |
926 | 1005 | </sect2>
|
927 | 1006 | </sect1>
|
0 commit comments