Unua eldono de wZD 1.0.0, kompakta stokadservilo por malgrandaj dosieroj

Disponebla unua eldono wZD 1.0.0 - servilo por efike konservi grandan nombron da dosieroj en kompakta formo, kiu ekstere aspektas kiel kutima WebDAV-servilo. Modifita versio estas uzata por stokado BoltDB. La projektkodo estas skribita en Go kaj distribuita de sub la permesilo BSD.

Servilo permesas al Signife reduktu la nombron da malgrandaj dosieroj sur regulaj aŭ amasigitaj dosiersistemoj kun plena ŝlosila subteno. La areto subtenata de wZD-programistoj stokas ĉirkaŭ 250 milionojn da malgrandaj dosieroj distribuitaj tra 15 milionoj da dosierujoj en la grapodosiersistemo. MooseFS.

wZD ebligas movi (arkivi) la enhavon de dosierujoj en arkivojn en la formato BoltDB kaj tiam distribui ĉi tiujn dosierojn el ĉi tiuj arkivoj (aŭ meti dosierojn en arkivojn per la metodo PUT), signife reduktante la nombron da dosieroj en la dosiersistemo kaj reduktante la superkoston de stokado de metadatenoj. Por pliigi la efikecon de prilaborado de grandaj dosieroj, tiaj dosieroj povas esti konservitaj aparte de Bolt-arkivoj. Ĉi tiu aliro permesas al vi organizi la stokadon de grandega nombro da malgrandaj dosieroj sen esti limigita de la limo de la nombro da inodoj en la dosiersistemo.

Unua eldono de wZD 1.0.0, kompakta stokadservilo por malgrandaj dosieroj

La servilo ankaŭ povas esti uzata kiel NoSQL-datumbazo por datumoj en ŝlosila/valorformato (kun sharding bazita sur la dosierujo-strukturo) aŭ por distribuado de antaŭgeneritaj html aŭ json-dokumentoj el la datumbazo. Koncerne rendimenton, sendi kaj skribi datumojn uzante Bolt-arkivojn rezultigas pliiĝon de latencia ĉirkaŭ 20-25% dum legado kaj je 40-50% dum skribo. Ju pli malgranda estas la grandeco de dosiero, des pli malgranda la diferenco en latenteco.

Unua eldono de wZD 1.0.0, kompakta stokadservilo por malgrandaj dosieroj

Ĉefa ŝancoj:

  • Multifadenado;
  • Multiservilo, provizante misfunkciadon kaj ŝarĝan ekvilibron;
  • Maksimuma travidebleco por la uzanto aŭ programisto;
  • Subtenataj HTTP-metodoj: GET, HEAD, PUT kaj DELETE;
  • Kontrolo de legado kaj skriba konduto per klientaj kaplinioj;
  • Subteno por flekseblaj virtualaj gastigantoj;
  • Subteno por CRC-datumintegreco dum skribo/legado;
  • Duondinamikaj bufroj por minimuma konsumo de memoro kaj optimuma agordado de reto-efikeco;
  • Prokrastita datuma pakado;
  • Krome, plurfadena arĥivisto estas ofertita wZA movi dosierojn al Bolt-arkivoj sen ĉesigi la servon.

Kelkaj limigoj de la nuna eldono: ekzistas neniu subteno por Multipart, la POST-metodo, la HTTPS-protokolo, ligadoj por programlingvoj, rekursiva forigo de dosierujoj, ne ekzistas subteno por muntado de strukturo al la dosiersistemo per WebDAV aŭ FUSE, dosieroj estas konservitaj sub unu sistemuzanto. La stokadformato estas arkitekturo specifa kaj ne estas portebla inter Little Endian kaj Big Endian sistemoj. Malgraŭ la fakto, ke la wZD-servilo efektivigas subtenon por la HTTP-protokolo, ĝi devas esti lanĉita nur sub la aspekto de inversaj prokuriloj, kiel nginx kaj haproxy.

fonto: opennet.ru

Aldoni komenton