Adaptív előolvasás

Címkék

Wu Fengguang egy a Linux kernelhez készült, adaptív előolvasást (adaptive readahead) megvalósító patchset karbantartója. Jelenleg a patchset a 12. kiadásánál tart (közben már meg is jelent a 14-es kiadás, amely sokat fejlődött Andrew Morton, Nick Piggin, és mások hozzászólásai alapján). Az elmúlt hat hónapban alkalmazások széles körén tesztelték, jelentős mértékben csiszolták, ezért Wu azt kérte, hogy fontolják meg az -mm kernelfába való felvételét.

Az adaptív előolvasás egy a Linux kernel által alkalmazott technika, amelynek célja, hogy javítsa a file olvasási teljesítményt. Ha a kernelnek oka van azt hinni, hogy egy adott file szekvenciális olvasásra kerül, akkor megpróbál a file-ból blokkokat a memóriába lapátolni azelőtt, mielőtt az alkalmazás kérné őket. Ha az előolvasás sikeres (valóban olyan blokkok kerültek memóriába olvasásra, amelyre szükség van), akkor az javíthatja a rendszer áteresztő-képességét. Viszont ha az előolvasás hibás (szükségtelen blokkok kerültek a memóriába), akkor az felesleges IO műveleteket generál, és olyan memória lapokat foglal le feleslegesen, amelyeket más műveletekre is fel lehetne használni.

A Linux kernelnek van saját jól ismert és beállított előolvasási logikája. A Wu Fengguang-féle kód az ígéret szerint egy sokkal komplexebb és sokkal funkciógazdagabb előolvasást tesz lehetővé. Noha az általa készített mechanizmus megpróbál ügyes és memória-hatékony lenni, a való világban előforduló, jelentősen eltérő, sokszínű alkalmazások miatt nem mindenkinek lesz előnyös a használata.

Wu a patchset mellé benchmark eredményeket is küldött az LKML-re. Levelében az olvasható, hogy az adaptív előolvasás jelentősen javítja a PostgreSQL teljesítményét. Andrew Morton - az -mm fa karbantartója - azon csodálkozott, hogy ha az előolvasás ilyen nagyságú javultást eredményez a PostgreSQL teljesítményében, akkor a PgSQL fejlesztők miért nem implementálják ezt a logikát magába az adatbázis-kezelőbe. Miért kellene a PgSQL-nek arra alapoznia, hogy az alatta futó kernel biztosítja ezt a funkciót?
Erre az a válasz érkezett, hogy a PgSQL fejlesztők szeretnék a kódjukat minél portolhatóbbnak megtartani, sokkal bonyolultabb lenne minden egyes operációs rendszerhez testreszabott előolvasási logikát implementálni. A patchset támogatói megjegyezték, hogy az adaptív előolvasásból adódó teljesítményjavulás jelentős, 30% körüli, és messze nem csak a PostgreSQL profitálna belőle (hanem egyes visszajelzések szerint az olyan egyszerűbb programok is, mint például a "cp").

A KernelTrap cikke itt.

Hozzászólások

"és messze nem csak a PostgreSQL profitálna belőle"
Hat nyilvan. En csak azt nem ertem, hogy akkor a srac miert nem csinalt mas RDBMS-ekkel is benchmarkokat. Ha mindenaron meg szerette volna gyozni AM-et, akkor ez lett volna a legmeggyozobb. 4-5 benchmark kulonbozo alkalmazasokkal (nem csa RDBMS) es maris nem lenne min kotozkodni. :-)

bra-t megkerjuk, hogy tomje meg a T2000-et szpiddel, vallassa meg az uj algoritmussal es irjon rola egy szep cikket, hogy AM-nek legyen min csamcsognia. :-D

---------------------
Ригидус а бетегадьбол

Jah, a Postgresql-esek vakon abban bíznak, hogy az oprendszer mindent kioptimalizál alattuk, csak amikor az oprendszer fejlesztői ezt nem akarják, az ciki :)

Nincs valami mérés, hogy ugyanazon a vason, különböző oprendszerek alatt a postgresql hogyan teljesít?

nyílván aminek fontos a teljesítmény és igény is van rá, ott érdemes és kell magába az alkalmazásba beleimplementálni,
de ha van egy módszer - például ez - hogy egy csomó cucc beleértve a cp-t is valamivel gyorsabb legyen nem értem hogy lehet fanyalogni, tegyék bele a kernelbe azt kész

"adaptív előolvasás"

Javaslom vegyük be az adaptív előreolvasást a magyarított kifejezések közé.

Ezt most konstruktív szándékkal mondom. Nem akarlak baszogatni trey, de ez megint báncsa a fülemet. :)

Nyelvújítani csak jól, vagy sehogy. Inkább maradjunk az angol verziónál ha nem tudunk jó magyarított verziót alkotni.

"Nyelvújítani csak jól, vagy sehogy. Inkább maradjunk az angol verziónál ha nem tudunk jó magyarított verziót alkotni."

Ezzel nem értek egyet. Kis túlzással inkább bármi, mint az angol verzió. Majd a nyelv maga eldönti, akarja-e használni vagy sem. Lásd pl. a honlap szót, ami teljesen elfogadott lett, és szerintem találó is. Annó helyette inkább az ottlap-ot javasolták nyelvészeink...