ʻO ka hoʻokuʻu mua ʻana o wZD 1.0.0, kahi kikowaena mālama paʻa no nā faila liʻiliʻi

Loaʻa paʻi mua wZD 1.0.0 - kahi kikowaena no ka mālama pono ʻana i ka nui o nā faila ma kahi ʻano paʻa, kahi mai waho e like me kahi kikowaena WebDAV maʻamau. Hoʻohana ʻia kahi mana i hoʻololi ʻia no ka mālama ʻana BoltDB. Ua kākau ʻia ke code papahana ma Go a mahele ʻia e ma lalo o ka laikini BSD.

Server Ua apono E hoʻemi nui i ka helu o nā faila liʻiliʻi ma nā ʻōnaehana faila maʻamau a i ʻole pūʻulu me ke kākoʻo paʻa piha. ʻO ka puʻupuʻu i kākoʻo ʻia e nā mea hoʻomohala wZD e mālama ana ma kahi o 250 miliona mau faila liʻiliʻi i māhele ʻia ma waena o 15 miliona mau papa kuhikuhi ma ka ʻōnaehana faila cluster. MooseFS.

Hiki i ka wZD ke hoʻoneʻe (archive) i nā ʻike o nā papa kuhikuhi i loko o nā waihona ma ke ʻano BoltDB a laila e puʻunaue i kēia mau faila mai kēia mau waihona (a i ʻole e waiho i nā faila i loko o nā waihona me ka hoʻohana ʻana i ke ʻano PUT), e hōʻemi nui ana i ka nui o nā faila i ka ʻōnaehana faila a e hōʻemi ana i ke poʻo o ka mālama ʻana i nā metadata. No ka hoʻonui ʻana i ka pono o ka hoʻoili ʻana i nā faila nui, hiki ke mālama ʻia ia mau faila mai nā waihona Bolt. ʻO kēia ala e hiki ai iā ʻoe ke hoʻonohonoho i ka mālama ʻana i ka nui o nā faila liʻiliʻi me ka ʻole e kaupalena ʻia e ka palena o ka helu o nā inodes i ka ʻōnaehana faila.

ʻO ka hoʻokuʻu mua ʻana o wZD 1.0.0, kahi kikowaena mālama paʻa no nā faila liʻiliʻi

Hiki ke hoʻohana ʻia ke kikowaena ma ke ʻano he waihona NoSQL no ka ʻikepili ma ke ʻano kī/waiwai (me ka sharding e pili ana i ka papa kuhikuhi) a i ʻole no ka hāʻawi ʻana i nā palapala html a i ʻole json i hana mua ʻia mai ka waihona. Ma ke ʻano o ka hana, hoʻouna a kākau ʻana i ka ʻikepili me ka hoʻohana ʻana i nā waihona Bolt i ka piʻi ʻana o ka latency ma kahi o 20-25% i ka heluhelu ʻana a me 40-50% i ke kākau ʻana. ʻOi aku ka liʻiliʻi o ka faila, ʻoi aku ka liʻiliʻi o ka ʻokoʻa o ka latency.

ʻO ka hoʻokuʻu mua ʻana o wZD 1.0.0, kahi kikowaena mālama paʻa no nā faila liʻiliʻi

ka papa kuhikuhiE kūpono:

  • Multithreading;
  • Multiserver, e hāʻawi ana i ka hoʻomanawanui hewa a me ke kaupaona ʻana;
  • ʻO ka ʻike nui loa no ka mea hoʻohana a mea hoʻomohala paha;
  • Kākoʻo ʻia nā ʻano HTTP: GET, HEAD, PUT a DELETE;
  • Ka mālama ʻana i ka heluhelu a me ke kākau ʻana ma o nā poʻomanaʻo o nā mea kūʻai aku;
  • Kākoʻo no nā pūʻali virtual maʻalahi;
  • Kākoʻo no ka pono o ka ʻikepili CRC ke kākau/heluhelu;
  • Nā pale Semi-dynamic no ka hoʻohana ʻana i ka hoʻomanaʻo liʻiliʻi a me ka hoʻokō pono ʻana o ka ʻoihana pūnaewele;
  • Hoʻopili ʻikepili i hoʻopaneʻe ʻia;
  • Eia kekahi, hāʻawi ʻia kahi waihona waihona multi-threaded wZA e hoʻoneʻe i nā faila i nā waihona Bolt me ​​ka hoʻōki ʻole i ka lawelawe.

ʻO kekahi mau palena o ka hoʻokuʻu ʻana i kēia manawa: ʻaʻohe kākoʻo no Multipart, ke ʻano POST, ka protocol HTTPS, nā hoʻopaʻa ʻana no nā ʻōlelo hoʻonohonoho, hoʻopau hou ʻana i nā papa kuhikuhi, ʻaʻohe kākoʻo no ka hoʻokomo ʻana i kahi ʻōnaehana i ka ʻōnaehana faila ma o WebDAV a i ʻole FUSE, nā faila. mālama ʻia ma lalo o hoʻokahi mea hoʻohana pūnaewele. ʻO ke ʻano o ka waiho ʻana he mea hoʻolālā kikoʻī a ʻaʻole hiki ke lawe ʻia ma waena o nā ʻōnaehana Little Endian a me Big Endian. ʻOiai ke hoʻokō nei ka server wZD i ke kākoʻo no ka protocol HTTP, pono e hoʻokuʻu wale ʻia ma lalo o ke ʻano o nā proxies reverse, e like me ka nginx a me ka haproxy.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka