db buffer management
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 PresentationTRANSCRIPT
DB Buffer ManagementDB Buffer Management
LEIC-Tagus – TDB 05/06LEIC-Tagus – TDB 05/06
Bruno Azenha nº 51377Bruno Azenha nº 51377
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
ÂmbitoÂmbito
Query Optimizationand Execution
Relational Operators
Files and Access Methods
Buffer Management
Disk Space Management
DB
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
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
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!
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
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
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
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)
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
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
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
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