Thread Previous • Date Previous • Date Next • Thread Next |
Klaus S. Madsen wrote:
On Mon, Jul 12, 2004 at 22:26:51 +0200, Baldur Norddahl wrote:Netop database transaktions loggen er et eksempel hvor cachen typisk vil indeholde nok data til at genererer parititet uden yderligere læse operationer. Performance bliver derved ikke meget dårligere end kun en disk.Stadigvæk. Man bruger ikke RAID-5 til transaktions log, pga. skrive performance. Kig i enhver database performance guide.
Jeg er ikke religiøs. Jeg foretrækker at teste om det holder, og jeg har ikke oplevet dårlig performance ved at køre postgresql transaktions log på et raid5 i forhold til at køre det på en raid 1 i samme maskine. Faktisk tværtimod. Loggen har den fordel at der ikke bliver seek'et i den og den bliver skrevet sekvientielt. Bortset fra sync problematikken, som er løst med batteri backup, så er det ideelt til raid 5.
Skulle jeg vælge vil jeg hellere lægge tabelerne på RAID 1 end loggen.
En smart database venter iøvrigt med at synce en transaktion indtil at den har samlet nogle flere op, og så kan det være at man kommer op på nok data til at få fuld gavn af raidets ekstra overførselshastighed. Ihvertfald Postgresql har en parameter hvor man kan indstille hvor lang tid der skal ventes.Databaser der gør det, er ikke transaktions sikre. Det er noget man skal stille sig for øje, og jeg kunne forestille mig at der står noget i den stil i postgresql's dokumentation.
Selvfølgelig er postgresql transaktions sikker. Det den gør er at indbygge et delay fra at du skriver commit; til at den svarer tilbage. Set fra programmets synsvinkel er den bare lidt langsom til at commit'e. På en travl database server er der så en god chance for at andre tråde også har kørt en commit og at ændringerne dermed kan skrives som en samlet blok. Ud over at være RAID/disk venligt, så øger det antal transaktioner der kan gennemføres drastikt fordi der er fære låse at holde styr på.
Mvh. Baldur
Thread Previous • Date Previous • Date Next • Thread Next |