Centena miliones parvarum imaginum efficaciter reponunt. Self-Hosted solution

Centena miliones parvarum imaginum efficaciter reponunt. Self-Hosted solution

Dilecta Communitas, Hic articulus efficenter reponenda et recuperanda centenis myriades imaginum parvarum. Hac in scaena finalis solutio proponitur systematis fasciculi POSIX-compatibilis cum plena subsidio pro cincinnis, inclusis cincinnis, et quasi etiam sine fusis.

Ego itaque servo meo proprio consuetudini ad hanc rem scripsi.
In hoc munere exsequendo, problema principale solvendum curavimus, simulque compendia in orbis tractus ac RAM consequi, quae systema fasciculi nostri racemum inclementer consumunt. Profecto talis numerus limariorum cuilibet systematis fasciculi aggregati nocet.

Idea haec est;

In verbis simplicibus, parvae tabulae per ministris sunt immissae, directe in archivo servatae sunt, et etiam ex eo legunt, et magnae tabulae iuxta ponuntur. Schema: 1 folder = 1 archivum, in summa plurium milionum tabulatorum habemus cum parvis fasciculis, et non plurium milium milium. Atque haec omnia plene efficiuntur, sine ullis scriptis aut scriniis in archivo tar/rar.

Conabor brevem servare, in antecessum veniam si posta longa est.

Omnia ex eo inceperunt me invenire idoneum cultor in mundo qui notitias per HTTP receptas servare non potuit directe in archivo, sine incommodis in archivis conventionalibus et rei repositione inhaerentibus. Et causa inquisitionis fuit Origin botrus de 10 servientibus qui in magnam scalam creverant, in quibus 250,000,000 parvae tabulae iam congestae erant, et inclinatio incrementi non cessabat.

Qui enim capitula legere non placet, documenta facilior est;

hic и hic.

Simul et sclavum, nunc bene solum cum nginx intus modo in casu;

docker run -d --restart=always -e host=localhost -e root=/var/storage 
-v /var/storage:/var/storage --name wzd -p 80:80 eltaline/wzd

Next:

Si multae tabulae sunt, magnae opes necessariae sunt, et pars pessima est quod aliquae ex illis consumuntur. Exempli gratia, cum fasciculi fasciculi usus (in hoc casu MooseFS), tabella, cuiuscumque magnitudinis actualis, semper suscipit saltem 64 KB. Hoc est, pro scriniis 3, 10 vel 30 KB in magnitudine, 64 KB requiruntur in orbe. Si quarta pars fasciculi decies centena millia sunt, amittimus ab 2 ad 10 terabytis. Non poterit novas tabulas indefinite creare, cum MooseFS limitationem habeat: non plus quam 1 miliarda cum una imagine cuiusque fasciculi.

Cum numerus fasciculorum augetur, multum RAM ad metadata opus est. Saepe magna metadata eri etiam ad usum et lacrimam SSD agitet.

wZD cultor. Omnia in ordine in orbes ponimus.

Servo in Go scriptum est. Imprimis numerum imaginum reducere oportuit. Quam facere? Ob archiving, sed in casu sine compressione, cum tabellae meae imagines iustae compressae sunt. BoltDB succurrit, quod adhuc a defectibus tollendum erat, hoc in documentis relucet.

In summa, loco quadrantis miliardis imaginum, in casu meo tantum 10 decies centena milia archivi fulmen supersunt. Si facultatem haberem hodiernam directorium lima structuram mutandi, eam ad circiter 1 decies centena millia reducere possem.

Omnes tabulae parvae in archivis Bolt refertae sunt, quae sponte recipiunt nomina directorium in quibus sita sunt, et omnes tabulae magnae iuxta tabularia manent, nullum punctum in illis est, hoc est customizable. Parva scrinium sunt, magna immota relinquuntur. Perlucidus uterque minister operatur.

Architectura et lineamenta wZD servientis.

Centena miliones parvarum imaginum efficaciter reponunt. Self-Hosted solution

Minister sub Linux, BSD, Solaris et OSX systemata operante agit. Solum architecturae sub Linux AMD64 probatum est, sed pro ARM64, PPC64, MIPS64 operari debet.

Marisque:

  • Multithreading;
  • Multiservo, culpae tolerantiae onus aequans praebens;
  • Maximum diaphanum pro usuario vel elit;
  • Modi HTTP suffulti: GET, caput, put et dele;
  • Curo legere et scribere mores per clientem latus capitis;
  • Firmamentum est summe configurable virtualis exercituum;
  • Suscipe CRC notitia integritas cum scripto/legendo;
  • Semi-dynamica buffers ad consummationem memoriam minimam et optimal retiacula perficiendi tuning;
  • * * * * * * * * * * * * * *
  • Praeterea, multi-filatum archivum wZA offertur pro fasciculis migrandis, non intermissione servitii.

Vera experientia:

Excogitatus sum et probans cultorem et archivum in notitia viva diu satis, nunc bene operans in botro, quod continet 250,000,000 parvas tabulas (picturas) in 15,000,000 directoriis distinctis SATA agitet. Botrus 10 servientium Originis servo inauguratus est post retis CDN. Ad illud serviendum, 2 Nginx servientes + 2 wZD servientes adhibentur.

Qui enim statuunt hoc ministro uti, sapere erit de directorio structurae, si applicabiles, ante usum excogitare. Fac me statim reservationem facere quod server non intendat omnia in 1 Bolt archivum.

Euismod temptat:

Minor amplitudo fasciculi vehentis, celerius GET et PUT operationes in ea peraguntur. Totum tempus comparemus pro clientelam HTTP scribendis regularibus imagini et archivis Bolt, necnon legendi. Opus cum scriniis magnitudinum 32 KB, 256 KB, 1024 KB, 4096 KB et 32768 KB comparatur.

Cum in tabulario Bolt operando, notitia simplicis cuiusque fasciculi retunditur (CRC adhibetur), antequam memoria et etiam post recordationem, in musca lectionis et recalculationi occurrat, hoc naturaliter moras introducit, sed res summa est securitas data.

Proventus effectus in SSD egit, cum probationes in SATA agit, differentiam manifestam non ostendunt.

Graphs subsunt eventus probatio:

Centena miliones parvarum imaginum efficaciter reponunt. Self-Hosted solution
Centena miliones parvarum imaginum efficaciter reponunt. Self-Hosted solution

Ut vides, parva est parva differentia in legere et scribere tempora inter tabularia scrinii et non-archivecta.

Aliam picturam omnino nanciscamur, cum tentat legere et scribere scriniis 32 MB in magnitudine:

Centena miliones parvarum imaginum efficaciter reponunt. Self-Hosted solution

Differentia temporis inter fasciculi legendi intra 5-25 ms. Cum notatione peiora sunt, differentia est circiter 150 ms. At in hoc casu non est necesse magnas fasciculos onerari, nihil est quod ad rem pertineat, sed separatim ex archivis vivere possunt.

*Technice, hac servo uti potes ad operas NosQL requirendas.

Basici modi operandi cum servo wZD:

Loading a ordinarius file:

curl -X PUT --data-binary @test.jpg http://localhost/test/test.jpg

Fasciculum ad archivum Bolt (si minister fmaxsize parametri, quae magnitudinem maximam tabellae quantitatis in tabulario includi potest, non exceditur; si exceditur, tabella iuxta tabularium more solito imposuisti);

curl -X PUT -H "Archive: 1" --data-binary @test.jpg http://localhost/test/test.jpg

Fasciculus deprimendi (si fasciculi eorundem nomina in disco et in archivo sunt, tunc cum deprimendo, prioritas per defaltam tabellae inarchivorum datur);

curl -o test.jpg http://localhost/test/test.jpg

Download fasciculum ex archivo fulmine (coacti);

curl -o test.jpg -H "FromArchive: 1" http://localhost/test/test.jpg

Aliorum methodorum descriptiones sunt in documentis.

wZD Documentation
wZA Documentation

Minister nunc tantum protocollum HTTP sustinet, cum HTTPS adhuc non laborat. Post modum etiam non continetur (nondum enim iudicatum est utrum opus sit necne).

Quicumque in fontem codicem fodit, ibi butterscotem inveniet, non omnes delectat, sed principale codicem ad functiones interretialis compaginis non ligavi, excepto tracto interrepto, unde in posterum cito illud pro omnibus fere rescribere possum. machinam.

Ad como:

  • Progressus proprii tui replicatoris et distributoris + geo pro possibilitate utendi in magnis systematibus sine systematibus fasciculi fasciculis (Omnia pro adultis)
  • Possibilitas offensionis plenae receptae metadata si omnino amittitur (si usus distributor)
  • Protocollum patrium pro facultate utendi network connexionibus et rectoribus pervicax utendi linguarum programmandi
  • Provectae facultates pro utendo in NoSQL component
  • Compressiones variarum generum (gzip, zstd, snappy) pro lima vel valores in archivis fulmine et pro imagini regulari
  • Encryption diversorum generum pro lima vel valores in archivis fulmine et pro regularibus files
  • Dilatio servo-parte video conversionem, inter in GPU

Omnia habeo, spero hunc servo alicui usui fore, BSD-3 licentia, duplex libraria, quia si nulla societas ubi laboro, servo scriptum non esset. Elit modo vereor. Gratus essem pro quibusvis cimicibus et pluma petitionibus quas inveneris.

Source: www.habr.com

Add a comment