Checkpoint Queue and Write List

zhaozj2021-02-16  98

There is a Dirty List in Oracle (that is, Write List), but at the same time there is Checkpoint Queue. These two things are often confusing. Are they same thing? What is the relationship? Before you elaborate, let's take a look at the description of the master http://www.ixora.com.au/q a/0103/07160329.htmthat information is not quite right. It is more acid to say what there are 10 Lists , because there are 5 types of buffers and there is a mAIN and AUXILIARY list for each type. Also, there is no separate hot list. The hot list is a sublist of the main replacement list. of course, there are separate lists for each . working set (LRU latch set) of buffers You can see all these structures in bUFFERS dumps Here is an extract ... (WS) size:. 10000 wsid: 1 state: 0 (WS_REPL_LIST) main_prev: 32aefbc main_next: 32ae51c aux_prev: 32c94a0 aux_next: 32c94a0 curnum: 10000 auxnum: 0 cold: 32a307c hbmax: 5000 hbufs: 5000 (WS_WRITE_LIST) main_prev: 32c94b4 main_next: 32c94b4 aux_prev: 32c94bc aux_next: 32c94bc curnum: 0 auxnum: 0 (WS_PING_LIST) main_prev: 32c94d0 main_next: 32c94d0 aux_prev : 32c94d8 aux_next: 32c94d8 Curnum: 0 auxnum: 0 (ws_xobj_list) main_prev: 32c94ec main_next: 32c94ec aux_prev: 32c94f4 aux_next: 32c94f4 Curnum: 0 au Xnum: 0 (ws_xrng_list) main_prev: 32c9508 main_next: 32c9508 aux_prev: 32c9510 AUX_NEXT: 32C9510 Curnum: 0 auxnum: 0

Other than the replacement lists, the other lists are for different types of write buffers. From the bottom up they are buffers that have to be written for a checkpoint range call, a checkpoint object call, a ping, or merely because they are dirty. In each case the main list holds buffers which have yet to be written, and the auxiliary list holds buffers for which a write is pending. The auxiliary replacement list holds unpinned buffers for which a write has been completed, and any other buffers that are immediately reusable. The main replacement list is what is commonly called the LRU list. The operation of the LRU list was explained under the heading The 8i buffer cache in the October issue of Ixora News. You may also be interested in the section on DBWn's new tricks in the September issue. These 10 lists are mutually exclusive. Each buffer can only be on one of the lists at a time. For completeness it should also be mentioned that dirty buffers are also on a thread checkpoint queue and a file checkpoint queue. These queues are maintained in first modification (low RBA) order and are used to optimize checkpoint processing. That is, in oracle 8, buffer cache actually there are five major categories lists, plus supplementary lists Total 10 small classes. The four categories (8 small Lists) are collectively referred to as Write List. They record the various status information of Dirty Buffer. And the usual LRU List has only one large class, and the actual common two small Lists. That is, Replacement Lists. In fact, at 9i start versions, Lists has increased, which is roughly 12 small Lists, which is not much here. (Note that the class is not the case, because the number is actually related to the DB_BLOCK_LRU_LATCHES parameter, 9i is hidden parameters) In the 4 largest Write Lists, recorded the state of the buffer (They Are Buffers That Have To Be Written for a Checkpoint Range Call, a Checkpoint Object Call, a ping, or merely Because the isy is dirty.

转载请注明原文地址:https://www.9cbs.com/read-11385.html

New Post(0)