XTX Markets on julkaissut avoimen lähdekoodin TernFS-tiedostojärjestelmän, joka on suunniteltu luomaan hajautettua tallennustilaa useille maantieteellisesti hajautetuille datakeskuksille ja kykenemään tallentamaan kymmeniä eksatavuja dataa, biljoonia tiedostoja ja satoja miljardeja hakemistoja, joita kaikkia miljoonilla asiakkailla on samanaikaisesti käytössään. Projektin koodi on kirjoitettu C++- ja Go-kielillä ja se on lisensoitu GPLv2-lisenssillä. Protokollamääritykset ja asiakaskirjastot on lisensoitu Apache 2.0 -lisenssillä.
Tiedostojärjestelmä on optimoitu koneoppimisjärjestelmille tyypillisiä työkuormia varten – sellaisten tiedostojen kirjoittamiseen ja lukemiseen, jotka ovat muuttumattomia luomisen jälkeen ja jotka sisältävät yli muutaman megatavun dataa. Tiedostojärjestelmää ei ole suunniteltu uusien hakemistojen usein tapahtuvaan luomiseen tai tiedostojen siirtoon hakemistojen välillä. Ominaisuuksiin kuuluvat vahingossa poistettujen tiedostojen tai hakemistojen palauttaminen sekä pysyvän poistamisen käytäntöjen määrittäminen. Tiedostojärjestelmän sisältöä voidaan replikoida useiden eri alueilla sijaitsevien tietokeskusten välillä. Tallennussolmut voivat sisältää erityyppisiä tallennustiloja (levypohjaisia ja flash-muistia).
Yksi suunnitteluvaatimuksista oli yksittäisen vikaantumispisteen puuttuminen ja tallennuksen korkea luotettavuus. Virtakatkot eivät saisi vahingoittaa tiedostojärjestelmää, eikä tiedostoja voida kirjoittaa osittain (vain täysin kirjoitetut tiedostot ovat käytettävissä). Järjestelmä on vikasietoinen yksittäisten asemien, metatietosolmujen ja tallennussolmujen vikojen varalta. Tallennustilan ylläpito on mahdollista keskeyttämättä toimintaa.
XTX Markets aloitti TernFS-pohjaisen tallennuksen käyttöönoton kesällä 2023 puolentoista vuoden kehitystyön jälkeen. Vuoden 2024 puoliväliin mennessä kaikki XTX Marketsin koneoppimisjärjestelmät oli siirretty TernFS:ään. Tallennustila käsittää tällä hetkellä yli 30 000 levyä ja 10 000 flash-asemaa, jotka sijaitsevat kolmessa datakeskuksessa. Tallennetun datan kokonaismääräksi arvioidaan 500 petatavua, ja huipputeho on useita petatavuja sekunnissa. Tallennustilaa käytetään yli 100 000 laskentayksikön klusterissa. Kahden toimintavuoden aikana ei ole sattunut yhtään tiedon menetykseen johtanutta ongelmaa.
TernFS:n rajoituksiin kuuluvat: kirjoitettuja tiedostoja ei voi muokata; alhainen tehokkuus työskenneltäessä alle 2 Mt:n kokoisten tiedostojen kanssa; hakemistojen luonti- ja poistotoimintojen heikko suorituskyky; käyttöoikeuksien erottelun puute.
TernFS-tallennusklusterin komponentit ovat:
- Metadatan tallennussolmut, jotka vastaavat hakemistorakenteita ja tiedostoattribuutteja koskevien tietojen hallinnasta.
- Cross-Directory Coordinator (CDC) -solmut, jotka suorittavat tapahtumia eri hakemistojen välillä.
- Tallennuspalvelut, jotka tarjoavat tiedostojen sisällön tallennustilaa.
- Rekisteri, joka sisältää tietoja kaikista muista palveluista ja valvoo niiden toimintaa.
- Asiakaspalvelut käyttäjille FS:n käyttämiseksi:
- ternweb — tallennustilan käyttö Web-rajapinnan kautta.
- terncli on komentorivikäyttöliittymä.
- ternfs.ko — модуль для ядра Linux, позволяющий монтировать хранилище для работы как с локальной ФС.
- ternfuse on asiakassovellus FS:n kanssa työskentelyyn FUSE-alijärjestelmää käyttäen.
- terns3 on Amazon S3 API:n toteutus.
- Taustaprosessit:
- GC on roskienkerääjä, joka vapauttaa vanhentuneita tilannevedoksia (poistettuja, mutta ei tyhjennettyjä tiedostoja) ja puhdistaa pysyvästi poistettujen tiedostojen lohkot.
- pyyhkijä — tietojen heikkenemisen havaitseminen ja palauttaminen.
- migrator - jätä vialliset levyt pois tallennustilasta.

Lähde: opennet.ru
