OOM durch gleichzeitige INSERTs und SELECTs auf Datalake-Tabellen
Das System kann unter Umständen nicht genügend Arbeitsspeicher haben (OOM), wenn viele INSERT- und SELECT-Anweisungen gleichzeitig auf Datalake- und Iceberg-Tabellen ausgeführt werden.
Symptome
Möglicherweise werden die folgenden Fehler angezeigt:
Server error message: Not enough storage is available in the "BigSQL IO" heap or stack to process the statement..
SQLCODE=-973, SQLSTATE=57011, DRIVER=4.24.92Server error message: The statement failed because a connection to a Hadoop/External Table I/O component could not be established or maintained. Hadoop/External Table I/O component name: "SCHEDULER". Reason code: "1". Database partition number: "0"..
SQLCODE=-5199, SQLSTATE=57067, DRIVER=4.24.92Server error message: The statement failed because of a communication error with a Db2 Big SQL component. Db2 Big SQL component name: "SCHEDULER". Reason code: "1". Log entry identifier: "DB2"..
SQLCODE=-5197, SQLSTATE=57066, DRIVER=4.24.92DB21034E The command was processed as an SQL statement because it was not a
valid Command Line Processor command. During SQL processing it returned:
SQL5105N The statement failed because a Big SQL component encountered an
error. Component receiving the error: "BigSQL IO". Component returning the
error: "UNKNOWN". Log entry identifier: "[BSL-1-4b4bcfa]". Reason: "Buffer
size too small. size = ". SQLSTATE=58040Die folgenden Fehlermeldungen können auf bigsql.log auf dem Host angezeigt werden:
023-03-03T05:48:23,768 ERROR com.ibm.biginsights.bigsql.dfsrw.reader.DfsBaseReader [Master-1-S:41.1.1000003.10.0.7926] : [BSL-1-6a603ab58] Exception raised by Reader at node: 1 Scan ID: S:41.1.1000003.10.0.7926 Table: gt.atable20 Spark: false VORC: false VPQ: true VAVRO: false VTEXT: false VRCFILE: false VANALYZE: false ICEBERG: true
Exception Label: UNMAPPED(java.lang.OutOfMemoryError: Java heap space)
java.lang.OutOfMemoryError: Java heap space
at java.lang.StringBuilder.<init>(StringBuilder.java:129) ~[?:2.9 (04-27-2022)]
at java.lang.StringBuilder.<init>(StringBuilder.java:106) ~[?:2.9 (04-27-2022)]
at org.apache.hadoop.fs.s3a.Invoker.toDescription(Invoker.java:509) ~[hadoop-aws-3.1.1.7.1.6.0-297.jar:?]
at org.apache.hadoop.fs.s3a.Invoker.retry(Invoker.java:312) ~[hadoop-aws-3.1.1.7.1.6.0-297.jar:?]
at org.apache.hadoop.fs.s3a.Invoker.retry(Invoker.java:286) ~[hadoop-aws-3.1.1.7.1.6.0-297.jar:?]
at org.apache.hadoop.fs.s3a.S3AInputStream.read(S3AInputStream.java:477) ~[hadoop-aws-3.1.1.7.1.6.0-297.jar:?]
at java.io.DataInputStream.read(DataInputStream.java:160) ~[?:1.8.0]
at org.apache.parquet.io.DelegatingSeekableInputStream.read(DelegatingSeekableInputStream.java:66) ~[parquet-common.jar:1.10.99.7.1.6.0-297]
at shaded.parquet.org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:127) ~[parquet-format-structures.jar:1.10.99.7.1.6.0-297]
at shaded.parquet.org.apache.thrift.transport.TTransport.readAll(TTransport.java:86) ~[parquet-format-structures.jar:1.10.99.7.1.6.0-297]
at shaded.parquet.org.apache.thrift.protocol.TCompactProtocol.readByte(TCompactProtocol.java:637) ~[parquet-format-structures.jar:1.10.99.7.1.6.0-2972023-05-07T11:28:14,587 ERROR com.ibm.biginsights.bigsql.dfsrw.reader.DfsBaseReader [Master-1-S:26.1001.1.0.0.28220] : [BSL-1-7f5f82afb] Exception raised by Reader at node: 1 Scan ID: S:26.1001.1.0.0.28220 Table: gt05c.table94_integrity Spark: false VORC: true VPQ: false VAVRO: false VTEXT: false VRCFILE: false VANALYZE: false ICEBERG: false
Exception Label: UNMAPPED(java.lang.IllegalArgumentException: Buffer size too small. size = 32768 needed = 1099203 in footer)
java.lang.IllegalArgumentException: Buffer size too small. size = 32768 needed = 1099203 in footerUrsachen
Diese OOM-Probleme treten auf, wenn zu viele Clients gleichzeitig im System laufen. Wenn Prozessen der Arbeitsspeicher ausgeht, kann dies dazu führen, dass instabile E/A-Engine-FMP-Puffer Fehler auslösen oder in einigen Fällen abgeschaltet werden.
Problemlösung
Das Problem kann durch die Reduzierung der Anzahl gleichzeitiger Clients (insbesondere bei INSERTs) entschärft werden.