Theodore Tsâo (Teodor Tsâo), ext4 failisĂŒsteemi looja, mĂ”tiskluste tĂ”lge ext4 arendamisest, BcacheFS failisĂŒsteemist, Linuxi tuumast, ZFS-ist, kĂ€itumiskoodeksist ja failisĂŒsteemidest ĂŒldiselt:
Ext4 arendamisest.
Iga ext4 tuuma vĂ€ljaande arendusse panustavad ĂŒle poole tosinast inimest. Praegu kulub suur osa minu ajast koodi ĂŒlevaatamisele, testimisele ja testimisrakenduse tĂ€iustamisele {kvm,gce,qemu,android}-xfstests. Ja ma toetan end vĂ€ga 2-3 teise arendaja tööle, kes töötavad SUSE ja IBM-is, kes aitavad mind koodi ĂŒlevaatamisel.
BcacheFS-ist
Ausalt öeldes ei ole bcachefs tĂ€ielikult ĂŒksik projekt â nĂ€iteks oli Kent autori Ă”igusi 72% patĆĄidest tuuma vĂ€ljaannete 6.11 ja 6.12 vahel, samas kui ext4 jaoks sama ajavahemiku jooksul olin mina autori Ă”igusi 0%. See on seepĂ€rast, et ma olen kindlalt veendunud, et programmeerimine on meeskonnatöö ja minu töö tehnilise juhina on anda ext4 osalistele vĂ”imalus anda endast parim failisĂŒsteemi tĂ€iustamiseks. Me korraldame iganĂ€dalasi konverentse ja Derrick Wong, XFS-i vanem arendaja ja endine XFS-i hooldaja, osaleb nendel konverentsidel â ja ma olen tuntud kui abiline XFS-i testimise kĂŒsimustes, samas kui Derrick aitas mind erinevates ext4 testimise kĂŒsimustes ja isegi vaatas lĂ€bi paar ext4 patĆĄi. Me teeme koostööd ja see on hea.
Ma lasen teistel otsustada, kas nad soovivad usaldada oma andmeid kellelegi, kes on ĂŒksik kuum programmeerija, kes vĂ”ib olla andekam kui mina, kuid annan teile vihje â te saate âpettudaâ, kaasates meeskonna probleemi lahendamisse. Pole vajalik teha seda ĂŒksi. Loomulikult peate teadma, kuidas teistes parimat esile tuua, ja peate koos töötama. Ja viisakas suhtumine ĂŒksteisse meilistes ei tee ka paha.
Kernist, CoC-ist, vÔimalustest ja ext4 tulevikust
Ext4 tĂ”epoolest saab uusi funktsioone, kuid need on need, mida ettevĂ”tted on valmis rahastama, kuna funktsiooni arendamise tasuvus on mĂ”istlik kulude ja kasu seisukohalt. NĂ€iteks oli fscrypt ja juhtumid, kus ei arvestata suurtĂ€hti, funktsioonid, mis olid kasulikud Androidile ja Chrome OS-ile, ning need finansseerisid vĂ€hemalt osaliselt need arendajate rĂŒhmad (ka Steam muretses suurtĂ€hti ignoreerimise pĂ€rast ja toetas ĂŒhte inseneri). Soovime lisada katkematu kirjutamise (untorn) toe, kuna see parandab andmebaaside jĂ”udlust pilveemuleeritavatel plokkseadmetel, kus saab garanteerida 16k aatomkirjeid, vĂ”imaldades elimineerida kahekordse vahemĂ€lu MySQL-is ja PostgreSQL-is.
(Tegelikult saavad Amazon ja Google seda teha oma andmebaasi tootes, tehes oletusi selle kohta, kuidas toimivad Amazon EBS ja Google Persistent Disk, kuid soovime seda teha ĂŒldisemalt, mis on pikaajaliselt paremini toetatav). See ei ole nii atraktiivne kui sellised asjad nagu reflinks, kuid investeeringute tasuvus on palju lihtsam pĂ”hjendada, kuna kulud on madalamad (vĂ€hem töötlust, testimist ja kvalifitseerimist ettevĂ”tte kasutuse jaoks), samuti on eeliseid kergem kvantitatiivselt hinnata. Asjad nagu "ma saan sÀÀsta XX programmeerimise inseneride palkasid viis aastat", on selliste jĂ”udluse tĂ”stmise funktsioonide puhul palju kergemad.
Selle vastu on reflinks lĂ”busad, kuid ma ei suutnud leida klienti, kes oleks valmis arenduskulusid katma, vĂ”i ettevĂ”tet, kes arvaks, et nende kliendid ostaksid rohkem nende toodet, kui nad lisavad reflinks ext4-le. See vĂ”ib tunduda kohutavalt korporatiivne, kuid on lugu sellest, kuidas ZFS-i insenerid alustasid projekti nullist, kĂŒsides juhtkonnalt luba ja saamata mĂŒĂŒgiosakonnalt ettepanekuid, ning tutvustasid Sunile seda, mis tegelikult oli toimunud fakt.
Kuulub suurepĂ€raselt, kuid kui meenutada, et lĂ”puks hakkas Sun raha kaotama, kuni nad pidid ennast teisele ettevĂ”ttele mĂŒĂŒma, ja tegelikult ei eksisteeri ZFS-i toetav inseneriorganisatsioon enam. Umbes sel ajal, kui ZFS vĂ€lja kuulutati, osalesin ma kogu ettevĂ”tte uuringus, et uurida, kas on mĂ”ttekas investeerida failisĂŒsteemi funktsioonidesse AIX-is ja Linuxis - ning jĂ”udsime jĂ€reldusele, et ei, investeeringutasuvus on madal ja uued failisĂŒsteemi funktsioonid ei toovad kaasa klientide arvu kasvu, kes ostavad riistvara, tarkvara vĂ”i IBM-i sĂŒsteeme. VĂ”ib-olla olid IBM-il rasked ajad, kuid nad eksisteerivad endiselt, Sun aga mitte.
Sel ajal kogunesid mitmete Linuxi ettevĂ”tete esindajad, et vĂ€lja mĂ”elda, kuidas Linux ZFS-iga vĂ”istlema hakkab. Just selles kohtumises esitati idee, et btrfs on pikaajaline lahendus, samas kui ext4 on lĂŒhiajaline lahendus, mis toetab selliseid asju nagu reaalajas suuruse muutmine, 64-bitised plokkinumbrid ja muud asjad, mis olid traditsioonilistes Legacy Unix OS-is, kuid ei olnud ext3-s.
Selles kohtumises paluti mul mÀÀratleda, mida on vaja tĂ€iesti uue failisĂŒsteemi loomiseks. Ma tegin uuringu, vaadates, kui palju vaeva oli vaja selliste failisĂŒsteemide, nagu IBM-i GPFS ja JFS, Digitali advfs loomiseks, hinnates, kui palju Sun kulutas ZFS-i loomisele ja selle failisĂŒsteemi tootmisse viimisele. Vastus, mille ma sain, oli umbes 100 inimeset aastat, kusjuures madalaim hindamine oli 50 inimeset aastat ja kĂ”rgeim hindamine 200 inimeset aastat (aga see oli GPFS-i jaoks, mis oli klastrifailisĂŒsteem ja seetĂ”ttu palju keerulisem).
Teatasin sellest koosolekul, ja ĂŒks Intel'i vaneminsener ĂŒtles: âEi, Ă€rge rÀÀkige sellest juhtidele, sest nad ei kiida projekti kunagi heaks! Ăelge neile, et btrfs on valmis 18 kuu pĂ€rast.â Ma luban inimestel ise otsustada, millal btrfs saavutab âettevĂ”tte kasutuse valmisolekuâ staatuse, eriti nende uute atraktiivsete tĂ€iendavate funktsioonide jaoks, mis pidid konkurentideks olema ZFS-ile, kuid ma ei arva, et arutelu alla kuulu oleks, et see ei juhtunud 18 kuu jooksul.
Ja enne kui Sun lagunes, keelasid paljude ettevĂ”tete esindajad, kes osalesid koosolekul, inseneride kaasamise btrfs arendamisse, mis loomulikult ei aidanud olukorda. Kuid tĂ”enĂ€oliselt oli see seotud sellega, et ettevĂ”tted on ratsionaalsed organisatsioonid, kes teevad oma investeeringute tasuvuse otsused ning uue failisĂŒsteemi rahastamine ei olnud sama mĂ”ttekas kui rÀÀkida inimestele, et Linuxil on vastus ZFS-ile.
Tagasi vaadates vĂ”ib öelda, et kuigi ZFS-il olid mĂ”ned tĂ”eliselt head funktsioonid, ei olnud need piisavad, et sundida enamiku kasutajaid valima Solaris x86 ostmise asemel palju odavamaid x86 platvorme ja Linuxi installimist. Ja kui Sun otsustas proovida OpenSolaris ja Solaris x86 strateegiat, oli juba liiga hilja. VĂ”rguefektid olid tohutud ning x86 strateegia ei andnud vastust kĂŒsimusele, kuidas ĂŒks ettevĂ”te, Sun, suudaks maksta palku kĂ”igile neile ĂŒliandekatele inseneridele, kes töötasid Solarisel. 5000 dollari eest x86-serveri ostmine ei too suurt kasumimarginaali vĂ”rreldes serverilt 100 000 dollari maksva SunFire E10k Sparciga, mida Sun nimetas 'punktiks' 'dot Com' aega.
Asi on selles, et inseneritöö reaalses maailmas on kompromiss ja Ă€rireaalsused on osa sellest kompromissist. Ma ei vabanda selle eest, et eelistan sĂŒĂŒa toitu ja et soovin teenida piisavalt raha, et ĂŒhel pĂ€eval pensionile jÀÀda. See tĂ€hendab, et pean hĂ€sti mĂ”istma, kuidas ma oma tööandjale vĂ€hemalt kĂŒmme korda suuremat kasu toon kui minu palk. Kui ma suudan seda teha, töötades samal ajal avatud lĂ€htekoodiga ja aidates teistel ettevĂ”tetel raha teenida, et nad oleksid valmis panustama ext4-sse, siis see on osa vĂ€ljakutsest ja pĂ”hjus, miks mulle avatud lĂ€htekoodiga töötamine meeldib.
Ja, rÀÀkides kĂ€itumiskoodist, ĂŒtlen, et peaaegu kĂ”ik peamiste failisĂŒsteemide hooldajad toetasid Koodi mitte mingite nĂ”rkade liberaalsete kaalutluste tĂ”ttu. See on sellepĂ€rast, et me vajame iga inseneri, kes on valmis meie projektiga panustama, ja enamus meist on nĂ€inud inimesi, kes keeldusid Linuxiga töötamast ja lĂ€ksid ĂŒle teistele operatsioonisĂŒsteemidele (ma tean ĂŒhte inimest, kes lĂ€ks Windowsi ja oli vÀÀrtuslik Linuxi kernel arendaja IBM Linux Technology Centeris) vĂ”i töötasid sisemiste projektide kallal, aga mitte nende kallal, mis nĂ”udsid suhtlemist LKML-iga, kuna mĂ”ne inimeste toksiline keskkond postitusloendis.
MĂ”nes olukorras olid mured pĂ”hjendamatud; nĂ€iteks karjus Linus vanema arendaja peale, kes tegelikult pidi paremini teadma ja kellel olid enamikul juhtudel isiklikud kohtumised Linusega ning neil olid juba vĂ€ljakujunenud suhted. Probleem on selles, et algajad ei teadnud seda ja kartsid â "kuidas kui Linus alandab mind avalikult sama, nagu ta tegi Steve'iga", mĂ”istmata, et praktikas seda ei juhtu. Just seetĂ”ttu on meil CoC; see ei ole meie, vanemate inseneride jaoks, vaid nooremate inseneride toetamiseks meie meeskondades, keda me tahame koolitada, et nad asendaksid meid mingil hetkel, kui on aeg pensionile jÀÀda, vĂ”i kui meid sĂ”idab auto ĂŒle, vĂ”i me lahkume sellelt maailmalt muul viisil.
Ărge unustage 50-100 inimesetöö aastat, mis on kulutatud failisĂŒsteemi loomisele, mis on valmis kasutamiseks ettevĂ”tte keskkonnas. Me vajame kĂ”iki insenere, keda saame kaasata, ja paljud meist teevad lisatööd oma vabal ajal, sest me ei ole ĂŒkskĂ”iksed. Kvaliteetse failisĂŒsteemi loomine on meeskonnatöö ja me vajame iga andeka inseneri, keda suudame saada. Isegi kui ĂŒks insener on super 10-kordne programmeerija, kui ta lĂ”puks peletab eemale hulga teisi insenere, kes vĂ”iksid testimise, jĂ”udluse hÀÀlestamise jne kallal töötada, ei tasu see lihtsalt Ă€ra, et lasta kellegil olla tĂ”bras.
Allikas: opennet.ru
