Memcached 1.6.0-ի թողարկում՝ միացված արտաքին պահեստավորման աջակցությամբ

տեղի ունեցավ հիշողության մեջ տվյալների քեշավորման համակարգի զգալի թողարկում Memcached 1.6.0, որը գործում է բանալի/արժեքի ձևաչափով տվյալների վրա և հեշտ է օգտագործել։ Memcached-ը սովորաբար օգտագործվում է որպես թեթև լուծում՝ բարձր բեռնված կայքերի աշխատանքը արագացնելու համար՝ քեշավորելով մուտքը DBMS և միջանկյալ տվյալներ: Կոդ մատակարարված BSD լիցենզիայի ներքո:

Նոր տարբերակը կայունացնում է պահեստի իրականացումը »extstore", որն այժմ կառուցված է լռելյայն (կարգավորման սկրիպտում անջատելու համար տրամադրվում է "-disable-extstore" տարբերակը), բայց պահանջում է հստակ ակտիվացում գործարկման ժամանակ (հին տեղադրումները կշարունակեն աշխատել առանց փոփոխությունների թարմացումից հետո): Չնայած extstore-ը սովորաբար համարվում է կայուն, խորհուրդ է տրվում զգուշություն ցուցաբերել այն շատ մեծ համակարգերում կիրառելիս:

Extstore-ը թույլ է տալիս օգտագործել SSD/Flash կրիչներ՝ քեշի չափն ընդլայնելու համար: Ինչպես RAM-ի դեպքում, Flash-ի պահեստը մշտական ​​չէ և վերագործարկվելուց հետո վերականգնվում է: Նոր ռեժիմի շրջանակը մեծ տվյալների արդյունավետ քեշավորում ապահովելն է: «extstore»-ն օգտագործելիս ստեղները և մետատվյալները, ինչպես նախկինում, պահվում են միայն RAM-ում, սակայն բանալիների հետ կապված մեծ տվյալներ, որոնց չափը գերազանցում է սահմանված շեմը, պահվում է արտաքին պահեստում, և միայն ցուցիչը մնում է RAM-ում:

Եթե ​​բանալին կապված է փոքր տվյալների հետ, ապա Memcached-ը աշխատում է ինչպես միշտ, պահում է տվյալները հիշողության մեջ և չի մուտք գործում արտաքին պահեստ: Եթե ​​կա շատ ազատ հիշողություն, ապա առավել անհրաժեշտ տվյալները կարող են լրացուցիչ տեղակայվել RAM-ի քեշում (օրինակ, կարող եք նշել, որ միայն 1024 բայթից ավելի մեծ օբյեկտները, որոնց հասանելի չեն եղել 3600 վայրկյան, վերականգնվում են Flash-ի: ).

Իրականացումը օպտիմիզացված է՝ ապահովելու առավելագույն կատարումը և պրոցեսորի նվազագույն բեռնվածությունը՝ ի հաշիվ պահեստավորման արդյունավետության (հատվածության բարձր մակարդակ): Ֆլեշ կրիչների ծառայության ժամկետը երկարացնելու համար տվյալները պահվում են բուֆերում և հաջորդաբար տեղափոխվում պահեստ: Քեշի վիճակը վերագործարկումների միջև պահպանելու համար կարող եք օգտագործել 1.5.18 թողարկման մեջ հայտնված հնարավորությունը՝ քեշի աղբարկղը ֆայլի մեջ նետելու համար: Հաջորդ գործարկման ժամանակ դուք կարող եք վերականգնել քեշը այս ֆայլից՝ բովանդակության պրոցեսորների բեռնվածության գագաթնակետերը վերացնելու համար՝ քեշի դատարկ լինելու պատճառով (քեշն անմիջապես դառնում է «տաք»):

Memcached 1.6-ի երկրորդ կարևոր փոփոխությունը ցանցային հաղորդակցության կոդի վերամշակումն էր, որը հարմարեցված է խմբաքանակի հարցումները ավտոմատ կերպով մշակելու մեկ համակարգային զանգի ընթացքում: Նախկինում GET մի քանի հրամաններ ուղարկելիս մեկ TCP փաթեթում, memcached-ը արդյունքներն ուղարկում էր առանձին համակարգային զանգերով: Memcached 1.6-ում պատասխանները հավաքվում և վերադարձվում են՝ ուղարկելով մեկ համակարգային զանգ: Արդյունքում, այժմ կա միջինը 1.5 ստեղն մեկ համակարգային զանգի համար, ինչը թեստերում ցույց է տալիս CPU-ի բեռնվածության կրճատում մինչև 25% և ուշացման մի քանի տոկոսով նվազում:

Ցանցի ենթահամակարգի վերանախագծումը նաև հնարավորություն տվեց անցնել բուֆերների դինամիկ տեղաբաշխմանը ըստ անհրաժեշտության՝ ստատիկ կերպով բուֆերներ նշանակելու փոխարեն: Այս օպտիմիզացումը նվազեցրեց հիշողության սպառումը հաճախորդի կողմից հաստատված կապի միջոցով նոր հրամանների սպասելիս՝ 4.5 ԿԲ-ից մինչև 400-500 բայթ, ինչպես նաև հնարավորություն տվեց ազատվել բազմաթիվ զանգերից դեպի malloc, realloc և free, որոնք հանգեցնում են հիշողության անհարկի մասնատմանը: համակարգեր մեծ թվով միացումներով: Յուրաքանչյուր աշխատանքային շղթա այժմ մշակում է կարդալու և գրելու բուֆերների իր հավաքածուն ակտիվ հաճախորդի միացումների համար: Այս բուֆերների չափը կարգավորելու համար
տրամադրված են «-o resp_obj_mem_limit=N» և «-o read_buf_mem_limt=N» տարբերակները:

Մասնաճյուղ 1.6-ը նույնպես հայտարարել է չեղյալ հայտարարելու մասին երկուական արձանագրություն սերվերի հետ փոխազդեցություն: Երկուական արձանագրության պահպանումը և սխալների շտկումը կշարունակվեն, սակայն նոր գործառույթներն ու առկա գործառույթների թարմացումները չեն տեղափոխվի: Տեքստային արձանագրություն կշարունակի զարգանալ առանց փոփոխությունների։ Երկուական արձանագրությունը փոխարինվել է նոր արձանագրությամբ meta (արձանագրության տեքստային տարբերակը կոմպակտ մետա-հրամաններով), ցուցադրելով կատարման և հուսալիության օպտիմալ համադրություն: Նոր արձանագրությունն ընդգրկում է բոլոր գործողությունները, որոնք նախկինում հասանելի էին տեքստային և երկուական արձանագրությունների միջոցով:

Source: opennet.ru

Добавить комментарий