Kompania XTX Markets hapi kodin burimor të sistemit të skedarëve TernFS, i projektuar për të krijuar një ruajtje të shpërndarë që përfshin shumë qendra të të dhënave të ndara gjeografikisht dhe e cila mund të ruajë deri në dhjetëra eksabajt të dhënash, triliona skedarë dhe qindra miliarda katalogë, me të cilët mund të interaktojnë njëkohësisht miliona klientë. Kodi i projektit është shkruar në gjuhët C++ dhe Go dhe shpërndahet nën licencën GPLv2. Specifikimet e protokollit dhe bibliotekat klienti ofrohen nën licencën Apache 2.0.
FS Ă«shtĂ« optimizuar pĂ«r ngarkesa tĂ« zakonshme tĂ« sistemeve tĂ« mĂ«simit tĂ« makinĂ«s â shkruan dhe lexon skedarĂ« qĂ« nuk ndryshohen pas krijimit dhe pĂ«rmbajnĂ« mĂ« shumĂ« se disa megabajt tĂ« dhĂ«nash. FS nuk Ă«shtĂ« e dizajnuar pĂ«r krijimin e shpeshtĂ« tĂ« katalogĂ«ve tĂ« rinj dhe pĂ«r lĂ«vizjen e shpeshtĂ« tĂ« skedarĂ«ve midis katalogĂ«ve. JanĂ« tĂ« pranishme mundĂ«si pĂ«r rikuperimin e skedarĂ«ve ose katalogĂ«ve tĂ« fshirĂ« aksidentalisht, si dhe pĂ«r konfigurimin e politikave pĂ«r fshirje tĂ« plotĂ« dhe tĂ« pakthyeshme. PĂ«rmbajtja e FS mund tĂ« replikojĂ« midis disa qendrave tĂ« tĂ« dhĂ«nave nĂ« regione tĂ« ndryshme. NjĂ«sitĂ« e ruajtjes mund tĂ« pĂ«rfshijnĂ« lloje tĂ« ndryshme tĂ« ruajtĂ«sve (tĂ« bazuara nĂ« disqe dhe memorie flash).
NjĂ« nga kĂ«rkesat gjatĂ« dizajnit ishte mungesa e njĂ« pikĂ« dĂ«shtimi dhe sigurimi i njĂ« shkallĂ« tĂ« lartĂ« besueshmĂ«rie tĂ« ruajtjes â stakimet e papritura tĂ« energjisĂ« nuk duhet tĂ« çojnĂ« nĂ« dĂ«mtimin e FS, dhe skedarĂ«t nuk mund tĂ« regjistrohen pjesĂ«risht (pĂ«r lexim janĂ« tĂ« disponueshĂ«m vetĂ«m skedarĂ«t e plotĂ«). Sistemi Ă«shtĂ« i qĂ«ndrueshĂ«m ndaj dĂ«shtimit tĂ« njĂ«sive tĂ« veçanta, tĂ« nyjave me metadita dhe nyjave tĂ« ruajtjes. ĂshtĂ« e mundur tĂ« kryhen mirĂ«mbajtje tĂ« ruajtjes pa ndalur punĂ«n.
Zbatimi i ruajtjes mbi bazën e TernFS në kompaninë XTX Markets filloi verën e vitit 2023, pas një viti e gjysmë zhvillimi të FS. Në mes të vitit 2024, të gjitha sistemet e mësimit të makinës të XTX Markets u kaluan në TernFS. Aktualisht, ruajtja përbën më shumë se 30,000 disqesh dhe 10,000 ruajtësish flash, të vendosur në tre qendra të të dhënave. Vëllimi total i të dhënave të ruajtura është i vlerësuar në 500 petabajta, dhe performanca maksimale është disa petabajt në sekondë. Ruajtja përdoret në një grup me më shumë se 100,000 nyje kompjuterike. Nuk kanë ndodhur incidente që çojnë në humbjen e të dhënave gjatë dy viteve të funksionimit.
Midis kufizimeve të TernFS: skedarët e regjistruar nuk mund të ndryshohen; efikasiteti i ulët në punën me skedarë më të vegjël se 2 MB; performancë e ulët në operacionet e krijimit dhe fshirjes së katalogëve; mungesa e ndarjes së të drejtave të qasjes.
Komponentët që formojnë grupin e ruajtjes TernFS:
- Nyjat e ruajtjes së metaditave, të cilët janë përgjegjës për menaxhimin e informacionit rreth strukturës së katalogëve dhe atributeve të skedarëve.
- Nyjat e koordinimit (CDC â Koordinatori i KatalogĂ«ve tĂ« KryqĂ«zuar), tĂ« cilĂ«t kryejnĂ« transaksione qĂ« pĂ«rfshijnĂ« katalogĂ« tĂ« ndryshĂ«m.
- Shërbimet e ruajtjes që sigurojnë ruajtjen e përmbajtjes së skedarëve.
- Regjistri, që përmban informacion rreth të gjitha shërbimeve të tjera dhe kryen monitorimin e funksionimit të tyre.
- Shërbimet klientë për qasjen e përdoruesve në FS:
- ternweb â qasja nĂ« ruajtje pĂ«rmes Web API.
- terncli â ndĂ«rfaqja e linjĂ«s sĂ« komandĂ«s.
- ternfs.ko â moduli pĂ«r kernin Linux, qĂ« lejon montimin e ruajtjes pĂ«r tĂ« punuar si me FS lokale.
- ternfuse â implementimi i klientit pĂ«r tĂ« punuar me FS, duke pĂ«rdorur nĂ«ndegĂ« FUSE.
- terns3 â implementimi i API Amazon S3.
- Proceset në sfond:
- GC â mbledhĂ«si i plehrave, qĂ« shpĂ«ton skena tĂ« skaduara (skedarĂ« tĂ« fshirĂ«, por jo tĂ« pastruar) dhe pastron blloqet pĂ«r skedarĂ«t e fshirĂ« pĂ«rgjithmonĂ«.
- scrubber â identifikimi i degradimit tĂ« tĂ« dhĂ«nave dhe rikuperimi.
- migrator â pĂ«rjashtimi i disqeve tĂ« prishura nga ruajtja.

Burimi: opennet.ru
