Files
impala/testdata/datasets/functional/schema_constraints.csv
Skye Wanderman-Milne 9147cd7518 IMPALA-525: Adjust IO buffer size based on read length and other memory fixes
We were previously wasting memory by always reading into 8MB IO
buffers, even when the data read was much less than 8MB. With this
patch, the IO manager picks a buffer size closer to the actual amount
being read (we don't use the exact size so we can continue to recycle
buffers). The minimum IO buffer size is determined via the
--min_buffer_size flag, and the max IO buffer size via the --read_size
flag.

This technique also helps with IMPALA-652, since short columns will
not use as much memory as before (we will not use considerably more
memory than the size of the table).

This patch also changes StringBuffer to use a doubling strategy so it
doesn't end up allocating many large unused buffers, and has the
scanner context use the requested length as the sync read size if it's
larger than the size produced by read_past_size_cb(). These changes
help prevent the boundary buffer in the scanner context from
allocating excess memory.

Change-Id: I0efb3b023ddfddb08bca22d5cb5f9511fb4d6c50
Reviewed-on: http://gerrit.ent.cloudera.com:8080/938
Reviewed-by: Skye Wanderman-Milne <skye@cloudera.com>
Tested-by: jenkins
2014-01-08 10:54:01 -08:00

5.5 KiB

1# Table level constraints:
2# Allows for defining constraints on which file formats to generate for an individual
3# table. The table name should match the base table name defined in the schema template
4# file.
5table_name:stringids, constraint:restrict_to, table_format:hbase/none/none
6table_name:insertalltypesagg, constraint:restrict_to, table_format:hbase/none/none
7table_name:alltypessmallbinary, constraint:restrict_to, table_format:hbase/none/none
8table_name:insertalltypesaggbinary, constraint:restrict_to, table_format:hbase/none/none
9table_name:hbasealltypeserror, constraint:restrict_to, table_format:hbase/none/none
10table_name:hbasealltypeserrornonulls, constraint:restrict_to, table_format:hbase/none/none
11table_name:alltypesinsert, constraint:restrict_to, table_format:text/none/none
12table_name:alltypesnopart_insert, constraint:restrict_to, table_format:text/none/none
13table_name:insert_overwrite_nopart, constraint:restrict_to, table_format:text/none/none
14table_name:insert_overwrite_partitioned, constraint:restrict_to, table_format:text/none/none
15table_name:insert_string_partitioned, constraint:restrict_to, table_format:text/none/none
16table_name:alltypesinsert, constraint:restrict_to, table_format:parquet/none/none
17table_name:alltypesnopart_insert, constraint:restrict_to, table_format:parquet/none/none
18table_name:alltypesinsert, constraint:restrict_to, table_format:text/none/none
19table_name:alltypesnopart_insert, constraint:restrict_to, table_format:text/none/none
20table_name:insert_overwrite_nopart, constraint:restrict_to, table_format:text/none/none
21table_name:insert_overwrite_partitioned, constraint:restrict_to, table_format:text/none/none
22table_name:insert_string_partitioned, constraint:restrict_to, table_format:text/none/none
23table_name:alltypesinsert, constraint:restrict_to, table_format:parquet/none/none
24table_name:alltypesnopart_insert, constraint:restrict_to, table_format:parquet/none/none
25table_name:insert_overwrite_nopart, constraint:restrict_to, table_format:parquet/none/none
26table_name:insert_overwrite_partitioned, constraint:restrict_to, table_format:parquet/none/none
27table_name:insert_string_partitioned, constraint:restrict_to, table_format:parquet/none/none
28table_name:old_rcfile_table, constraint:restrict_to, table_format:rc/none/none
29table_name:bad_text_lzo, constraint:restrict_to, table_format:text/lzo/block
30table_name:bad_seq_snap, constraint:restrict_to, table_format:seq/snap/block
31table_name:map_table, constraint:restrict_to, table_format:text/none/none
32table_name:map_table_hbase, constraint:restrict_to, table_format:hbase/none/none
33table_name:array_table, constraint:restrict_to, table_format:text/none/none
34table_name:alltypeserror, constraint:exclude, table_format:parquet/none/none
35table_name:alltypeserrornonulls, constraint:exclude, table_format:parquet/none/none
36table_name:unsupported_types, constraint:exclude, table_format:parquet/none/none
37table_name:escapechartesttable, constraint:exclude, table_format:parquet/none/none
38table_name:nulltable, constraint:exclude, table_format:parquet/none/none
39table_name:nullescapedtable, constraint:exclude, table_format:parquet/none/none
40table_name:TblWithRaggedColumns, constraint:exclude, table_format:parquet/none/none
41# the text_ tables are for testing test delimiters and escape chars in text files
42table_name:text_comma_backslash_newline, constraint:restrict_to, table_format:text/none/none
43table_name:text_dollar_hash_pipe, constraint:restrict_to, table_format:text/none/none
44table_name:bad_serde, constraint:restrict_to, table_format:text/none/none
45table_name:unsupported_partition_types, constraint:restrict_to, table_format:text/none/none
46table_name:nullformat_custom, constraint:exclude, table_format:parquet/none/none
47table_name:alltypes_view, constraint:restrict_to, table_format:text/none/none
48table_name:alltypes_view, constraint:restrict_to, table_format:seq/snap/block
49table_name:alltypes_view_sub, constraint:restrict_to, table_format:text/none/none
50table_name:alltypes_view_sub, constraint:restrict_to, table_format:seq/snap/block
51table_name:alltypes_parens, constraint:restrict_to, table_format:text/none/none
52table_name:complex_view, constraint:restrict_to, table_format:text/none/none
53table_name:complex_view, constraint:restrict_to, table_format:seq/snap/block
54table_name:view_view, constraint:restrict_to, table_format:text/none/none
55table_name:view_view, constraint:restrict_to, table_format:seq/snap/block
56# liketbl and tblwithraggedcolumns all have
57# NULLs in primary key columns. hbase does not support
58# writing NULLs to primary key columns.
59table_name:liketbl, constraint:exclude, table_format:hbase/none/none
60table_name:tblwithraggedcolumns, constraint:exclude, table_format:hbase/none/none
61# Tables with only one column are not supported in hbase.
62table_name:greptiny, constraint:exclude, table_format:hbase/none/none
63table_name:tinyinttable, constraint:exclude, table_format:hbase/none/none
64# overflow has a bigint that's too big. hbase may lose precision, hence this
65# table cannot be loaded.
66table_name:overflow, constraint:exclude, table_format:hbase/none/none
67# widerow has a single column with a single row containing a 10MB string. hbase doesn't
68# seem to like this.
69table_name:widerow, constraint:exclude, table_format:hbase/none/none
70# nullformat_custom is used in null-insert tests, which user insert overwrite,
71# which is not supported in hbase. The schema is also specified in HIVE_CREATE
72# with no corresponding LOAD statement.
73table_name:nullformat_custom, constraint:exclude, table_format:hbase/none/none
74table_name:unsupported_types, constraint:exclude, table_format:hbase/none/none