Bufferpool

Un pool di buffer è un'area di memoria principale che è stata assegnata dal gestore database allo scopo di memorizzare nella cache i dati di tabella e di indice mentre vengono letti dal disco. Ogni database Db2® deve avere un pool di buffer.

Ogni nuovo database ha un bufferpool predefinito definito, denominato IBMDEFAULTBP. È possibile creare, eliminare e modificare ulteriori pool di buffer utilizzando le istruzioni CREATE BUFFERPOOL, DROP BUFFERPOOL e ALTER BUFFERPOOL. Il SYSCAT SYSCAT.BUFFERPOOLS accede alle informazioni per i pool di buffer definiti nel database.

In un ambiente Db2 pureScale® , ogni membro ha il proprio LBP (local buffer pool). Tuttavia, è presente un GBP (group buffer pool) aggiuntivo gestito dalla funzione di memorizzazione nella cache del cluster. Il GBP è condiviso da tutti i membri. Viene utilizzato come una cache per le pagine utilizzate da singoli membri in una istanza Db2 pureScale per migliorare le prestazioni e garantire la coerenza.

Modalità di utilizzo dei pool di buffer

Nota: le informazioni che seguono trattano i pool di buffer in ambienti diversi dagli ambienti Db2 pureScale . I pool di buffer funzionano in maniera diversa negli ambienti Db2 pureScale. Per ulteriori informazioni, fare riferimento a Monitoraggio del pool di buffer in un ambiente Db2 pureScale.

Quando si accede per la prima volta a una riga di dati in una tabella, il gestore database inserisce la pagina che contiene tali dati in un pool di buffer. Le pagine rimangono nel pool di buffer fino a quando il database non viene chiuso o fino a quando lo spazio occupato dalla pagina non viene richiesto da un'altra pagina.

Le pagine nel pool di buffer possono essere in uso o meno e possono essere sporche o pulite:
  • Le pagine in uso sono attualmente in fase di lettura o aggiornamento. Per mantenere la coerenza dei dati, il gestore database consente solo a un agente di aggiornare una determinata pagina in un pool di buffer alla volta. Se una pagina è in fase di aggiornamento, viene acceduto esclusivamente da un agente. Se è in fase di lettura, potrebbe essere letta da più agent contemporaneamente.
  • Le pagine "sporche" contengono dati che sono stati modificati ma non ancora scritti sul disco.
  • Dopo che una pagina modificata è stata scritta sul disco, è ripulita e potrebbe rimanere nel pool di buffer.

Un'ampia parte dell'ottimizzazione di un database implica l'impostazione dei parametri di configurazione che controllano lo spostamento dei dati nel pool di buffer e la scrittura dei dati dal buffer sul disco. Se non è richiesto da un agent recente, lo spazio pagina può essere utilizzato per le nuove richieste di pagina dalle nuove applicazioni. Le prestazioni del gestore database sono ridotte dall'I/O del disco supplementare.