Vlákno názorů k článku Mazání dat uprostřed souboru od lqw - Povrchni mini clanek kvuli jedne okrajove vlastnosti jadra...

  • Článek je starý, nové názory již nelze přidávat.
  • 22. 9. 2014 20:31

    lqw (neregistrovaný)

    Povrchni mini clanek kvuli jedne okrajove vlastnosti jadra a jeste jen castecne podporovane ? Kandidat pro zpravicku, tohle je mizerie …

    Btw. krome problemu se zarovnanim data versus velikost bloku filesystemu snizuje pouzitelnost obsluha zachovani konzistence formatu ulozenych dat, kterou vidim jako daleko obvyklejsi nez binarni stream.

  • 24. 9. 2014 10:33

    ventYl

    predpokladam, ze tato okrajova vlastnost bola do jadra zanesena kvoli podpore zahadzovania alokovanych blokov v DB systemoch, ktore nezriedka maju velkost internych struktur zarovnanu na maximalne jednotky nasobkov velkosti alokacnych blokov a tam sa takato vec teoreticky za istych okolnosti moze hodit (napr. pri preriedovani TXN logovacich suborov).

    pre pana autora len odkaz: kernel to nepodporuje, pretoze to nie je jeho vec. obecna implementacia na urovni kernelu by bola rovnako junky ako je kazda jedna implementacia v userspace, pretoze proste veci funguju tak, ako funguju. polepit obsah viacerych suborov to nie je len tak. (o.i. napr. z podobneho dovodu neexistuje asi na ziadnom rozumnom systeme syscall implementujuci kopirovanie obsahu suboru).

  • 25. 9. 2014 11:10

    ebik (neregistrovaný)

    Pozor s tim kopirovanim obsahu souboru. Jsou tu volani sendfile a splice, protoze uz nekdo zjistil, ze nema smysl pri kopirovani (ze souboru do sockety a podobne) tahat ty data do userlandu.

    Nektere implementace filesystemu podporuji sdileni casti souboru (treba spolu s copy-on-write)(i kdyz je to treba jen po blocich), a mam za to, ze maji nejakou utilitu, ktera to na namountovanem fs umi vyuzit (takze musi nejak jadru vysvetlit, ze nebo co tam delaj, i kdyz treba pres nejake ioctl).

    Nicmene to co by se libilo mne by bylo, tady mas soubor: rozrizni ho na dva na tomhle offsetu (zarovnanem treba na bloky), nebo naopak: tady mas dva soubory, nastav tomu prvnimu velikost na offset + delka druheho (pokud je kratsi) a presun obsah druheho na ten offset. Volitelne pak data v prvnim, ktere jsou od offsetu dal posun o delku druheho (zase offset i delka musi byt zarovnana na bloky).

    U vetsiny filesystemu by to byla jen nejaka rychla manipulace s tabulkou bloku nebo extentu. Jedina potiz je v tom, ze vyuziti techto funkci je docela minoritni, ja bych asi jejich zacleneni neobhajil. Stejne tak mi prekvapuje, ze v clanku zminena feature se dostala do kernelu jako obecne volani. Spis bych pochopil, kdyby to bylo nejake FS-specificke ioctl, ti co tu funkcionalitu potrebuji, si nainstaluji fs, ktery to podporuje. Zda se, ze hralo roli to, ze je to vlastne jen pridani jednoho flagu.