PĂ«rkthimi i reflektimeve tĂ« Theodore Tsâo, krijuesit tĂ« sistemit tĂ« fichiers Ext4, mbi zhvillimin e ext4, sistemit tĂ« fichiers BcacheFS, bĂ«rthamĂ«s Linux, ZFS, kodeksin e sjelljes dhe sistemet e fichiers nĂ« pĂ«rgjithĂ«si:
Për zhvillimin e ext4.
Në çdo botim të bërthamës ext4 kontribuojnë më shumë se një duzinë njerëzish. Aktualisht, pjesa më e madhe e kohës time shkon në rishikimin e kodit, zhvillimin e testeve dhe përmirësimin e aplikacionit të testeve {kvm,gce,qemu,android}-xfstests. Dhe unë mbështetem shumë në 2-3 zhvillues të tjerë që punojnë në SUSE dhe IBM, të cilët më ndihmojnë me rishikimin e kodit.
Për BcacheFS
NĂ«se jemi tĂ« sinqertĂ«, bcachefs nuk Ă«shtĂ« njĂ« projekt krejtĂ«sisht i vetmuar â pĂ«r shembull, Kent ka qenĂ« autori i 72% tĂ« patch-eve midis lĂ«shimeve tĂ« bĂ«rthamĂ«s 6.11 dhe 6.12, ndĂ«rsa nga 103 patch-e pĂ«r ext4 gjatĂ« tĂ« njĂ«jtĂ«s periudhĂ«, unĂ« kam qenĂ« autor i saktĂ«sisht 0%. Kjo Ă«shtĂ« pĂ«r shkak se unĂ« besoj fort se programimi Ă«shtĂ« njĂ« sport ekipor, dhe puna ime si udhĂ«heqĂ«s teknik Ă«shtĂ« t'u jap mundĂ«si pjesĂ«marrĂ«sve tĂ« ext4 tĂ« bĂ«jnĂ« gjithçka qĂ« mundin pĂ«r tĂ« pĂ«rmirĂ«suar sistemin e fichiers. Ne zhvillojmĂ« konferenca javore, dhe Derrick Wong, zhvillues i lartĂ« i XFS dhe ish-mbrojtĂ«s i XFS, merr pjesĂ« nĂ« kĂ«to konferenca â dhe unĂ«, siç dihet, e kam ndihmuar atĂ« me çështjet e testimit tĂ« XFS, ndĂ«rsa Derrick mĂ« ka ndihmuar mua me çështjet e ndryshme tĂ« testimit tĂ« ext4 dhe madje ka shqyrtuar disa patch-e tĂ« ext4. Ne bashkĂ«punojmĂ« me njĂ«ri-tjetrin dhe kjo Ă«shtĂ« e mirĂ«.
UnĂ« u lejoj tĂ« tjerĂ«ve tĂ« vendosin nĂ«se duan t'i besojnĂ« tĂ« dhĂ«nat e tyre dikujt qĂ« Ă«shtĂ« njĂ« programues i nxehur i vetĂ«m, i cili mund tĂ« jetĂ« mĂ« talentuar se unĂ«, por do t'ju jap njĂ« sugjerim â mund tĂ« "mashtrosh" duke angazhuar njĂ« ekip pĂ«r tĂ« zgjidhur problemin. Nuk Ă«shtĂ« e nevojshme ta bĂ«ni kĂ«tĂ« vetĂ«m. Sigurisht, pĂ«r kĂ«tĂ« duhet tĂ« dini si tĂ« zgjoni mĂ« tĂ« mirĂ«n tek tĂ« tjerĂ«t dhe duhet tĂ« punoni sĂ« bashku. Dhe njĂ« qasje e sjellshme ndaj njĂ«ri-tjetrit nĂ« listat e postave nuk do tĂ« dĂ«mtonte.
Për bërthamën, CoC, mundësitë dhe të ardhmen e ext4
Ext4 në të vërtetë po merr disa funksione të reja, por ato janë ato që kompanitë janë të gatshme t'i financojnë, sepse kthimi i investimit në zhvillimin e funksioneve ka kuptim në terma të kostove dhe përfitimeve. Për shembull, fscrypt dhe direktorët pa dallim të rastit ishin funksione të dobishme për Android dhe Chrome OS, dhe ishin financuar, së paku pjesërisht, nga këto grupe zhvilluesish (Steam gjithashtu kishte shqetësime për diferencimin dhe mbështeti një nga inxhinierët). Ne dëshirojmë të shtojmë mbështetje për shkrimin pa ndërprerje (untorn), sepse kjo do të përmirësonte performancën e databazave në pajisjet cloud emuluese të bllokut, ku mund të garantojnë 16k shkrime atomike, duke eliminuar kështu dyfishimin e tamponit në MySQL dhe PostgreSQL.
(Në të vërtetë, Amazon dhe Google mund ta bëjnë këtë në produktet e tyre të DB, duke bërë supozime për mënyrën si funksionojnë Amazon EBS dhe Google Persistent Disk, por ne dëshirojmë ta bëjmë këtë në një mënyrë më të përgjithshme, e cila do të jetë më e mbështetur në afat të gjatë). Kjo është më pak tërheqëse se gjëra si reflinks, por kthimi i investimeve është shumë më i lehtë për t'u justifikuar, si për shkak se kostot janë më të ulëta (më pak punë për zhvillim, testim dhe kualifikim për implementimin e korporatave), ashtu edhe sepse përfitimet janë shumë më të lehta për t'u vlerësuar në mënyrë quantitative. Gjëra si "mund të kursej kostot e pagave të XX inxhinierëve të softuerit për pesë vjet", janë shumë më të lehta për t'u bërë për këtë lloj funksionesh përmirësuese të performancës.
Në kontrast, reflinks është e këndshme, por nuk kam arritur të gjej një klient që është i gatshëm të paguajë shpenzimet për zhvillim, ose një kompani që beson se klientët e tyre do të blejnë më shumë nga produkti i tyre nëse ata shtojnë reflinks në ext4. Kjo mund të duket shumë korporative, por ka një histori se si inxhinierët e ZFS filluan një projekt nga e para, pa e pyetur menaxhimin për leje dhe pa marrë sugjerime nga departamenti i shitjeve, dhe iu paraqitën Sun-it atë që në fakt ishte një fakt i kryer.
DĂ«gjohet mirĂ«, por nĂ«se e kujtojmĂ« se nĂ« fund Sun filloi tĂ« humbasĂ« para, derisa ishte e detyruar tĂ« shiste veten njĂ« kompanie tjetĂ«r, dhe nĂ« tĂ« vĂ«rtetĂ« organizata inxhinierike qĂ« mbĂ«shteste ZFS, nuk ekziston mĂ«. RastĂ«sisht, nĂ« kohĂ«n kur ZFS u lajmĂ«rua, unĂ« isha pjesĂ« e njĂ« studimi tĂ« gjithĂ«sisĂ« pĂ«r tĂ« parĂ« nĂ«se kishte kuptim tĂ« investohej nĂ« funksionalitetet e sistemit tĂ« skedarĂ«ve pĂ«r AIX dhe Linux â dhe arritĂ«m nĂ« pĂ«rfundimin se jo, ripagimi i investimeve ishte i vogĂ«l dhe funksionalitetet e reja tĂ« sistemit tĂ« skedarĂ«ve nuk do tĂ« sillnin rritje tĂ« numrit tĂ« klientĂ«ve qĂ« blinin pajisje, softuer ose sisteme IBM. Ndoshta IBM pĂ«rjetoi kohĂ« tĂ« vĂ«shtira, por ajo ende ekziston, ndĂ«rsa Sun â jo.
Rreth kësaj kohe, përfaqësuesit e disa kompanive Linux u mblodhën së bashku për të diskutuar se si Linux do të konkurojë me ZFS. Në atë takim u paraqit nocioni se btrfs do të ishte përgjigjja afatgjatë, ndërsa ext4 do të ishte një zgjidhje afatshkurtër që do të ofronte mbështetje për gjëra si rregullimi në kohë reale, numra blokesh 64-bit dhe gjëra të tjera që ishin në sistemet tradicionale Legacy Unix dhe që nuk ishin në ext3.
Në atë takim, më kërkuan të përcaktoj se çfarë do të nevojitej për të krijuar një sistem të ri skedari nga e para. Unë bëra një hulumtim, duke e parë sa përpjekje ishte nevojitur për krijimin e sistemeve të tilla skedarësh si GPFS dhe JFS nga IBM, advfs nga Digital, e vlerësova se sa nevojitej nga Sun për të krijuar ZFS dhe në çfarë niveli të gatishmërisë kishte arritur ky sistem skedari. Përgjigjja që mora ishte rreth 100 vjet njeri, me një vlerësim të ulët prej 50 vjet njeri dhe një vlerësim të lartë prej 200 vjet njeri (por kjo ishte për GPFS, që ishte një sistem skedari klaster, dhe kështu ishte shumë më i komplikuar).
I informova për këtë në mbledhje, dhe një inxhinier i lartë nga Intel tha: "Jo, mos iu flisni udhëheqësve, sepse ata kurrë nuk do ta miratojnë projektin! Thoni atyre se btrfs do të jetë gati për 18 muajsh". Unë u jap njerëzve mundësinë të vendosin vetë se kur btrfs do të arrijë statusin e gatishem për përdorim korporativ", veçanërisht për ato funksionalitete të reja tërheqëse që duhet të konkurojnë me ZFS, por nuk mendoj se është e diskutueshme që kjo nuk ndodhi për 18 muaj.
Dhe madje para se Sun të shpërbëhej, shumë kompani, që dërguan përfaqësuesit e tyre në takim, refuzuan të regjistronin inxhinierët për të punuar mbi btrfs, dhe kjo, sigurisht, nuk ndihmoi. Por, ndoshta, kjo ishte e lidhur me faktin se kompanitë janë organizata logjike, që marrin vendime të pavarura mbi koston e investimeve, dhe financimi i një sistemi të ri skedari nuk kishte të njëjtin kuptim si të tregohej njerëzve se Linux do të kishte një përgjigje për ZFS.
Duke u kthyer prapa, mund tĂ« thuhet se, megjithĂ«se ZFS kishte ato funksione vĂ«rtet tĂ« shkĂ«lqyera, ato nuk ishin tĂ« mjaftueshme pĂ«r tĂ« bĂ«rĂ« shumicĂ«n e pĂ«rdoruesve tĂ« zgjidhnin Solaris pĂ«rkundrejt blerjes sĂ« platformave x86 shumĂ« mĂ« tĂ« lira dhe instalimit tĂ« Linux. Dhe deri nĂ« momentin qĂ« Sun vendosi tĂ« provonte strategjinĂ« OpenSolaris dhe Solaris x86, ishte tepĂ«r vonĂ«. Efektet rrjetore ishin tĂ« jashtĂ«zakonshme, dhe strategjia x86 nuk jepte njĂ« pĂ«rgjigje mbi mĂ«nyrĂ«n se si njĂ« kompani, Sun, mund tĂ« paguante tĂ« gjithĂ« inxhinierĂ«t super talentuar qĂ« punonin mbi Solaris. Blerja e njĂ« serveri x86 pĂ«r 5000 dollarĂ« nuk ofron njĂ« kthim tĂ« madh mbi investimin krahasuar me server SunFire E10k Sparc pĂ«r 100,000 dollarĂ«, tĂ« cilin Sun e quajti âpikĂ«â nĂ« âdot Comâ.
Thelbi është se aktiviteti inxhinierik në botën reale është një kompromis, dhe realitetet e biznesit janë një pjesë e këtij kompromisi. Nuk kërkoj falje për atë që preferoj të ha ushqim, dhe që dua të fitoj mjaft para për të dalë në pension një ditë. Kjo, nga ana tjetër, do të thotë që duhet ta kuptoj mirë se si i sjell punëdhënësit tim përfitim, të paktën 10 herë më shumë se paga ime. Nëse mund ta bëj këtë, duke vazhduar të punoj me kod të hapur dhe duke ndihmuar kompani të tjera të fitojnë para, në mënyrë që ato të jenë të gatshme të kontribuojnë në ext4, atëherë kjo është pjesa e sfidës dhe arsyeja pse e dua punën me kod të hapur.
Dhe, duke u kthyer te Kodi i Sjelljes, do të them se pothuajse të gjithë mbajtësit e serverëve të sistemeve kryesore të skedarëve e mbështetën Kodin jo për ndonjë arsye liberale të dobët. Kjo është për shkak se na nevojitet çdo inxhinier që është i gatshëm të kontribuojë në projektin tonë, dhe shumica e neve kemi parë njerëz që kanë refuzuar të punojnë në Linux dhe kanë kaluar në sisteme të tjera operative (një person që unë e njoh kaloi në Windows dhe ishte një zhvillues i vlefshëm i bërthamës Linux në IBM Linux Technology Center) ose punonin në projekte të brendshme, por jo në ato që kërkonin ndërveprim me LKML, për shkak të mjedisit toksik të disa personave në listën e dërgimit.
Në disa raste, shqetësimet ishin të pabazuara; për shembull, Linus bërtiti në një zhvillues të lartë që vërtet duhej ta dinte më mirë dhe me të cilin Linus kishte takuar personalisht në shumicën e rasteve, dhe ata kishin marrëdhënie të zhvilluara. Problemi është se fillestarët nuk e dinin këtë dhe friksoheshin - "çfarë nëse Linus më poshtëron në publik ashtu siç bëri me Steve", duke mos e kuptuar se në praktikë kjo nuk do të ndodhte. Kjo është arsyeja pse kemi CoC; nuk është për ne, inxhinierët e lartë, por për të mbështetur inxhinierët më të rinj në ekipet tona, të cilëve duam t'u japim mundësi për t'u formuar që një ditë të na zëvendësojnë, kur të vijë koha për t'u pensionuar, ose kur një autobuz na godet, ose ndryshe për të lënë këtë botë të kalbshme.
Mos harroni për 50-100 vite pune në krijimin e një sistemi skedarësh të gatshëm për përdorim në një mjedis korporatash. Na nevojiten të gjithë inxhinierët që mund të angazhojmë, dhe shumë prej nesh kryejnë punë shtesë në kohë të lirë, sepse nuk na intereson. Krijimi i një sistemi skedarësh me cilësi të lartë është një punë ekipore, dhe na nevojitet çdo inxhinier talentuar që mund të sigurojmë. Edhe nëse një inxhinier është një programues super 10-fish, nëse përfundimisht ai largohet nga shumë inxhinierë të tjerë, që mund të punojnë në testimin, optimizimin e performancës, etj., thjesht nuk ja vlen të lejojmë dikë të jetë një i çmendur.
Burimi: opennet.ru
