Hogyan használja a Google a Linux-ot?

Címkék

Annak ellenére, hogy feltehetően a vállalatokat tekintve a Google az egyik legnagyobb (ha nem a legnagyobb) Linux felhasználó, a kernelfejlesztők vajmi keveset tudnak arról, hogy hogyan használja a keresőóriás a Linux-ot, milyen problémákba ütközik stb. A vállalat alkalmazásában álló Mike Waychison elutazott Tokióba a Kernel Summit rendezvényre, hogy képet adjon arról, hogy a munkaadója mi módon használja a nyílt forrású kernelt az általa üzemeltetett infrastruktúrában.

Mike az előadását azzal kezdte - megkacagtatva a jelenlevő fejlesztőket -, hogy a Google jelenleg Perforce-ban kezeli az általa használt kernelforrást. Elnézést kért ezért. Egyetlen forrásfa van, abba commit-ol minden fejlesztő. Körülbelül 17 havonta a vállalat átvált az aktuális mainline kernel kiadásra és azon folytatja a munkát. Ezt követően megy a küszködés, hogy működjön újra minden. Amikor ez megvan, 6 havonta belső "feature" kiadások történnek.

A jelenlegi helyzet messze van az ideálistól a Google számára: jelentősen le vannak maradva az aktuális kernelkiadástól és ebből kifolyólag problémás a kernelfejlesztői közösséggel a problémáikról beszélni.

Körülbelül 30 mérnök dolgozik a Google-nél az általa használt kernelen. Jelenleg úgy dolgoznak, hogy betolják a változtatásaikat a forrásfába, majd elfeledkeznek róla az elkövetkező 18 hónapban. Ez a módszer egyes esetekben valós karbantartási problémákhoz vezet. Gyakran előfordul, hogy a fejlesztőknek kevés fogalmuk van arról, hogy mi is van a Google-féle kernelfában.

Amiben azért jócskán van minden. A Google a 2.4.18-cal kezdte, de megfoltozott benne több mint 2 000 fájlt, hozzáadva a vanilla kernelhez kb. 492 000 sornyi kódot. Egyebek mellett visszaportolták a 64 bit támogatást. Aztán váltottak a 2.6.11-re, főként a SATA támogatás miatt. Ezt követte a 2.6.18, most pedig a 2.6.26-ra váltást tervezik.

Jelenleg 1 208 patch-ük van a 2.6.26-hoz, ezek körülbelül 300 000 sornyi kódot adnak a kernelhez. A változtatások durván negyede új szolgáltatások visszaportolása.

Ezen az egészen akar változtatni a Google. A Google kernelcsapat jobban együtt akar működni a kernelfejlesztőkkel. Git-re váltanak, a fejlesztők saját fában tartják majd a változtatásaikat. Ezek a fák negyedévente az aktuális mainline kernelre állnak majd át, s ez feltehetően motiválja majd a fejlesztőket arra, hogy a kódjuk még karbantarthatóbb és még mainline kernel-közelibb legyen.

Linus feltette a kérdést, hogy miért nem az upstream kernelben tartják karban ezeket a patch-eket? Talán azért, mert a Google zavarba jönne miattuk, vagy mert titkos anyagok vannak bennük, amelyeket nem akar közreadni, vagy ez belső folyamati problémák kérdése? A válasz egy egyszerű "igen" volt. Vannak benne ronda kódok, amelyek még a 2.4.18-tól jöttek. Vannak kétségek náluk afelől, hogy mennyire lenne a világ számára hasznos ezen kódok kiadása. De végső soron ezen kódok fele feltolható lenne az upstream kernelbe.

További részletek az LWN cikkében.

Hozzászólások

Arra azért kíváncsi leszek, hogy a Google milyen hatással lesz a kernelre. Mennyiben fognak megváltozni a mostani erővonalak (Ingo - RedHat, IBM fejlesztők).

-- "Bízzál Istenben és tartsd szárazon a puskaport!" - Cromwell --
-- Sayusi Ando - http://sayusi.hu --

Csak nekem jött le úgy hogy a Google kernel klubban fejetlenség és káosz uralkodik? Ejnye..
_______________________
Ubuntu

Szeretem az ilyen hozzászólásokat. Valaki elmondja, hogy hogyan csinálják, tudják, hogy mi a szar vele. Tudják, hogy merre tovább és jön valaki és zsigerből leszarozza... Szép. Szép. Nem szeretnék veled dolgozni. :)

-- "Bízzál Istenben és tartsd szárazon a puskaport!" - Cromwell --
-- Sayusi Ando - http://sayusi.hu --

A 2.4.18 nem mostanában volt... és ha már a google annyi mindent lenyúl az emberektől, azt a megfoltozott 2000 fájlt, a beleölt tudást miért nem lehet visszaadni a linuxos közösségnek, ha már betegre keresik magukat linuxra alapozott technológiával?

Értem én, hogy a licenszek betűjét nem sérti, de nem tudok szabadulni a gondolattól, hogy a szellemét igen...

mert nincs szukseguk arra, hogy aztmondjak nekik hogy szar az otlet, a google utana fel evig reszelje, hogy a fejleszto
urasagok minden perverz vagyat kielegitse, aztan megse olvasszak be...

...majd egy het mulva ingo bejelenti a szuperinnovativ otletet, ami lenyegeben ugyanerre jo, csak veletlen sem kompatibilis :-)

Nekem semmi bajom vele. Ő is csak valakinek az utasításait hajtja végre. :) Bár, az, hogy a ck kernel miatta halt meg én se tudom feledni. Eléggé sokáig használtam azt a kernelt, és nagyon szépen muzsikált tőle a gép. Sokkal szebben, mint a normális kerneltől.

-- "Bízzál Istenben és tartsd szárazon a puskaport!" - Cromwell --
-- Sayusi Ando - http://sayusi.hu --

Igen, mondjuk amikor én reportoltam, az is megoldódott. Csak az volt kicsit fura, hogy azt a commitot, amiben elromlott, azt is egy benchmark támasztotta alá, azt a commitot, amiben megjavult, azt is egy benchmark (másik fajta benchmark egyébként), arról meg nem volt szó a commit szövegben, hogy egyébként ez azt is bugot is fixálja, hogy ne ragadjanak le egy CPU-n a processzek...

Szóval jó ez a mérjük az eredményt hozzáállás, csak nem egy benchmarkot kéne nézni, hanem valahogy különböző fajta komplex workload-okat...

In the area of CPU scheduling, Google found the move to the completely fair scheduler to be painful. In fact, it was such a problem that they finally forward-ported the old O(1) scheduler and can run it in 2.6.26. Changes in the semantics of sched_yield() created grief, especially with the user-space locking that Google uses. High-priority threads can make a mess of load balancing, even if they run for very short periods of time. And load balancing matters: Google runs something like 5000 threads on systems with 16-32 cores.

lwn-es cikkbol ;)
___
info

igen, arról szerettem volna írni pár gondolatot, hogy az kevés, hogy tudják, mi nem stimmel, ha ezt már 2002. február 25. óta, a 2.4.18-as kernel kiadása óta tudják, ezt 2009-ben elismerni számomra nem előrelépés. 7 és fél évet ülni egy ekkora ügyvitelszervezési tévedésen, nekem furcsa.

az is furcsa, hogy kiderült, ők belepiszkálnak a kernelbe és ennek eredményét én nem élvezhetem. pedig biztosan hasznomra vált volna, hogyha több százezer, ekkora terhelést elviselő gépből leszűrt tapasztalatok a kernel forrásba visszapakolás során nálam is megjelennek az én szerveremen.

az is furcsa, hogy kiderült, ők belepiszkálnak a kernelbe és ennek eredményét én nem élvezhetem

gondolom neked is a pinceben egy nem tudom hany csillio node-os server van ...

iszonyat tudnad hasznalni, amint meg mar feljebb is irtak - talan NagyZ - amire be lehetne olvasztani a kernelbe, annyi ido alatt google-ek lekodolnak egy masik problemara egy megoldast, es a nem mar letezo megoldast kell minden egyes valtozashoz hozzaigazitani. ha megfigyeled a cegek nem a verjuk a faszunk a legujabb linux-next-next-next kerneleket hajtjak, hanem valami regebbi verziora portolnak vissza csomo dolgot, lasd google pl-ja, de akar Red Hat vagy barmelyik production ceg, ubuntu nem jatszik, mert az egy vicc..

amugy ha meg annyira kellenek azok a patchek, akkor irj a google-nek, nagy valoszinuseggel odaadjak, _ha_ latjak, hogy valoban szukseged van rajuk....
___
info

"hany csillio node-os server"
A Google nem használ szuperszámítógépeket a híradások szerint, csak átlag alatti PC-ket.

"amugy ha meg annyira kellenek azok a patchek, akkor irj a google-nek, nagy valoszinuseggel odaadjak, _ha_ latjak, hogy valoban szukseged van rajuk"
Ezt te sem gondolhattad komolyan.

suckIT szopás minden nap! 2010 az IPv6 éve lesz

egy módosított energiaellátású, egyébként mezei gigabyte alaplapot használnak, amit saját tervezésű és gyártású dobozkába tesznek. számítógép háznak nem nevezném a kinézete alapján, bár a funkciója az. van melléhekkelve egy akksi.

kinézetre eléggé dzsunka pc-nek néz ki, le is köpködhetné az ember, ha nem tudná, hogy az energiahatékonysága jobb, mint a szokásos cuccoknak.

A fontosabb szervereim ibm x3650-esek, most cseréltük áprilisban őket. pusztán a kinézetet tekintve sokkal profibbak, mint a gugli gépei. A kevésbé fontos gépeim is ibm szerverek, nem hiszem, hogy joggal lehetne dzsunkapc-zni a rendszert...

http://lwn.net/Articles/357658/ :

" Google has a number of "pain points" which make working with the community harder. Keeping up with the upstream kernel is hard - it simply moves too fast. There is also a real problem with developers posting a patch, then being asked to rework it in a way which turns it into a much larger project. Alan Cox had a simple response to that one: people will always ask for more, but sometimes the right thing to do is to simply tell them "no." "

Szerintem ez egy elég korrekt válasz a kérdésedre.

A 2.6.18-as egy jól sikerült kernel volt. A RedHat is arra épít, a Google is arra épít.

Vajon melyik lesz a következő ilyen?

Arról a 2.6.18-as kernelről beszélsz, amiben akkora raid bug volt, mint ide Hanoi? Erre csak olyan jelzőket tudnék mondani, ami az én itt megszokott stílusomhoz képest is alpári...
Konkrétan (nem így jelölik, de most a pontosság kedvéért): a 2.6.18.0-ról beszélünk, ugye?

Abból az időszakból a 2.6.16-os sorozat volt jó, nem véletlen, hogy 62-ig patkolták, ha jól emlékszem.

hivatkozás: http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.18.1 fájlban a raid szó első előfordulására kéretik rákeresni.

ezek után kíváncsi lennék, hogy az MS-nél egy hasonló fejlesztői kinyilatkozás alkalmával mekkora fejetlenségekre derülne fény? Persze lehet, hogy ott minden rendben és sorról-sorra dokumentált és a felsőbb irányítás viszi rossz felé a projekteket...

Szerintem Stallman meg röhög a markába.
Ha v3-ra váltott volna a kernel, akkor ezt most nem lehetne.
Csakhogy a v2 nekem is szimpatikusabb.