Zpomalujici se Pg

Jan Kasprzak kas na informatics.muni.cz
Pátek Listopad 1 11:45:05 CET 2002


Karel Zak wrote:
: On Fri, Nov 01, 2002 at 10:54:07AM +0100, Horak Daniel wrote:
: 
:  Souhlasim s Danem, jen detail...
: 
: > > - Proc se teda Pg nerozhodne cas od casu ten index prepocitat sam,
: > > 	kdyz uz je jasne, ze je nekde neco spatne.
: 
:  Protoze je to blboucky a pouhy software a nechava dulezita rozhodnuti
:  na uzivately. IMHO je to tak dobre, protoze VACUUM si bere celkem
:  velkou rezii a pokud by si ho system delal dle vlastni uvahy tak by asi 
:  dost lidi mohlo nadavat, ze v prave naprosto nevhodne dobe doslo k
:  zpomaleni systemu tim, ze PostgreSQL by delal neco z vlastni iniciativy.
:  
	:-)

	Ono ve skutecnosti nejde ani tak o to, ze tabulka narusta
(co uz, zejo). Jde o to, ze ten _index_ nejak nefunguje, resp. asi
zahrnuje i smazane polozky nebo tak neco. Protoze i kdyby mel pro tech
1000 radku skakat buhvikde po disku, tak je musim mit nactene behem vteriny
v pameti a behem dalsi vteriny setridene a poslane klientovi. Jenze
podle topu bere prislusny postmaster 100% CPU a tedy stroj neni omezen tim
ze by tabulka byla rozeseta nekde po disku, ale tim ze nekde pocita
nejaky divny index. Dokazu si predstavit, ze to muze fungovat treba
tak blbe, ze se podle primarniho klice dostanu na vsechny verze prislusneho
radku, ktere kdy v tabulce byly, a musim sekvencne vybrat ten pravy, ktery je
samozrejme az na konci.

: > > - Jak tenhle problem odstranit, pokud nechci periodicky po nekolika
: > > 	malo hodinach delat vacuum?
: 
:  VACUUM od 7.2 uz by nemelo byt tak drasticky ukon (pokud to neni
:  VACUUM FULL) a nemyslim, ze by byl problem ho periodicky volat. Je to
:  jen otazka designu aplikace nad PostgreSQL jak ho bude pouzivat a
:  udela-li pro neco takoveho prostor (coz uz ted vi i Michal Krause :-)

	Jde o to, ze vacuum zabere cas kdy je tabulka zablokovana,
pokud se nemylim. Cili u aplikaci, ktere musi mit interaktivni odezvu,
je to fakt nahouby.

: > Napsat storage manager, ktery bude umet "neplatne" radky znovu pouzit -
: > urcite je to v TODO.
: 
:  Ano. Osobne bych to v soucasne dobe oznacil za jeden z nekolika malo
:  nejvetsich problemu (_IMHO_) v PostgreSQL.
:
	Ano. RDBMS je o tom, ze by databazovy stroj mel fungovat vicemene
dobre v jakychkoli aplikacich, cili jako "nastroj pro vsechno". Je pravda,
ze zrovna v me aplikaci se dokazu prizpusobit, a casto updatovany sloupec
vyhodit do jine tabulky, pripadne nekdy v noci volat vacuum, ale ja bych
prece obecne nemel prizpusobovat aplikaci vlastnostem konkretniho pouziteho
RDBMS, ne?

-Y.

-- 
| Jan "Yenya" Kasprzak  <kas at {fi.muni.cz - work | yenya.net - private}> |
| GPG: ID 1024/D3498839      Fingerprint 0D99A7FB206605D7 8B35FCDE05B18A5E |
| http://www.fi.muni.cz/~kas/   Czech Linux Homepage: http://www.linux.cz/ |
|-- If you start doing things because you hate others and want to screw  --|
|-- them over the end result is bad.   --Linus Torvalds to the BBC News  --|


Další informace o konferenci Databases