Archive for Agrumas

Failų sistemos greitaveika

Darbe kilo diskusija kiek failų optimaliausia saugoti kataloge ir ar iš viso jų skaičius turi įtakos. Panašiu klausimu jau buvau domėjęsis anksčiau, tada orientavausi į ext3 failų sistemą. Laikiausi nuomonės, kad viename kataloge laikyti daug failų yra blogis, iš kažkur galvoje turėjau 10k optimalų failų kiekį. Šiandien plačiau pasidomėjau šiuo klausimu ir padariau keletą išvadų.

Atnaujinti senas failų sistemas(ext3, ext2…)

Tai atlikti gali būti sudėtinga ir pavojinga, todėl verta tik jei netenkina esamos failų sistemos apribojimai(trumpas palyginimas). Perėjus prie kitos FS gali padidėti sistemos greitaveika, stabilumas, taip pat sumažėja apribojimų. Ext4 failams saugoti naudoja hashed B-tree struktūra, todėl failai pasiekiami per O(logn).

Į dabartinių failų sistemų apribojimus galime nekreipti dėmesio, bet…

Failų sistema sugeba saugoti daug failų viename kataloge ir rasti nurodytą, be didelių greitaveikos nuostolių, tačiau problemos prasideda jei norime atlikti veiksmus reikalaujančius katalogo skenavimo – pvz paieškos. Įrankiai kaip ls ir find dirbs ilgai nes atliekamas rikiavimas(jei ls nenurodyta -U), o vykdant shell’e gali negauti rezultatų dėl ‘Argument list too long’. Taip pat sudėtingėja atsarginių kopijų darymas.

Katalogų gylis

Katalogų gylis yra svarbus, įdomumo dėlei jis turi ir limitus: ext3 – 32000, ext4 – 64000. Apžvelgus greitaveikos testus(lyginama trijų lygių, po 20 subkatalogų kiekviename su 10 lygių gyliu po 3 subkatalogus) matome, kad vykdyti veiksmus su daug į gylį besitęsiančių katalogų trunka ilgiau, nei su mažesniu skaičiumi.

Failų skirstymas

Pasirinkus skirstyti failus reikia nuspręsti kokią strategiją naudoti. Pateikiu tris su kuriomis man teko susidurti.

Pagal laiką

Tinka failams, kurių skaičius varijuoja mažai tam tikrame laiko periode, pvz logai. Juos galima saugoti katalogų struktūroje: root/metai/mėnuo/diena/…

Hash reikšmę(maišos funkcijos rezultatą)

Normalizuojant failo pavadinimus dažnai naudojamos maišos funkcijos. Tokiu atveju labai patogu katalogams pavadinti rinktis hash funkcijos rezultato kelis ženklus. Kiek ženklų pasirinkti priklauso nuo saugomų failų skaičiaus. Pasirinkus md5 algoritmą ir 2 ženklus gausime 16*16=256 skirtingus sub katalogus, laikant kad md5 nuo smulkių duomenų pakeitimų sugeneruoja visiškai skirtingas hash reikšmes ir kiekvienas simbolis vienodai tikėtinas, galime laikyti, kad po tuos katalogus failai pasiskirstys daugmaž tolygiai.

Pavyzdys:

Pavadinimas – MD5 reikšmė – katalogas saugojimui
namas.txt – 60660294491999df621a26cfb7d35818 – root/60
projektas.jpg – 97c6702a0ba91219dc1456bccac88ea9- root/97

Nuoseklią reikšmę

Ne visada galime sumaišyti failus, pvz saugumo sumetimais viename kataloge privalo būti tik vieno asmens failai. Tokiu atveju geras sprendimas dalinti nuoseklią reikšmę – vartotojo id. Tarkim viename sub kataloge nenorime turėti daugiau nei 30000 vartotojų katalogų, tai daliname iš to skaičiaus. Jei vartotojo id 20, jo failus saugosime sub kataloge round(20/30000) – /root/0/20

 

Šaltiniai:

http://serverfault.com/questions/49684/linux-filesystems/49716#49716

http://stackoverflow.com/questions/466521/how-many-files-in-a-directory-is-too-many/466728

https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout#Hash_Tree_Directories

http://unix.stackexchange.com/questions/78157/what-is-the-cost-of-deeply-nested-folders-in-ext4

http://lwn.net/Articles/400629/

http://events.linuxfoundation.org/slides/2010/linuxcon2010_wheeler.pdf (EXT3, EXT4, XFS, BTRFS greitaveikos palyginimas)

http://stackoverflow.com/questions/8238860/maximum-number-of-files-folders-on-linux

Dėsniai

Jei manote, kad sunku priversti žmones laikytis eismo taisyklių, tai įsivaizduokite, kaip reiktų įtikinti asteroidą judėti elipse.
S. Hawking ir L. Mlodinow, „Didysis projektas“

Boom De Yada

Always here

When you are sad, just look at the sky and find the brightest star. If you can’t find it, don’t worry for it’s just there somewhere, hidden, just like me. I may not always show up but I’m always here for you.

Ši citata man labai artima, planavau ją čia parašyti prieš porą mėnesių su pastraipa teksto, bet mintys susigulėjo ir liko tik citata :D Ji derinasi prie kitų dviejų citatų :)
O šį kartą parašyti norėjau užtikęs Vinco Mykolaičio Putino eilėraščio fragmentą:

Pažvelgęs į tą neaprėpiamą plotą,
Į dangų ir žemę, ir tolyje jūrą miglotą,
Nustebęs sakau: O koks gi tu menkas,
Ir koks tu didingas žmogau

Perskaičius iškart prisiminiau I. Kantą:

Du dalykai mano sielą pripildo vis didesnio susižavėjimo ir pagarbos – žvaigždėtas dangus virš manęs ir moralės dėsnis manyje

Vienas buvo poetas ir prozininkas, kitas filosofas. Juos skiria apie šimtas metų. Abu jie kalba apie tą patį – žmogaus dvilypumą – žmogaus menkumą ir didingumą. Putinas tiesiogiai įvardindamas, eilėmis, o Kantas netiesioginiu palyginimu. Bet ne nagrinėti susiruošiau, o pasidalinti mintimis. Negi nauja yra gerai pamiršta sena? Argi neatsiranda nieko naujo, esminio? Pavyzdžiui Aristotelis suformulavo visus pagrindinius filosofinius klausimus. Arba Leukipo(500–440 m. prieš mūsų erą) mintis, jog pasaulis sudarytas iš begalinio skaičiaus nuolat judančių elementų rūšių ir begalinės šių elementų formų įvairovės. Tai beveik tas pats, kas mūsų elementariosios dalelės pagal standartinį modelį: kvarkai, leptonai ir bozonai. Skiriasi tik tai, kad mes jas sugrupavome ir aprašėme kaip jos turėtų elgtis. Žinoma, kai kurios aprašytos dar nepastebėtos… Atėjo toks laikas, kai galime suskaidyti į smulkiausias dalis iš ko esame padaryti, bet kaip veikiame vis dar neaišku… Vis dar atliekame bandymus/spėjimus, kartais ir aklus norėdami atrasti vaistą nuo tam tikros ligos. Arba net nežinome kaip tiksliai atpažįstame kvapą, viena iš teorijų kad kai kvapo molekulė pakliūna ant receptoriaus, iš jos ištuneliuotas elektronas gali sukelti receptoriaus signalų kaskadą, kurią smegenys interpretuoja, kaip kvapą. Ir vėl kvantika… Mane žavi kiek žmogus gali pažinti ir jo neblėstantis noras pažinti/atrasti/suprasti…

451 Farenheito

Neprašyk garantijų, neprašyk saugumo – tokio gyvūno niekuomet nebūta. – Ray Bradbury

Zeitgeist 2011: Year In Review

Šį kartą nusivyliau Google metų apžvalga, buvo panašiau į įprastą Google produktų reklamą… Prieš Google reklamas nieko blogo neturiu, man jos labai patinka, bet iš Zeitgeist norėjosi daugiau…

Žavu…

Kai vaikas ką nors nupiešia, juk neklausi popieriaus, kas jame pavaizduota.

– Jostein Gaarden, Sofijos pasaulis

Zeitgeist 2010

Šiandienos valandos persukimas į priekį sukėlė labai daug minčių. Iš pradžių mintys krypo į  Rusiją, kuri daugiau nesukios laikrodžio rodyklių, vėliau į  konfliktą Libijoje. Taikdarių veiksmai man pasirodė neapgalvoti… Neskraidymo zona įvesta kai sukilėliai jau buvo užspausti į kampą, dabar sunaikinus dalį Muammar Gaddafi priešlėktuvinės gynybos objektų, Vakarų šalys rinksis spręsti ką daryti toliau. Japonijos nelaimė atrodo blanksta prieš įvykius Naftos pasaulyje. Daug įvyko per šiuos metus, nors jų praėjo tik trys mėnesiai!!! Tikriausiai todėl panorau dar kartą pažiūrėti Zeitgeist 2010 video: