Provided is a system, method, and program for performing a reverse scan of
an index implemented as a tree of pages. Each leaf page includes one or
more ordered index keys and previous and next pointers to the previous and
next pages, respectively. The scan is searching for keys in the leaf pages
that satisfy the search criteria. If a current index key is a first key on
a current page, then a request is made for a conditional shared latch on a
previous page prior to the current page. If the requested conditional
shared latch is not granted, then the latch on the current page is
released and a request is made for unconditional latches on the previous
page and the current page. After receiving the latches on the previous and
current pages, a determination is made of whether the current index key is
on the current page if the current page was modified since the
unconditional latch was requested. The current index key is located on the
current page if the current index key is on the current page. A
determination is then made of whether the located current index key
satisfies the search criteria.
Se è un sistema, un metodo e un programma per l'effettuazione dell'esplorazione d'inversione di un indice effettuato come albero delle pagine. Ogni pagina del foglio include uno o più chiavi ordinate di indice ed indicatori precedenti e seguenti alle pagine precedenti e seguenti, rispettivamente. L'esplorazione sta cercando le chiavi nelle pagine del foglio che soddisfano i test di verifica di ricerca. Se una chiave corrente di indice è una prima chiave ad una pagina corrente, allora una richiesta è fatta per un fermo comune condizionale ad una pagina precedente prima della pagina corrente. Se il fermo comune condizionale chiesto non è assegnato, allora il fermo alla pagina corrente è liberato e una richiesta è fatta per i fermi incondizionati alla pagina precedente ed alla pagina corrente. Dopo la ricezione dei fermi alle pagine precedenti e correnti, una determinazione è fatta di se la chiave corrente di indice è alla pagina corrente se la pagina corrente fosse modificata poiché il fermo incondizionato è stato chiesto. La chiave corrente di indice è situata alla pagina corrente se la chiave corrente di indice è alla pagina corrente. Una determinazione allora è fatta di se la chiave corrente individuata di indice soddisfa i test di verifica di ricerca.