Next Previous Contents

9. PostgreSQL gestisce database estremamente estesi, più grandi di 200 GB

PostgreSQL è già utilizzato da molte aziende che si appoggiano a grandi database. Si suggeriscono le seguenti tecniche:

9.1 Tipi di CPU: a 32 bit o 64 bit

Quando la dimensione del database supera i 5 GigaByte, le prestazioni delle macchine con cpu a 32 bit decadranno rapidamente. Potete far girare database di 30 GB su cpu a 32 bit, ma le prestazioni saranno scadenti. Le macchine con cpu a 32 bit impongono una limitazione di 2 GB alla RAM, di 2 GB alla dimensione del file system, e altre limitazioni al sistema operativo. Usate il file system speciale per Linux, realizzato da SGI, IBM o HP oppure ext3-fs, per supportare file di dimensioni maggiori di 2 GB su macchine a 32 bit con Linux.

Per database estremamente estesi, è fortemente consigliato l'uso di macchine a 64 bit come le Digital Alpha, Sun Ultra-sparc con cpu a 64 bit, Silicon graphics con cpu a 64 bit, Intel Merced con cpu IA-64, macchine HPUX a 64 bit o macchine IBM a 64 bit. Compilate PostgreSQL per cpu a 64 bit, e potrà gestire database enormi, e grandi query. Inoltre le prestazioni di PostgreSQL, per query su grandi tabelle e grandi database, saranno molto più rapide che su macchine con cpu a 32 bit. Il vantaggio di una macchina a 64 bit, è che potete avere un grandissimo spazio di indirizzamento di memoria, e il sistema operativo può supportare file system molto estesi, può fornire migliori prestazioni con grandi database, può supportare memoria (RAM) molto maggiore, ha maggiori funzionalità, ecc..

9.2 CPU multiple

Per database estesi è consigliabile utilizzare macchine SMP che abbiano 4, 16 o 32 CPU. Alternativamente potete usare box con 4 o 5 CPU singole; in questo caso si deve ripartire il database in 4 o 5 database separati, ed ogni database girerà su una macchina separata. Ogni CPU sarà connessa con una scheda fast ethernet NIC (100MBit). Per esempio: se avete 200 tabelle in un database, potete distribuire 200 tabelle in 4 database da 50 tabelle l'uno. In tal modo, potete distribuire il carico di lavoro equamente tra 4 macchine diverse. Questa è un'alternativa economica a un box di CPU a 4 vie. Per realizzare ciò, dovreste effettuare 'interrogazioni su database multipli', il montaggio di NFS nella LAN, e 'CREATE VIEW' per tabelle in sola lettura. Così ogni CPU "può vedere" tutti i database, cioè tutte le 200 tabelle. In futuro PostgreSQL potrà fornire supporto per 'Query su database multipli'; questa funzionalità (già presente nel TODO, la lista di cose da fare), potrà apparire nell'imminente versione 7.1. Ad esempio, le query tra database multipli, che usano gli alias 'a' e 'b' per i nomi delle tabelle, possono apparire come segue:


select a.col1, a.col2, b.col4, b.col7
from
        database1.mia_tabellaa a, database2.mia_tabellab b
where
        a.col1 = b.col3 and
        a.col4 = b.col9;

update mia_tabellaa
set
        col1 =  b.col2
from
        database1.mia_tabellaa a, database2.mia_tabellab b
where
        a.col4 = b.col9;

9.3 Server di duplicazione

Un server di duplicazione per grandi aziende è disponibile presso http://www.erserver.com, e da http://www.pgsql.com. L'assistenza è venduta ($$$$) commercialmente da PostgreSQL Inc. Utilizzate un server di duplicazione per fornire ridondanza ed elevata disponibilità. Un server di duplicazione è un prodotto complesso e sofisticato.


Next Previous Contents