Unang release ng wZD 1.0.0, isang server para sa compact storage ng maliliit na file

Magagamit unang edisyon wZD 1.0.0 - isang server para sa mahusay na pag-iimbak ng isang malaking bilang ng mga file sa isang compact na form, na mula sa labas ay mukhang isang regular na WebDAV server. Ang isang binagong bersyon ay ginagamit para sa imbakan BoltDB. Ang code ng proyekto ay nakasulat sa Go at ipinamahagi ni sa ilalim ng lisensya ng BSD.

Server ay nagbibigay-daan sa Makabuluhang bawasan ang bilang ng maliliit na file sa regular o clustered file system na may ganap na suporta sa pag-lock. Ang cluster na sinusuportahan ng mga developer ng wZD ay nag-iimbak ng humigit-kumulang 250 milyong maliliit na file na ipinamamahagi sa 15 milyong mga direktoryo sa cluster file system MooseFS.

Ginagawang posible ng wZD na ilipat (i-archive) ang mga nilalaman ng mga direktoryo sa mga archive sa format na BoltDB at pagkatapos ay ipamahagi ang mga file na ito mula sa mga archive na ito (o ilagay ang mga file sa mga archive gamit ang PUT method), na makabuluhang binabawasan ang bilang ng mga file sa file system at binabawasan ang overhead ng pag-iimbak ng metadata. Upang mapataas ang kahusayan ng pagproseso ng malalaking file, maaaring i-save ang mga naturang file nang hiwalay mula sa mga archive ng Bolt. Ang diskarte na ito ay nagbibigay-daan sa iyo upang ayusin ang imbakan ng isang malaking bilang ng mga maliliit na file nang hindi nililimitahan ng limitasyon sa bilang ng mga inode sa file system.

Unang release ng wZD 1.0.0, isang server para sa compact storage ng maliliit na file

Ang server ay maaari ding gamitin bilang isang database ng NoSQL para sa data sa key/value format (na may sharding batay sa istraktura ng direktoryo) o para sa pamamahagi ng mga pre-generated na html o json na mga dokumento mula sa database. Sa mga tuntunin ng pagganap, ang pagpapadala at pagsusulat ng data gamit ang Bolt archive ay nagreresulta sa pagtaas ng latency na humigit-kumulang 20-25% kapag nagbabasa at ng 40-50% kapag nagsusulat. Kung mas maliit ang laki ng file, mas maliit ang pagkakaiba sa latency.

Unang release ng wZD 1.0.0, isang server para sa compact storage ng maliliit na file

Ang pangunahing pagkakataon:

  • Multithreading;
  • Multiserver, nagbibigay ng fault tolerance at load balancing;
  • Pinakamataas na transparency para sa user o developer;
  • Mga sinusuportahang pamamaraan ng HTTP: GET, HEAD, PUT at DELETE;
  • Kontrolin ang pag-uugali sa pagbabasa at pagsulat sa pamamagitan ng mga header ng kliyente;
  • Suporta para sa nababaluktot na virtual host;
  • Suporta para sa integridad ng data ng CRC kapag nagsusulat/nagbabasa;
  • Mga semi-dynamic na buffer para sa minimal na pagkonsumo ng memorya at pinakamainam na pag-tune ng pagganap ng network;
  • Ipinagpaliban ang packaging ng data;
  • Bilang karagdagan, ang isang multi-threaded archiver ay inaalok wZA upang ilipat ang mga file sa mga archive ng Bolt nang hindi humihinto sa serbisyo.

Ang ilang mga limitasyon ng kasalukuyang release: walang suporta para sa Multipart, ang pamamaraan ng POST, ang HTTPS protocol, mga binding para sa mga programming language, recursive na pagtanggal ng mga direktoryo, walang suporta para sa pag-mount ng isang istraktura sa file system sa pamamagitan ng WebDAV o FUSE, mga file ay naka-imbak sa ilalim ng isang user ng system. Ang format ng storage ay partikular sa arkitektura at hindi portable sa pagitan ng Little Endian at Big Endian system. Sa kabila ng katotohanan na ang wZD server ay nagpapatupad ng suporta para sa HTTP protocol, kailangan lang itong ilunsad sa ilalim ng pagkukunwari ng mga reverse proxy, tulad ng nginx at haproxy.

Pinagmulan: opennet.ru

Magdagdag ng komento