Tanel:
You are right. But the actual freeing process (from the re-creatable
chunks) is quite different from what you have explained. The
recreatable chunks (they are freeable, but can be re-creatable if
required as you have explained) will be falling in two catagories.
They are either pinned or un pinned. The unpinned list again has two
separate lists (two LRU lists, one for transient and another one is for
recurrent), and the freeing process starts from transient list.
IF we don't get the required memory, then it is moved to the other
list, i.e recurrent chunk LRU and the search ends when the required
size is found. I think 8 chunks are freed in the previous list before
it shifting to the recurrent list. If the process doesn't get the
required free memory, it will try to allocate from hidden memory before
signalling ORA-04031.
- Tanel Poder <tanel.poder.003_at_mail.ee> wrote:
> Hi!
>
> I wrote about recreatable chunk handling from memory and mixed up
> chunk
> freeing routines and chunk's data recreation routines:
> A callback routine is used when a process wants to free a recreatable
> chunk -> it can't reuse it just like that, because the original
> allocator
> (parent object) still has pointers pointing to this chunk, so the
> same
> object who allocated the chunk, has to do the freeing as well.
> That's my understanding, it'd be interesting to know whether it's
> correct ;)
>
> Tanel.
>
>
> > Recreatable:
> > This chunk is used, but its contents can be regenerated if needed
> (such
> are execution plans for cursors for example), thus Oracle can
> automatically
> reuse these chunks for others (of course when these chunks arenīt in
> use,
> thus unpinned). So when this information orignially stored in
> recreatable
> chunk is needed again, a callback function is executed, to recreate
> the
> contents in a chunk - callback functions containing instructions to
> recreate
> the information are registered for each recreatable chunk in heap
> manager's
> area if I recall correctly...)
> > Information about unpinned recreatable chunks are held in heap LRU
> lists.
>
>
> --
> Please see the official ORACLE-L FAQ: http://www.orafaq.net
> --
> Author: Tanel Poder
> INET: tanel.poder.003_at_mail.ee
>
> Fat City Network Services -- 858-538-5051 http://www.fatcity.com
> San Diego, California -- Mailing list and web hosting services
> ---------------------------------------------------------------------
> To REMOVE yourself from this mailing list, send an E-Mail message
> to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in
> the message BODY, include a line containing: UNSUB ORACLE-L
> (or the name of mailing list you want to be removed from). You may
> also send the HELP command for other information (like subscribing).
Have a nice day !!
Best Regards,
K Gopalakrishnan,
Bangalore, INDIA.
--
Please see the official ORACLE-L FAQ: http://www.orafaq.net
--
Author: K Gopalakrishnan
INET: kaygopal_at_yahoo.com
Fat City Network Services -- 858-538-5051 http://www.fatcity.com
San Diego, California -- Mailing list and web hosting services
---------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from). You may
also send the HELP command for other information (like subscribing).
Received on Tue Jan 06 2004 - 09:44:26 CST