ඩ්‍රැගන්ෆ්ලයි ව්‍යාපෘතිය Redis සහ Memcached සඳහා වේගවත් ආදේශනයක් සංවර්ධනය කරමින් සිටී

Dragonfly in-memory caching පද්ධතියේ පළමු නිකුතුව ලබා ගත හැකි අතර, Memcached සහ Redis ප්‍රොටෝකෝල සඳහා සහය ලබා දෙයි, නමුත් විමසුම් ඉතා ඉහළ කාර්ය සාධනයක් සහ අඩු මතක පරිභෝජනයකින් ක්‍රියාත්මක කිරීමට ඉඩ සලසයි. පද්ධතිය ප්‍රධාන/අගය ආකෘතියෙන් දත්ත හසුරුවන අතර ඉහළ බරක් ඇති අඩවිවල වැඩ වේගවත් කිරීමට, DBMS වෙත මන්දගාමී විමසුම් හැඹිලි කිරීමට සහ RAM හි අතරමැදි දත්ත සඳහා සැහැල්ලු විසඳුමක් ලෙස භාවිතා කළ හැක. Dragonfly කේතය C/C++ වලින් ලියා ඇති අතර BSL (ව්‍යාපාර මූලාශ්‍ර බලපත්‍රය) යටතේ බෙදා හරිනු ලැබේ.

BSL බලපත්‍රය Open Core ආකෘතියට විකල්පයක් ලෙස MySQL හි සම-නිර්මාතෘවරුන් විසින් යෝජනා කරන ලදී. BSL හි සාරය නම් උසස් ක්‍රියාකාරීත්ව කේතය මුලින් වෙනස් කිරීම සඳහා ලබා ගත හැකි නමුත් යම් කාලයක් සඳහා නොමිලයේ භාවිතා කළ හැක්කේ අමතර කොන්දේසි සපුරා ඇත්නම් පමණි, එය මග හැරීම සඳහා වාණිජ බලපත්‍රයක් මිලදී ගැනීම අවශ්‍ය වේ. Dragonfly ව්‍යාපෘතියේ අතිරේක බලපත්‍ර කොන්දේසි වලට කේතය Apache 2.0 බලපත්‍රය වෙත මාරු කිරීම අවශ්‍ය වන්නේ 1 ජූනි 2027 දින පමණි. මෙම කාලය වන තුරු, බලපත්‍රය කේතය භාවිතා කිරීමට ඉඩ දෙන්නේ එහි සේවාවන් සහ නිෂ්පාදනවල ක්‍රියාකාරිත්වය සහතික කිරීම සඳහා පමණි, නමුත් Dragonfly වෙත ඇඩෝනයක් ලෙස ක්‍රියා කරන ගෙවන වලාකුළු සේවා නිර්මාණය කිරීම සඳහා භාවිතා කිරීම තහනම් කරයි.

සංවර්ධකයින් සහ නිරූපිත පරීක්ෂණ වලට අනුව, Dragonfly වේගවත්ම මතක ගබඩා පද්ධතියට හිමිකම් කියයි. Redis හා සසඳන විට, Dragonfly කාර්ය සාධනයේ 25 ගුණයක වැඩිවීමක් සහ සාමාන්‍ය වැඩ බර සඳහා මතක පරිභෝජනය තුන් ගුණයකින් අඩු කර ඇත. එක් Dragonfly සේවාදායකයකට තත්පරයකට මිලියන ගණනක් ඉල්ලීම් ක්‍රියාවට නැංවිය හැක, උදාහරණයක් ලෙස Amazon EC2 c6gn.16xlarge පරිසරය තුළ තත්පරයකට ඉල්ලීම් මිලියන 3.8 ක කාර්ය සාධනයක් ලබා ගැනීමට හැකි විය.

ඩ්‍රැගන්ෆ්ලයි ව්‍යාපෘතිය Redis සහ Memcached සඳහා වේගවත් ආදේශනයක් සංවර්ධනය කරමින් සිටී

5 GB දත්ත ගබඩා කිරීම සඳහා වූ පරීක්ෂණවලදී, Dragonfly හට Redis ට වඩා 30% අඩු මතකයක් අවශ්‍ය විය. “bgsave” විධානය සමඟ ස්නැප්ෂොට් නිර්මාණය කරන විට, මතක පරිභෝජනය වැඩි වේ, නමුත් උපරිම අවස්ථාවන්හිදී එය රෙඩිස් වලට වඩා තුන් ගුණයකින් අඩුය, සහ ස්නැප්ෂොට් පටිගත කිරීමේ ක්‍රියාවලිය ඉතා වේගවත් වේ (පරීක්ෂණයේදී, ඩ්‍රැගන්ෆ්ලයි හි ස්නැප්ෂොට් එකක් ලියා ඇත්තේ 30 දී ය. තත්පර, රෙඩිස් - තත්පර 42 කින්).

ඩ්‍රැගන්ෆ්ලයි ව්‍යාපෘතිය Redis සහ Memcached සඳහා වේගවත් ආදේශනයක් සංවර්ධනය කරමින් සිටී

ඉහළ කාර්ය සාධනයක් ලබා ගන්නේ සම්පත් බෙදා නොගැනීමෙන් (බෙදාගත්-කිසිවක් නැත) බහු-නූල් ගෘහනිර්මාණ ශිල්පයකට ස්තුති වන්නට, එයින් අදහස් වන්නේ එක් එක් ත්‍රෙඩ් එකකට තමන්ගේම දත්ත කොටසක් සහිත වෙනම වෙනම ප්‍රොසෙසරයක් පවරා ඇති අතර, මුටෙක්ස් සහ ස්පින් ලොක් නොමැතිව ක්‍රියා කරන බවයි. බහු යතුරු සමඟ වැඩ කිරීමේදී පරමාණුක බව සහතික කිරීම සඳහා, සැහැල්ලු VLL අගුල් භාවිතා වේ. මතකයේ තොරතුරු කාර්යක්ෂමව ගබඩා කිරීම සඳහා, ඩෑෂ් ටේබල් ව්‍යුහය භාවිතා කරනු ලැබේ, එය කොටස් කළ හැෂ් වගුවක් ක්‍රියාත්මක කරයි.

පළමු නිකුතුවේ ඇති විශේෂාංග අතර, RESP2 ප්‍රොටෝකෝලය සහ 130 Redis විධාන සඳහා සහය සටහන් කර ඇත, එය ආසන්න වශයෙන් Redis 2.8 නිකුතුවේ ක්‍රියාකාරීත්වයට අනුරූප වේ. මීට අමතරව, Dragonfly CAS (check-and-set) හැර අනෙකුත් සියලුම memcached විධාන සඳහා සහය දක්වයි, ස්නැප්ෂොට් නිර්මාණය කිරීම සඳහා අසමමුහුර්ත මෙහෙයුම් සඳහා සහය සපයයි, පුරෝකථනය කළ හැකි මතක පරිභෝජනය සපයයි, බිල්ට්-ඉන් Lua 5.4 පරිවර්තකයක් සපයයි, සහ හැෂ් වැනි සංකීර්ණ දත්ත වර්ග සඳහා සහය දක්වයි. කට්ටල, සහ ලැයිස්තු (ZSET, HSET, LIST, SETS සහ STRING).

නිදහස් මතකය අවසන් වූ පසු පැරණි දත්ත නව දත්ත සමඟ ස්වයංක්‍රීයව ප්‍රතිස්ථාපනය කරන හැඹිලි මාදිලියක් වෙන වෙනම ඇත. දත්ත අදාළ යැයි සලකන දත්ත වලට ජීවිත කාලයක් ඇමිණිය හැකිය. නැවත ආරම්භ කිරීමෙන් පසු නැවත යථා තත්ත්වයට පත් කිරීම සඳහා ගබඩා තත්ත්වය පසුබිමේ ඇති තැටියට ෆ්ලෂ් කළ හැක. පද්ධතිය කළමනාකරණය කිරීම සඳහා, HTTP කොන්සෝලයක් සපයනු ලැබේ (TCP port 6379 වෙත බැඳේ) සහ ප්‍රොමිතියස් සමඟ අනුකූල වන ප්‍රමිතික ආපසු යැවීම සඳහා API. අනාගත අනුවාදවලදී, අපි Redis විධාන සඳහා සහය පුළුල් කිරීමට සහ දෝෂ ඉවසීම සහ පැටවීම තුලනය සැපයීම සඳහා ගබඩාව ප්‍රතිනිර්මාණය කිරීමේ හැකියාව ක්‍රියාත්මක කිරීමට සැලසුම් කරමු.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න