Mam Backblaze Object Storage, aktualne je tam nemozne nahrat jeden subor cez S3 API a podpora je naprosto neschopna a pomala(1 email za den), a kompletne mi to zabilo jednu sluzbu, ktora tam seriovo nahrava subory. Takze som sa rozhodol, ze namiesto toho aby som skusal alternativy(Wasabi, Hetzner, Contabo, Vultr, Bunny), tak si budem hostovat subory sam. Alwyzon ma 10TB za 51€ mesacne bez DPH napriklad, a dali mi aj ponuku na 88TB za 131€ bez DPH. Takze sa da ostat na, alebo ist pod, tych $6/TB.
Rozmyslam ale, ci treba na nieco mysliet pri implementacii? Nebudem riesit S3 API, ani pouzivat nejaku hotovou aplikaciu, ako je napriklad Minio. Urobim si vlastnu implementaciu na mieru(predsalen ide len o primitivny file hosting).
Davnejsie som cital nieco o tom, ze moze byt pomale ak sa subory nahravaju do jednej zlozky. Ze casom ked je tam vela suborov moze byt problem s rychlostou vypisovania. Nemyslim ze budem riesit vypis zoznamu suborov v zlozkach, ale i tak je mozno lepsie subory roztriedit podla prefixu do viacerych zloziek?
Druha vec, co rozmyslam ze moze byt zaujimave, je riesenie zloziek, podobne ako su kyble v S3, respektive to su samostatne lozky ale skor "zlozky", alebo "path prefix", priamo v kybloch. Normalne nie je moc co riesit, proste ak ma subor ciel nastaveny v podzlozke, tak ma podzlozku v ceste a je to banalita. Avsak rozmyslam prave z hladiska toho, ze server bude mat viac diskov, a teda musim pocitat prave s konceptom disku a jeho kapacity a rozlozenia prave tychto zloziek na viacero diskov, podla dostupnosti miesta. Napriklad je mozno lepsie ak dedikovana subzlozka je vzdy iba na jednom disku a nie je dobre to rozdelit na vsetky disky a ked je disk plny tak proste zlozka uz nepojme viac suborov.
A tak podobne, skratka, ci by som sa mal zamysliet nad niecim, co by ma mozno pri navrhu hned nenapadlo, ale casom by som mohol narazit na problemy?
Chcel by som sa vyhnut databaze. Aktualne preferujem metadata subory, co je len .md subor ktory ma json, napriklad, so zakladnymi md udajmi o subore. Mal som aj DB uz ale mi to prislo ako nie uplne prakticke riesenie, hlavne ked clovek musi riesit transakcie a synchronizaciu medzi tym co je realne na disku a co je v db a kto ma pravdu. Mat md subor mi pride aktualne viac DX-friendly skratka a vsetko riesi operacny system.
Neviem tiez, ci uchovavat subory pod povodnym nazvom alebo pod nejakym hashom. Tam je ale problem ze na vypis suborov v zlozke musim prave nacitat vsetky .md subory a vytiahnut relany filename odtial.