Ang Memcached 1.6.0 nga pagpagawas nga adunay suporta sa gawas nga pagtipig gilakip

nahitabo mahinungdanong pagpagawas sa in-memory data caching system Memcached 1.6.0, nga naglihok sa datos sa key/value format ug sayon ​​gamiton. Ang Memcached kasagarang gigamit isip usa ka gaan nga solusyon aron mapadali ang taas nga load nga mga site pinaagi sa pag-cache sa access sa DBMS ug intermediate data. Code gihatag ubos sa lisensya sa BSD.

Ang bag-ong bersyon nagpalig-on sa pagpatuman sa pagtipig "extstore", nga karon gitukod pinaagi sa default (aron pag-disable sa script sa pag-configure, ang kapilian nga "-disable-extstore" gihatag), apan nanginahanglan klaro nga pagpaaktibo sa pagsugod (ang daan nga mga pag-install magpadayon nga molihok nga wala’y mga pagbag-o pagkahuman sa pag-update). Bisan kung ang extstore sa kasagaran giisip nga lig-on, ang pag-amping gitambagan kung ipatuman kini sa dagkong mga sistema.

Gitugotan ka sa Extstore nga mogamit mga SSD/Flash drive aron mapalapad ang gidak-on sa cache. Sama sa RAM, ang Flash storage dili permanente ug gi-reset sa pagsugod pag-usab. Ang kasangkaran sa bag-ong mode mao ang pagsiguro sa episyente nga pag-cache sa dagkong datos. Kung gigamit ang "extstore", ang mga yawe ug metadata, sama sa kaniadto, gitipigan lamang sa RAM, apan ang dagkong datos nga may kalabutan sa mga yawe, ang gidak-on nga labaw sa usa ka gitakda nga threshold, gitipigan sa eksternal nga pagtipig, ug ang pointer lamang ang nagpabilin sa RAM.

Kung ang yawe nalangkit sa gamay nga datos, nan ang Memcached nagtrabaho sama sa naandan, nagtipig sa datos sa panumduman ug dili maka-access sa eksternal nga pagtipig. Kung adunay daghang libre nga panumduman, nan ang labing kinahanglan nga datos mahimo usab nga hingpit nga mahimutang sa cache sa RAM (pananglitan, mahimo nimong mahibal-an nga ang mga butang nga mas dako pa sa 1024 bytes nga wala ma-access sa 3600 segundos ang gi-reset sa Flash. ).

Ang pagpatuman gi-optimize aron masiguro ang labing taas nga pasundayag ug gamay nga pagkarga sa CPU, sa gasto sa kahusayan sa pagtipig (taas nga lebel sa pagkabahinbahin). Aron mapalawig ang kinabuhi sa mga Flash drive, ang data gi-buffer ug gi-flush sa pagtipig nga sunud-sunod. Aron matipigan ang kahimtang sa cache tali sa mga pag-restart, mahimo nimong gamiton ang abilidad nga nagpakita sa pagpagawas sa 1.5.18 aron ihulog ang cache dump sa usa ka file. Sa sunod nga pagsugod, mahimo nimong ibalik ang cache gikan sa kini nga file aron mawagtang ang mga taluktok sa load sa mga processor sa sulud tungod sa wala’y sulod nga cache (ang cache mahimong "mainit" dayon).

Ang ikaduha nga importante nga pagbag-o sa Memcached 1.6 mao ang pag-rework sa network communication code, nga gipahaum aron awtomatiko nga maproseso ang mga hangyo sa batch sulod sa usa ka tawag sa sistema. Kaniadto, kung magpadala daghang mga GET nga mga sugo sa usa ka TCP packet, ang memcached magpadala sa mga resulta nga adunay lahi nga mga tawag sa sistema. Sa Memcached 1.6, ang mga tubag giipon ug gibalik pinaagi sa pagpadala sa usa ka tawag sa sistema. Ingon usa ka sangputanan, karon adunay usa ka average nga 1.5 nga mga yawe matag tawag sa sistema, nga sa mga pagsulay nagpakita sa usa ka pagkunhod sa load sa CPU hangtod sa 25% ug usa ka pagkunhod sa latency sa daghang porsyento.

Ang pagdesinyo pag-usab sa subsystem sa network nagpaposible usab sa pagbalhin ngadto sa dinamikong alokasyon sa mga buffer kon gikinahanglan, imbes sa statically assign nga mga buffer. Kini nga pag-optimize nakunhuran ang konsumo sa memorya samtang naghulat sa bag-ong mga mando pinaagi sa koneksyon nga gitukod sa kliyente gikan sa 4.5 KB hangtod sa 400-500 bytes, ug nahimo usab nga posible nga makuha ang daghang mga tawag sa malloc, realloc ug libre, nga nagdala sa dili kinahanglan nga pagkabahinbahin sa memorya sa. mga sistema nga adunay daghang mga koneksyon. Ang matag thread sa trabahador karon nagdumala sa kaugalingon nga hugpong sa mga buffer sa pagbasa ug pagsulat alang sa mga aktibong koneksyon sa kliyente. Aron ma-adjust ang gidak-on niini nga mga buffer
ang mga opsyon nga β€œ-o resp_obj_mem_limit=N” ug β€œ-o read_buf_mem_limt=N” gihatag.

Gipahibalo usab sa Branch 1.6 ang pagtangtang sa binary nga protocol pakig-uban sa server. Ang binary protocol maintenance ug bug fixes magpadayon, apan ang mga bag-ong feature ug updates sa kasamtangang feature dili i-port. Text protocol magpadayon sa pagpalambo nga walay mga kausaban. Ang binary protocol gipulihan sa bag-ong protocol meta (usa ka teksto nga bersyon sa protocol nga adunay mga compact meta-commands), nga nagpakita sa labing maayo nga kombinasyon sa performance ug kasaligan. Ang bag-ong protocol naglangkob sa tanan nga mga operasyon nga magamit kaniadto pinaagi sa teksto ug binary nga mga protocol.

Source: opennet.ru

Idugang sa usa ka comment