වෙබ් සේවා සඳහා මතකයේ ගෘහ නිර්මාණ ශිල්පය: තාක්ෂණික මූලධර්ම සහ මූලධර්ම

In-Memory යනු යෙදුමේ RAM හි ගබඩා කර ඇති විට දත්ත ගබඩා කිරීම සඳහා සංකල්ප සමූහයක් වන අතර තැටිය උපස්ථ කිරීම සඳහා භාවිතා කරයි. සම්භාව්‍ය ප්‍රවේශයන්හිදී, දත්ත තැටියේ ගබඩා කර ඇති අතර මතකය හැඹිලියේ ගබඩා වේ. උදාහරණයක් ලෙස, දත්ත සැකසීම සඳහා පසුබිමක් සහිත වෙබ් යෙදුමක් එය ගබඩා කිරීමට ඉල්ලයි: එය එය ලබා ගනී, එය පරිවර්තනය කරයි, සහ ජාලය හරහා දත්ත ගොඩක් මාරු කරනු ලැබේ. In-Memory හි, ගණනය කිරීම් දත්ත වෙත යවනු ලැබේ - ගබඩා කිරීමට, ඒවා සකසන ලද සහ ජාලය අඩුවෙන් පටවනු ලැබේ.

එහි ගෘහ නිර්මාණ ශිල්පයට ස්තූතිවන්ත වන්නට, In-Memory දත්ත ප්‍රවේශය කිහිප වතාවක් වේගවත් කරයි, සමහර විට විශාලත්වයේ ඇණවුම් පවා වේගවත් කරයි. උදාහරණයක් ලෙස, බැංකු විශ්ලේෂකයින්ට පසුගිය වසර සඳහා දිනෙන් දින ගතිකත්වයෙන් නිකුත් කරන ලද ණය පිළිබඳ වාර්තාවක් විශ්ලේෂණාත්මක යෙදුමක දැකීමට අවශ්‍ය වේ. මෙම ක්‍රියාවලිය සම්භාව්‍ය DBMS මත මිනිත්තු කිහිපයක් ගතවනු ඇත, නමුත් In-Memory සමඟ එය වහාම පාහේ දිස්වනු ඇත. මෙයට හේතුව ප්‍රවේශය මඟින් ඔබට තවත් බොහෝ තොරතුරු හැඹිලිගත කිරීමට ඉඩ ලබා දෙන අතර එය “අතට” RAM හි ගබඩා කර ඇත. යෙදුමට දෘඪ තැටියෙන් දත්ත ඉල්ලා සිටීමට අවශ්ය නොවේ, ජාලය සහ තැටි වේගය අනුව ලබා ගත හැකි බව සීමා වේ.

In-Memory සමඟ ඇති වෙනත් හැකියාවන් මොනවාද සහ මෙය කුමන ආකාරයේ ප්‍රවේශයක්ද? ව්ලැඩිමීර් ප්ලිගින් - GridGain හි ඉංජිනේරු. මෙම සමාලෝචන ද්‍රව්‍යය In-Memory සමඟ වැඩ කර නැති සහ උත්සාහ කිරීමට කැමති හෝ මෘදුකාංග සංවර්ධනයේ සහ ගෘහ නිර්මාණ සැලසුම්වල නවීන ප්‍රවණතා ගැන උනන්දුවක් දක්වන වෙබ් යෙදුම් පසුබිම් සංවර්ධකයින්ට ප්‍රයෝජනවත් වනු ඇත.

අදහස් දැක්වීම්. ලිපිය පදනම් වී ඇත්තේ #GetIT Conf හි ව්ලැඩිමීර්ගේ වාර්තාවේ පිටපත මතය. ස්වයං-හුදකලා කිරීම හඳුන්වාදීමට පෙර, අපි මොස්කව් සහ ශාන්ත පීටර්ස්බර්ග් හි සංවර්ධකයින් සඳහා නිතිපතා රැස්වීම් සහ සම්මන්ත්‍රණ පැවැත්වුවෙමු: අපි ප්‍රවණතා, වර්තමාන සංවර්ධන ගැටළු, ගැටළු සහ ඒවාට විසඳුම් සාකච්ඡා කළෙමු. දැන් සම්මන්ත්රණයක් පැවැත්විය නොහැක, නමුත් අතීතයේ සිට ප්රයෝජනවත් ද්රව්ය බෙදා ගැනීමට කාලයයි.

In-Memory භාවිතා කරන්නේ කවුද සහ කෙසේද

වේගවත් පරිශීලක අන්තර්ක්‍රියා හෝ විශාල දත්ත ප්‍රමාණයක් සැකසීම අවශ්‍ය වන විට In-Memory බොහෝ විට භාවිතා වේ.

  • බැංකු උදාහරණයක් ලෙස, In-Memory භාවිතා කරන්න, සේවාදායකයින් අයදුම්පත් භාවිතා කරන විට ප්‍රමාදයන් අඩු කිරීමට හෝ ණයක් නිකුත් කිරීමට පෙර සේවාදායකයා විශ්ලේෂණය කිරීමට.
  • ෆින්ටෙක් දත්ත සැකසීම සහ විශ්ලේෂණය බාහිරින් ලබා දෙන බැංකු සඳහා සේවා සහ යෙදුම්වල කාර්ය සාධනය වැඩි දියුණු කිරීමට In-Memory භාවිතා කරයි. 
  • රක්ෂණ සමාගම්: අවදානම් ගණනය කිරීමට, උදාහරණයක් ලෙස, වසර කිහිපයක් පුරා පාරිභෝගික දත්ත විශ්ලේෂණය කිරීමෙන්.
  • ලොජිස්ටික් සමාගම්. ඔවුන් දත්ත විශාල ප්‍රමාණයක් සකසයි, උදාහරණයක් ලෙස, දහස් ගණනක් පරාමිතීන් සහිත භාණ්ඩ ප්‍රවාහනය සහ මගී ප්‍රවාහනය සඳහා ප්‍රශස්ත මාර්ග ගණනය කිරීම සහ නැව්ගත කිරීම් වල තත්ත්වය නිරීක්ෂණය කිරීම.
  • සිල්ලර. මතකයේ ඇති විසඳුම් පාරිභෝගිකයින්ට වේගයෙන් සේවය කිරීමට සහ විශාල තොරතුරු ප්‍රමාණයක් සැකසීමට උපකාරී වේ: නැව්ගත කිරීම්, ඉන්වොයිසි, ගනුදෙනු, ගබඩාවල භාණ්ඩ දහස් ගණනක් තිබීම සහ විශ්ලේෂණ වාර්තා සකස් කිරීම.
  • В IoT In-Memory සම්ප්‍රදායික දත්ත සමුදායන් ප්‍රතිස්ථාපනය කරයි.
  • ඖෂධ සමාගම් ඖෂධ සංයුතියේ සංයෝජන හරහා වර්ග කිරීම සඳහා උදාහරණයක් ලෙස In-Memory භාවිතා කරයි. 

අපගේ ගනුදෙනුකරුවන් In-Memory විසඳුම් භාවිතා කරන ආකාරය සහ ඔබට ඒවා ක්‍රියාත්මක කළ හැකි ආකාරය පිළිබඳ උදාහරණ කිහිපයක් මම ඔබට කියන්නම්.

ප්‍රාථමික ආචයනය ලෙස මතකයේ ඇත

අපගේ එක් සේවාදායකයෙක් ඇමරිකා එක්සත් ජනපදයෙන් වෛද්‍ය විද්‍යාත්මක උපකරණ විශාල සැපයුම්කරුවෙකි. ඔවුන් ඔවුන්ගේ ප්‍රධාන දත්ත ගබඩාව ලෙස In-Memory විසඳුමක් භාවිතා කරයි. සියලුම දත්ත තැටියේ ගබඩා කර ඇති අතර, සක්‍රියව භාවිතා කරන දත්තවල උප කුලකය RAM හි තබා ඇත. ගබඩා ප්‍රවේශ ක්‍රම සම්මත වේ - GDBC (Generic Database Connector) සහ SQL විමසුම් භාෂාව.

වෙබ් සේවා සඳහා මතකයේ ගෘහ නිර්මාණ ශිල්පය: තාක්ෂණික මූලධර්ම සහ මූලධර්ම

මෙය සාමූහිකව In-Memory Database (IMDB) හෝ Memory-Centric Storage ලෙස හැඳින්වේ. මෙම විසඳුම් පන්තියට බොහෝ නම් ඇත, මේවා පමණක් නොවේ. 

IMDB විශේෂාංග:

  • මතකයේ ගබඩා කර ඇති සහ SQL හරහා ප්‍රවේශ වන දත්ත අනෙකුත් ප්‍රවේශයන් වලදී මෙන් ම වේ. ඒවා සමමුහුර්ත කර ඇත, ඉදිරිපත් කිරීමේ ආකාරය, ඒවාට ආමන්ත්‍රණය කරන ආකාරය පමණක් වෙනස් වේ. දත්ත අතර ගනුදෙනු ක්‍රියා කරයි.

  • IMDB Relational databases වලට වඩා වේගවත් නිසා RAM වලින් තොරතුරු ලබා ගැනීම තැටියෙන් ලබා ගැනීමට වඩා වේගවත් නිසා. 
  • අභ්‍යන්තර ප්‍රශස්තිකරණ ඇල්ගොරිතම වල උපදෙස් අඩුය.
  • IMDBs යෙදුම්වල දත්ත, සිදුවීම් සහ ගනුදෙනු කළමනාකරණය සඳහා සුදුසු වේ.

IMDBs ACID සඳහා අර්ධ වශයෙන් සහය දක්වයි: පරමාණුකත්වය, අනුකූලතාව සහ හුදකලා වීම. නමුත් ඔවුන් "කල්පැවැත්ම" සඳහා සහය නොදක්වයි - බලය අක්රිය වූ විට, සියලු දත්ත නැති වී යයි. ගැටළුව විසඳීම සඳහා, ඔබට ස්නැප්ෂොට් භාවිතා කළ හැකිය - දත්ත සමුදායේ "ස්නැප්ෂොට්", දෘඪ තැටියක දත්ත සමුදා උපස්ථයකට සමාන වේ, හෝ නැවත පණගැන්වීමෙන් පසු දත්ත ප්‍රතිසාධනය කිරීමට ගනුදෙනු (ලොග්) වාර්තා කරන්න.

වැරදි ඉවසන යෙදුම් නිර්මාණය කිරීමට

වැරදි ඉවසන වෙබ් යෙදුමක සම්භාව්‍ය ගෘහ නිර්මාණ ශිල්පය අපි සිතමු. එය මේ ආකාරයට ක්‍රියා කරයි: සියලුම ඉල්ලීම් සේවාදායකයන් අතර වෙබ් සමතුලිතයෙකු විසින් බෙදා හරිනු ලැබේ. මෙම පද්ධතිය ස්ථායී වන්නේ සේවාදායකයන් එකිනෙක අනුපිටපත් කර සිදුවීම් වලදී උපස්ථ කරන බැවිනි.

වෙබ් සේවා සඳහා මතකයේ ගෘහ නිර්මාණ ශිල්පය: තාක්ෂණික මූලධර්ම සහ මූලධර්ම

සමතුලිතය එක් සැසියකින් සියලුම ඉල්ලීම් දැඩි ලෙස එක් සේවාදායකයකට යොමු කරයි. මෙය සැරයටි සැසි යාන්ත්‍රණයකි: සෑම සැසියක්ම දේශීයව ගබඩා කර සකසන ලද සේවාදායකයක් සමඟ සම්බන්ධ වේ. 

එක් සේවාදායකයක් අසමත් වූ විට කුමක් සිදුවේද?

වෙබ් සේවා සඳහා මතකයේ ගෘහ නිර්මාණ ශිල්පය: තාක්ෂණික මූලධර්ම සහ මූලධර්ම

ගෘහ නිර්මාණ ශිල්පය අනුපිටපත් කර ඇති නිසා සේවාවට බලපෑමක් සිදු නොවේ. නමුත් අපට මිය ගිය සේවාදායකයේ සැසිවල උප කුලකයක් අහිමි වනු ඇත. ඒ අතරම, මෙම සැසිවලට බැඳී සිටින පරිශීලකයින්. නිදසුනක් වශයෙන්, සේවාදායකයා ඇණවුමක් ලබා දී හදිසියේම ඔහුව කාර්යාලයෙන් ඉවතට විසි කරයි. ඔහු නැවත ලොග් වී සියල්ල නැවත කළ යුතු බව දැනගත් විට ඔහු අසතුටට පත් වනු ඇත.

පරිශීලකයින් විශාල සංඛ්‍යාවක් සඳහා සහය දැක්වීමට වෙබ් යෙදුමක් අවශ්‍ය වන අතර ඔවුන්ට සුවපහසු ලෙස ක්‍රියා කළ හැකි වන පරිදි වේගය අඩු නොවේ. නමුත් එය ප්රතික්ෂේප කළහොත්, එක් එක් පසු ඉල්ලීම සමඟ සැසි ගබඩාව සමඟ සන්නිවේදනය කිරීමට ගතවන කාලය වැඩි වේ. මෙය අනෙකුත් පරිශීලකයින් සඳහා සාමාන්‍ය ප්‍රමාදය වැඩි කරයි. නමුත් ඔවුන් වෙනදාට වඩා වැඩි කාලයක් බලා සිටීමට කැමති නැත.

USA හි විශාල PASS සපයන්නෙකු වන අපගේ අනෙකුත් සේවාදායකයා මෙන් මෙම ගැටළුව විසඳිය හැකිය. එය වෙබ් සැසි පොකුරු කිරීමට In-Memory භාවිතා කරයි. මෙය සිදු කිරීම සඳහා, එය දේශීයව නොව, මධ්යගතව - මතකයේ පොකුරක් තුළ ගබඩා කරයි. මෙම අවස්ථාවෙහිදී, සැසිවාර දැනටමත් RAM හි ඇති නිසා වඩා වේගයෙන් ලබා ගත හැකිය.

වෙබ් සේවා සඳහා මතකයේ ගෘහ නිර්මාණ ශිල්පය: තාක්ෂණික මූලධර්ම සහ මූලධර්ම

සේවාදායකයක් බිඳ වැටුණු විට, සම්භාව්‍ය ගෘහ නිර්මාණ ශිල්පයේ මෙන්, සමතුලිතය බිඳ වැටුණු සේවාදායකයෙන් වෙනත් සේවාදායකයන් වෙත ඉල්ලීම් යවයි. නමුත් වැදගත් වෙනසක් ඇත: සැසි මතකයේ පොකුරක් තුළ ගබඩා කර ඇත සහ සේවාදායකයන්ට වැටී ඇති සේවාදායකයේ සැසි වෙත ප්‍රවේශය ඇත.

මෙම ගෘහ නිර්මාණ ශිල්පය සමස්ත පද්ධතියේ දෝෂ ඉවසීමේ හැකියාව වැඩි කරයි. එපමණක් නොව, කූරු සැසි යාන්ත්රණය සම්පූර්ණයෙන්ම අත්හැර දැමිය හැකිය.

දෙමුහුන් ගනුදෙනු විශ්ලේෂණ සැකසුම් (HTAP)

සාමාන්‍යයෙන්, ගනුදෙනු සහ විශ්ලේෂණ පද්ධති වෙන වෙනම තබා ඇත. ඔවුන් වෙන් වූ විට, ප්රධාන පදනම බර යටතේ පැමිණේ. විශ්ලේෂණ සැකසුම් සඳහා, දත්ත අනුරුවකට පිටපත් කරනු ලබන අතර එමඟින් විශ්ලේෂණ සැකසුම් ගනුදෙනු ක්‍රියාවලීන්ට බාධාවක් නොවේ. නමුත් පිටපත් කිරීම ප්‍රමාදයකින් සිදු වේ - එය ප්‍රමාදයකින් තොරව ප්‍රතිනිර්මාණය කළ නොහැක. අපි මෙය සමමුහුර්තව කළහොත්, එය ප්‍රධාන පදනම ද මන්දගාමී වන අතර අපට කිසිදු ජයග්‍රහණයක් නොලැබෙනු ඇත.

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

වෙබ් සේවා සඳහා මතකයේ ගෘහ නිර්මාණ ශිල්පය: තාක්ෂණික මූලධර්ම සහ මූලධර්ම

දෙමුහුන් ප්‍රවේශයක් ගනුදෙනු සැකසීම සහ විශ්ලේෂණ අතර බිත්තිය බිඳ දමයි. අපි එකම ගබඩාව මත විශ්ලේෂණ සිදු කරන්නේ නම්, RAM වෙතින් දත්ත මත විශ්ලේෂණ විමසුම් දියත් කෙරේ. ඒවා වඩාත් නිවැරදි, වඩා අර්ථකථනය කළ හැකි සහ ප්රමාණවත් වේ.

මතකයේ ඇති විසඳුම් ඒකාබද්ධ කිරීම

(සාපේක්ෂ) සරල ක්රමයක් - මුල සිට සෑම දෙයක්ම සංවර්ධනය කරන්න. අපි තැටියේ දත්ත තබා උණුසුම් දත්ත මතකයේ ගබඩා කරමු. මෙය සේවාදායක නැවත පණගැන්වීම් හෝ ඇනහිටීම් වලින් බේරීමට උපකාරී වේ.

තැටියේ දත්ත ගබඩා කර ඇති විට මෙහි ප්‍රධාන අවස්ථා දෙකක් ක්‍රියාත්මක වේ. පළමුවැන්න නම්, අපට පොකුරු හෝ කොටස්වල බිඳ වැටීම් හෝ නිතිපතා නැවත පණගැන්වීමෙන් බේරීමට අවශ්‍ය වේ - අපට එය සරල දත්ත ගබඩාවක් ලෙස භාවිතා කිරීමට අවශ්‍යය. දෙවන අවස්ථාවෙහිදී, බොහෝ දත්ත ඇති විට, සමහරක් මතකයේ ඇත.

මුල සිටම සෑම දෙයක්ම ගොඩනඟා ගැනීමට නොහැකි නම්, දැනටමත් මතකය තුළට ඒකාබද්ධ කළ හැකිය. පවතින ගෘහ නිර්මාණ ශිල්පය. නමුත් මේ සඳහා In-Memory විසඳුම් සියල්ලම සුදුසු නොවේ. අනිවාර්ය කොන්දේසි තුනක් තිබේ. මතකයේ ඇති විසඳුම සහාය විය යුතුය:

  • එය යටින් පිහිටා ඇති දත්ත සමුදායට සම්බන්ධ වීමට සම්මත මාර්ගය (උදාහරණයක් ලෙස, MySQL);
  • ගබඩාව සමඟ අන්තර්ක්‍රියා කිරීමේ තර්කය නැවත ලිවීමට සහ වෙනස් කිරීමට නොහැකි වන පරිදි සම්මත විමසුම් භාෂාවක්;
  • ගණුදෙණු - අන්තර්ක්‍රියාවේ අර්ථ ශාස්ත්‍රය ආරක්ෂා කිරීම.

කොන්දේසි තුනම සපුරා ඇත්නම්, ඒකාබද්ධ කිරීම කළ හැකිය. අපි යෙදුම සහ දත්ත සමුදාය අතර මතකයේ දත්ත ජාලකය තබමු. දැන් ලිවීමේ ඉල්ලීම් යටින් පවතින දත්ත ගබඩාවට පවරනු ලබන අතර, දත්ත හැඹිලියේ නොමැති නම් කියවීමේ ඉල්ලීම් යටින් පවතින දත්ත ගබඩාවට පවරනු ලැබේ.

වෙබ් සේවා සඳහා මතකයේ ගෘහ නිර්මාණ ශිල්පය: තාක්ෂණික මූලධර්ම සහ මූලධර්ම

දත්ත වෙත වේගවත් ප්‍රවේශය සහ එහි සැකසීම ඔබට වැදගත් නම්, උදාහරණයක් ලෙස, ව්‍යාපාර විශ්ලේෂණ සඳහා, ඔබට මතකයේ ක්‍රියාත්මක කිරීම ගැන සිතිය හැකිය. සහ ක්රියාත්මක කිරීම සඳහා, නව ගෘහ නිර්මාණ ශිල්පයක් නිර්මාණය කිරීමේදී ඔබට ක්රම දෙකම භාවිතා කළ හැකිය.

මූලාශ්රය: www.habr.com

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