db buffer management

14
DB Buffer DB Buffer Management Management LEIC-Tagus – TDB 05/06 LEIC-Tagus – TDB 05/06 Bruno Azenha nº 51377 Bruno Azenha nº 51377

Upload: diza

Post on 05-Jan-2016

26 views

Category:

Documents


0 download

DESCRIPTION

DB Buffer Management. LEIC-Tagus – TDB 05/06. Bruno Azenha nº 51377. Tópicos. Gestão de buffers Desempenho Gestão de Buffers em DB Políticas de substituição Política LRU Prefetch Acessos a páginas Buffers DBMS vs. Buffers SOs. Query Optimization and Execution. Relational Operators. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: DB Buffer Management

DB Buffer ManagementDB Buffer Management

LEIC-Tagus – TDB 05/06LEIC-Tagus – TDB 05/06

Bruno Azenha nº 51377Bruno Azenha nº 51377

Page 2: DB Buffer Management

TópicosTópicos

Gestão de buffersGestão de buffers DesempenhoDesempenho Gestão de Buffers em DBGestão de Buffers em DB Políticas de substituiçãoPolíticas de substituição Política LRUPolítica LRU PrefetchPrefetch Acessos a páginasAcessos a páginas Buffers DBMS vs. Buffers SOsBuffers DBMS vs. Buffers SOs

Page 3: DB Buffer Management

ÂmbitoÂmbito

Query Optimizationand Execution

Relational Operators

Files and Access Methods

Buffer Management

Disk Space Management

DB

Page 4: DB Buffer Management

Gestão de BuffersGestão de Buffers

A informação é guardada em disco e A informação é guardada em disco e chamada para a memória central quando chamada para a memória central quando é necessáriaé necessária

Características nos sistemas UNIX:Características nos sistemas UNIX:• Todas as operações I/O passam pelo buffer Todas as operações I/O passam pelo buffer

poolpool• Política LRU (ou aproximação) para Política LRU (ou aproximação) para

substituições de paginassubstituições de paginas• Prefetch nos acessos sequenciaisPrefetch nos acessos sequenciais• Transparência para os clientesTransparência para os clientes

Page 5: DB Buffer Management

DesempenhoDesempenho

Overhead pode causar grande degradação Overhead pode causar grande degradação do desempenhodo desempenho

Overhead: para cada leitura páginaOverhead: para cada leitura página• Chamada ao sistemaChamada ao sistema• Transferência de informação in/out ao núcleoTransferência de informação in/out ao núcleo• 5000 instruções em UNIX para transferir 5000 instruções em UNIX para transferir

512bytes de disco512bytes de disco Os DBMSs implementam um buffer pool Os DBMSs implementam um buffer pool

próprio para reduzir o overheadpróprio para reduzir o overhead

Page 6: DB Buffer Management

Gestão de Buffers em DBGestão de Buffers em DB

DB

MAIN MEMORY

DISK

disk page

free frame

Page Requests from Higher Levels

BUFFER POOL

choice of frame dictatedby replacement policy

DBMS precisa dos dados na RAMDBMS precisa dos dados na RAM O Buffer Mgr esconde o facto de nem todos os dados estarem na RAM!O Buffer Mgr esconde o facto de nem todos os dados estarem na RAM!

Page 7: DB Buffer Management

Políticas de substituiçãoPolíticas de substituição A frame a ser seleccionada depende da A frame a ser seleccionada depende da

política de substituição:política de substituição:• LRU, MRU, Clock, etc.LRU, MRU, Clock, etc.

A política de substituição pode ter grande A política de substituição pode ter grande impacto no número de I/Os, dependendo impacto no número de I/Os, dependendo do padrão de acessosdo padrão de acessos

Padrões típicos de acesso:Padrões típicos de acesso:• Scans sequenciais a blocos que não voltarão a Scans sequenciais a blocos que não voltarão a

ser referenciadosser referenciados• Scans sequenciais cíclicosScans sequenciais cíclicos• Acessos aleatórios a blocos que não voltarão a Acessos aleatórios a blocos que não voltarão a

ser referenciadosser referenciados• Acessos aleatóriosAcessos aleatórios

Page 8: DB Buffer Management

Política LRUPolítica LRU Least Recently Used (LRU)Least Recently Used (LRU)

• Para cada página no buffer pool, manter um Para cada página no buffer pool, manter um timestamp de quando passou a “unpinned”timestamp de quando passou a “unpinned”

• Susbtituir a frame com o valor mais antigoSusbtituir a frame com o valor mais antigo• Política comum e de fácil compreensão. Política comum e de fácil compreensão.

Funciona bem para acessos repetidos a Funciona bem para acessos repetidos a páginas popularespáginas populares

ProblemasProblemas• LRU + scans sequenciais repetidosLRU + scans sequenciais repetidos• # buffer frames < # paginas em ficheiro # buffer frames < # paginas em ficheiro

implica que cada pedido desencadeia um I/Oimplica que cada pedido desencadeia um I/O

Page 9: DB Buffer Management

PrefetchPrefetch

DBMS consegue saber os dados a DBMS consegue saber os dados a que vai aceder no futuroque vai aceder no futuro

Nem sempre são sequenciaisNem sempre são sequenciais A estratégia é ir buscar páginas A estratégia é ir buscar páginas

antes de serem necessáriasantes de serem necessárias

Mas uma má política de substituição Mas uma má política de substituição pode levar à substituição de páginas pode levar à substituição de páginas que ainda sejam precisasque ainda sejam precisas

Page 10: DB Buffer Management

Acesso a páginas (1)Acesso a páginas (1) Tabela do buffer pool contém:Tabela do buffer pool contém:

<frame#, pageid, pin_count, dirty><frame#, pageid, pin_count, dirty>

Se a página desejada não estiver na pool:Se a página desejada não estiver na pool:• Escolher uma frame para ser substituída (somente Escolher uma frame para ser substituída (somente

páginas “un-pinned”)páginas “un-pinned”)• Se a frame estiver “dirty” guardá-la em discoSe a frame estiver “dirty” guardá-la em disco• Ler a página para a frame seleccionadaLer a página para a frame seleccionada

Incrementar “pin” da página e devolver o seu Incrementar “pin” da página e devolver o seu endereçoendereço

NOTA: É possível que ocorra “pre-fetch” de várias NOTA: É possível que ocorra “pre-fetch” de várias páginas quando o Buff Manager consegue prever páginas quando o Buff Manager consegue prever o padrão de acessos (por ex acessos sequenciais)o padrão de acessos (por ex acessos sequenciais)

Page 11: DB Buffer Management

Acesso a páginas (2)Acesso a páginas (2) Pedidos às páginas têm de terminar com “unpin” Pedidos às páginas têm de terminar com “unpin”

e a indicação se esta foi alterada (através da flag e a indicação se esta foi alterada (através da flag “dirty”)“dirty”)

Uma página na pool pode ser pedida várias Uma página na pool pode ser pedida várias vezes:vezes:• Controlo do número de acessos através do “pin count”Controlo do número de acessos através do “pin count”• Uma página é candidata a substituição quando Uma página é candidata a substituição quando

pin_count == 0pin_count == 0

Gestor de recuperção pode fazer com que Gestor de recuperção pode fazer com que existam I/Os adicionais ao substituir uma frameexistam I/Os adicionais ao substituir uma frame

Page 12: DB Buffer Management

Buffers DBMS vs. Buffers SOsBuffers DBMS vs. Buffers SOs

Os SOs fazem gestão de disco e memória. Os SOs fazem gestão de disco e memória. Porque não recorrer a estes?Porque não recorrer a estes?

Os DBMS requerem buffer managers que Os DBMS requerem buffer managers que permitam:permitam:• Efectuar pin de uma página no bufferEfectuar pin de uma página no buffer• Forçar a escrita para discoForçar a escrita para disco• Efectuar escritas ordenadas (recuperação!)Efectuar escritas ordenadas (recuperação!)• Escolher a política de substituiçãoEscolher a política de substituição• Efectuar pre-fetch de acordo com os padrões Efectuar pre-fetch de acordo com os padrões

de acesso típicos nas DBde acesso típicos nas DB

Page 13: DB Buffer Management

ConclusõesConclusões

O buffer manager é o responsável O buffer manager é o responsável por gerir as trocas de informação por gerir as trocas de informação disco-memóriadisco-memória

DBMS necessitam de funcionalidades DBMS necessitam de funcionalidades não disponibilizadas pelos buffers não disponibilizadas pelos buffers managers dos SOsmanagers dos SOs

Boa política de substituição é Boa política de substituição é essencial para assegurar um bom essencial para assegurar um bom desempenhodesempenho

Page 14: DB Buffer Management

BibliografiaBibliografia ““Operating System Support for Database Operating System Support for Database

Management”, Stonebraker, 1981Management”, Stonebraker, 1981 ““An evolution of buffer management An evolution of buffer management

strategies for Relational DB Systems”, strategies for Relational DB Systems”, Chou and DeWitt, 1985Chou and DeWitt, 1985

Database Management Systems, Raghu Database Management Systems, Raghu RamakrishnanRamakrishnan

OS Supportf for DBMS, Ailamaki, OS Supportf for DBMS, Ailamaki, http://www.cs.cmu.edu/afs/cs/academic/clhttp://www.cs.cmu.edu/afs/cs/academic/class/15721-f01/www/lectures/ass/15721-f01/www/lectures/OSSupport.pdfOSSupport.pdf