22.05.2024. ·
2 min

Zašto je Facebook izabrao Mercurial umesto Gita?

HelloWorld
0
Zašto je Facebook izabrao Mercurial umesto Gita?

Git je sistem za kontrolu i istoriju verzije koda i koriste ga skoro sve velike IT kompanije, ali ne Google i Facebook. Što se tiče Google-a, stvar je jasna jer njihov inženjering postoji nekoliko godina pre Git-a. Sa druge strane, Facebook je nastao otprilike u isto vreme kada i Git (2004. godine) i bilo je, nekako, prirodno da dve tako uticajne i jake kompanije, zajedno rastu i razvijaju se, posebno ako imamo u vidu da su oni u prvih osam godina postojanja, zaista, i sarađivali.

Ta saradnja se završila 2012. godine, kada je Facebook odabrao drugog partnera, tada prilično nepoznatog, po imenu Mercurial.

Oba sistema rade sa repozitorijumom. To je zapravo direktorijum koji sadrži sve fajlove projekta, a postoji i sistemski deo gde se čuvaju podaci o projektu, promenama, o tome ko je te promene načinio i kodu unutar njih. Da Facebook nije promenio „partnera“ , inženjerski svet bi danas, gotovo sigurno, izgledao drugačije, i iz današnjeg ugla, Git definitivno ima za čime da žali. Moguće je da danas ne bi imao nikakvu konkurenciju i da bi korisnički doživljaj rada u Git-u bio na još višem nivou.

Osnovni razlog da Facebook migrira na Mercurial, je prilično jednostavan – performanse. Međutim, kako to obično biva, bilo je tu i malo sujete.

Pošto je Git bio koncipiran tako da „pregleda“ svaku datoteku repozitorijuma, sa povećanjem broja datoteka, jasno je da njegova brzina opada. Ljudima iz Facebook-a je počela da se pali „crvena lampica“ kada su sve učestalije počeli da „naleću“ na granice skaliranja, pa su odlučili da ništa ne prepuštaju slučaju, već su napravili simulaciju. Koristili su „dummy“ repozitorijum sa očekivanom veličinom Facebook-ovog koda u narednih par godina.

Rezultat je bio poražavajući, jer je izvršenje osnovnih Git komandi trajalo 45 minuta. Pomalo uspaničeni tom informacijom, mali tim software inženjera zaposlenih u Facebooku, je počeo vredno da radi na pronalasku rešenja. Kontaktirali su Git zajednicu, međutim odgovor je bio – „podelite ogroman repozitorijum na manje delove“. Potpuno šokirani i pomalo uvređeni njihovim odgovorom i nedostatkom „sluha“ za očigledan problem, ovaj tim je shvatio da je migracija na drugi sistem neminovna.

Nisu pričali sa ostatkom kompanije o ovom problemu, jer su želeli da prvo istraže sve moguće opcije kako bi bili u potpunosti sigurni kada izađu sa predlogom. Znali su da bi njihove kolege, programeri, pre svih, mogli da budu izuzetno osetljivi na ovako radikalnu promenu koju su pripremali, pa nisu želeli dodatne komplikacije bez jasne slike „šta i kako dalje?“

Oceni tekst

3
7 glasova

0 komentara

Iz ove kategorije

Svi članci sa Bloga

Slični poslovi

Povezane kompanije po tagovima