Dragonfly 1.0 නිකුත් කිරීම, RAM හි දත්ත හැඹිලිගත කිරීමේ පද්ධතියකි

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

Redis හා සසඳන විට, Amazon EC2 c6gn.16xlarge පරිසරය තුළ සාමාන්‍ය වැඩ බර සඳහා Dragonfly කාර්ය සාධනයේ 25 ගුණයක වැඩිවීමක් (තත්පරයට මිලියන 3.8 ඉල්ලීම්) ලබා ගත්තේය. AWS c6gn.16xlarge පරිසරයේ Memcached හා සසඳන විට, Dragonfly තත්පරයකට 4.7 ගුණයකින් වැඩි ලිවීමේ ඉල්ලීම් (මිලියන 3.8 සහ 806 දහසක්) සහ තත්පරයකට 1.77 ගුණයකින් වැඩි කියවීම් ඉල්ලීම් (මිලියන 3.7 සහ මිලියන 2.1) සිදු කිරීමට සමත් විය.

Dragonfly 1.0 නිකුත් කිරීම, RAM හි දත්ත හැඹිලිගත කිරීමේ පද්ධතියකි

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

Dragonfly 1.0 නිකුත් කිරීම, RAM හි දත්ත හැඹිලිගත කිරීමේ පද්ධතියකි

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

Dragonfly හි සමහර විශේෂාංග:

  • නිදහස් මතකය අවසන් වූ පසු පැරණි දත්ත නව දත්ත සමඟ ස්වයංක්‍රීයව ප්‍රතිස්ථාපනය කරන හැඹිලි මාදිලිය.
  • දත්ත අදාළ යැයි සැලකෙන ජීවිත කාලය තුළ දත්තවලට බැඳීම සඳහා සහාය.
  • නැවත ආරම්භ කිරීමෙන් පසු ප්‍රතිසාධනය සඳහා පසුබිමේ ඇති තැටියට ගබඩා තත්ත්වය ෆ්ලෂ් කිරීම සඳහා සහාය.
  • පද්ධති කළමනාකරණය සඳහා HTTP කොන්සෝලයක් (TCP port 6379 වෙත බැඳී) සහ ප්‍රොමිතියස් සමඟ අනුකූල වන ප්‍රමිතික ආපසු යැවීම සඳහා API තිබීම.
  • Redis 185 නිකුතුවේ ක්‍රියාකාරීත්වයට දළ වශයෙන් සමාන වන Redis විධාන 5 සඳහා සහය දක්වයි.
  • CAS (check-and-set) හැර සියලුම Memcached විධාන සඳහා සහය දක්වයි.
  • ස්නැප්ෂොට් සෑදීම සඳහා අසමමුහුර්ත මෙහෙයුම් සඳහා සහාය.
  • පුරෝකථනය කළ හැකි මතක පරිභෝජනය.
  • බිල්ට්-ඉන් ලුවා 5.4 පරිවර්තකය.
  • හැෂ්, කට්ටල, ලැයිස්තු (ZSET, HSET, LIST, SETS සහ STRING) සහ JSON දත්ත වැනි සංකීර්ණ දත්ත වර්ග සඳහා සහය දක්වයි.
  • දෝෂ ඉවසීම සහ බර සමතුලිත කිරීම සඳහා ගබඩා අනුකරණය සඳහා සහය දක්වයි.

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

Dragonfly 1.0 අනුවාදය ප්‍රාථමික සේවාදායකයේ සිට ද්විතීයික එක දක්වා දත්ත අනුවර්තනය සඳහා සහය ක්‍රියාත්මක කිරීම සඳහා කැපී පෙනේ. කෙසේ වෙතත්, Dragonfly මත පදනම්ව හෝ Redis මත පදනම්ව ප්‍රාථමික සේවාදායකයකින් දත්ත ලබා ගන්නා ද්විතියික ගබඩාවක් ලෙස භාවිතා කිරීමට Dragonfly වින්‍යාසගත කළ හැක. අනුකරණ කළමනාකරණ API Redis සමඟ අනුකූල වන අතර එය ROLE සහ REPLICAOF (SLAVEOF) විධාන භාවිතය මත පදනම් වේ.

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

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