1 / 14

DB Buffer Management

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.

diza
Télécharger la présentation

DB Buffer Management

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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

  3. Query Optimization and Execution Relational Operators Files and Access Methods Buffer Management Disk Space Management DB Âmbito

  4. Gestão de Buffers • A informação é guardada em disco e chamada para a memória central quando é necessária • Características nos sistemas UNIX: • Todas as operações I/O passam pelo buffer pool • Política LRU (ou aproximação) para substituições de paginas • Prefetch nos acessos sequenciais • Transparência para os clientes

  5. Desempenho • Overhead pode causar grande degradação do desempenho • Overhead: para cada leitura página • Chamada ao sistema • Transferência de informação in/out ao núcleo • 5000 instruções em UNIX para transferir 512bytes de disco • Os DBMSs implementam um buffer pool próprio para reduzir o overhead

  6. DB Gestão de Buffers em DB Page Requests from Higher Levels BUFFER POOL disk page free frame MAIN MEMORY DISK choice of frame dictated by replacement policy • DBMS precisa dos dados na RAM • O Buffer Mgr esconde o facto de nem todos os dados estarem na RAM!

  7. Políticas de substituição • A frame a ser seleccionada depende da política de substituição: • LRU, MRU, Clock, etc. • A política de substituição pode ter grande impacto no número de I/Os, dependendo do padrão de acessos • Padrões típicos de acesso: • Scans sequenciais a blocos que não voltarão a ser referenciados • Scans sequenciais cíclicos • Acessos aleatórios a blocos que não voltarão a ser referenciados • Acessos aleatórios

  8. Política LRU • Least Recently Used (LRU) • Para cada página no buffer pool, manter um timestamp de quando passou a “unpinned” • Susbtituir a frame com o valor mais antigo • Política comum e de fácil compreensão. Funciona bem para acessos repetidos a páginas populares • Problemas • LRU + scans sequenciais repetidos • # buffer frames < # paginas em ficheiro implica que cada pedido desencadeia um I/O

  9. Prefetch • DBMS consegue saber os dados a que vai aceder no futuro • Nem sempre são sequenciais • A estratégia é ir buscar páginas antes de serem necessárias • Mas uma má política de substituição pode levar à substituição de páginas que ainda sejam precisas

  10. Acesso a páginas (1) • Tabela do buffer pool contém: <frame#, pageid, pin_count, dirty> • Se a página desejada não estiver na pool: • Escolher uma frame para ser substituída (somente páginas “un-pinned”) • Se a frame estiver “dirty” guardá-la em disco • Ler a página para a frame seleccionada • Incrementar “pin” da página e devolver o seu endereço NOTA: É possível que ocorra “pre-fetch” de várias páginas quando o Buff Manager consegue prever o padrão de acessos (por ex acessos sequenciais)

  11. Acesso a páginas (2) • Pedidos às páginas têm de terminar com “unpin” e a indicação se esta foi alterada (através da flag “dirty”) • Uma página na pool pode ser pedida várias vezes: • Controlo do número de acessos através do “pin count” • Uma página é candidata a substituição quando pin_count == 0 • Gestor de recuperção pode fazer com que existam I/Os adicionais ao substituir uma frame

  12. Buffers DBMS vs. Buffers SOs Os SOs fazem gestão de disco e memória. Porque não recorrer a estes? • Os DBMS requerem buffer managers que permitam: • Efectuar pin de uma página no buffer • Forçar a escrita para disco • Efectuar escritas ordenadas (recuperação!) • Escolher a política de substituição • Efectuar pre-fetch de acordo com os padrões de acesso típicos nas DB

  13. Conclusões • O buffer manager é o responsável por gerir as trocas de informação disco-memória • DBMS necessitam de funcionalidades não disponibilizadas pelos buffers managers dos SOs • Boa política de substituição é essencial para assegurar um bom desempenho

  14. Bibliografia • “Operating System Support for Database Management”, Stonebraker, 1981 • “An evolution of buffer management strategies for Relational DB Systems”, Chou and DeWitt, 1985 • Database Management Systems, Raghu Ramakrishnan • OS Supportf for DBMS, Ailamaki, http://www.cs.cmu.edu/afs/cs/academic/class/15721-f01/www/lectures/OSSupport.pdf

More Related