Re: Bloom filters

From: vsevolod afanassiev <vsevolod.afanassiev_at_gmail.com>
Date: Thu, 10 Jan 2013 21:26:59 -0800 (PST)
Message-ID: <18a3908e-765b-488c-92f1-7224c3801351_at_googlegroups.com>



Years ago we had several 10.2.0.3 crashes caused by Bloom filter. Oracle support recommended setting _bloom_filter_enabled = false. The crashes were caused by parallel query:

ORA-00600: internal error code, arguments: [17114], [0x70000011C7B2C30], [], [], [], [], [], [] ORA-10388: parallel query server interrupt (failure)

  • From Metalink Note 389621.1 ===
    Applies to: Oracle Server - Enterprise Edition - Version: 10.2.0.1 to 10.2.0.3 This problem can occur on any platform.

Symptoms

Database hangs, is not available for users, and possible to crash after a while. This condition has also been observed by pressing Control-C in a SQL*Plus session.

This is an intermittent problem

Alert log shows errors:
ORA-00600: internal error code, arguments: [KGHLKREM1], [0x7DA72C420], [], [], [], [], [], []

Trace files show HEAP corruption errors, and show the errors occurring when pinning an object in memory. Additionally, there is much Parallel Query processing

We can see different Call stack:

kgesic1 kghfrunp kghfnd kghalo kghsupmm kghssgai qesblAlo qesblGetFilter qerblFetch . . . or
kghalo kspcrec ksucre kxfpProcessJoin
or
kghnerror kghadd_reserved_extent kghget_reserved_ext ent kghgex ent kghfnd kghalo kghgex kghalf kghalp kghssgai kggsmInitCompact 1360 qkssmMigrateExec

Cause
This is the same issue as in
Bug 5914711 DATABASE HANG WITH MANY ORA-600 [KGHLKREM1] ERROR

The cause of the error is due the following unpublished bug.

Unpublished Bug 5736850 ABSTRACT: MULTI KILL SESSION LEADS TO SGA CORRUPTION

Fixed In Ver: 11.1

Solution

Workaround is to set _bloom_filter_enabled=FALSE in init.ora.

It is often possible to tell that bloom filters are being used because of the presence of qerblRop in the stack or because there are memory chunks in the trace with the label ’qesblFilter_seg’.

A bloom filter is a generic(non-Oracle) data structure/algorithm used for looking up elements in a set. You can find detailed information by searching for "bloom filter" in google or any other search engine. In Oracle 10.2 onwards, parallel query can use this operation internally if the parameter is true.

This might have a slight negative impact on PQ performance but since this is a new 10gR2 feature, it may not be noticeable.

The fix for the bug will be in 10.2.0.4 and Rel. 11. This fix changes a fixed sga structure and introduces a new wait event so cannot be backported.

References
Bug 5914711 - DATABASE HANG WITH MANY ORA-600 [KGHLKREM1] ERROR

Errors
ORA-600[KGHLKREM1]


Received on Fri Jan 11 2013 - 06:26:59 CET

Original text of this message