மெகாபேக்: ஃபேக்டோரியோ டெவலப்பர்கள் 200 பிளேயர்களுக்கான மல்டிபிளேயர் பிரச்சனையை எவ்வாறு தீர்க்க முடிந்தது

மெகாபேக்: ஃபேக்டோரியோ டெவலப்பர்கள் 200 பிளேயர்களுக்கான மல்டிபிளேயர் பிரச்சனையை எவ்வாறு தீர்க்க முடிந்தது
இந்த ஆண்டு மே மாதம் நான் ஒரு வீரராக பங்கேற்றேன் MMO நிகழ்வுகள் KatherineOfSky. வீரர்களின் எண்ணிக்கை ஒரு குறிப்பிட்ட எண்ணிக்கையை அடையும் போது, ​​ஒவ்வொரு சில நிமிடங்களுக்கும் அவர்களில் சிலர் "விழும்" என்பதை நான் கவனித்தேன். அதிர்ஷ்டவசமாக உங்களுக்காக (ஆனால் எனக்காக அல்ல), துண்டிக்கப்பட்ட வீரர்களில் நானும் ஒருவன் ஒவ்வொரு முறையும், ஒரு நல்ல இணைப்புடன் கூட. நான் இதை ஒரு தனிப்பட்ட சவாலாக எடுத்துக்கொண்டு பிரச்சனைக்கான காரணங்களைத் தேட ஆரம்பித்தேன். மூன்று வார பிழைத்திருத்தம், சோதனை மற்றும் திருத்தங்களுக்குப் பிறகு, பிழை இறுதியாக சரி செய்யப்பட்டது, ஆனால் பயணம் அவ்வளவு எளிதாக இல்லை.

மல்டிபிளேயர் கேம்களில் உள்ள சிக்கல்களைக் கண்டறிவது மிகவும் கடினம். அவை பொதுவாக மிகவும் குறிப்பிட்ட நெட்வொர்க் அளவுருக்கள் மற்றும் மிகவும் குறிப்பிட்ட விளையாட்டு நிலைமைகளின் கீழ் நிகழ்கின்றன (இந்த விஷயத்தில், 200 க்கும் மேற்பட்ட வீரர்கள் உள்ளனர்). மேலும் சிக்கலை மீண்டும் உருவாக்க முடியும் என்றாலும், அதைச் சரியாகப் பிழைத்திருத்த முடியாது, ஏனெனில் பிரேக் பாயிண்ட்டைச் செருகுவது விளையாட்டை நிறுத்துகிறது, டைமர்களைக் குழப்புகிறது, மேலும் பொதுவாக இணைப்பு நேரம் முடிவடையும். ஆனால் விடாமுயற்சி மற்றும் ஒரு அற்புதமான கருவிக்கு நன்றி விகாரமான என்ன நடக்குதுன்னு கண்டுபிடிச்சேன்.

சுருக்கமாக, ஒரு பிழை மற்றும் தாமத நிலை உருவகப்படுத்துதலின் முழுமையற்ற செயல்பாட்டின் காரணமாக, ஒரு கடிகார சுழற்சியில் தோராயமாக 400 கேம் நிறுவனங்களின் பிளேயரின் உள்ளீட்டு தேர்வு செயல்களைக் கொண்ட பிணைய பாக்கெட்டை அனுப்ப வேண்டிய சூழ்நிலையில் கிளையன்ட் சில சமயங்களில் தன்னைக் கண்டறிவார் ( இதை "மெகா பாக்கெட்" என்று அழைக்கிறோம்). சேவையகம் இந்த உள்ளீட்டு செயல்கள் அனைத்தையும் சரியாகப் பெறுவது மட்டுமல்லாமல், மற்ற எல்லா வாடிக்கையாளர்களுக்கும் அனுப்ப வேண்டும். உங்களிடம் 200 வாடிக்கையாளர்கள் இருந்தால், இது விரைவில் சிக்கலாகிவிடும். சேவையகத்திற்கான இணைப்பு விரைவாக அடைக்கப்பட்டு, பாக்கெட் இழப்பு மற்றும் மீண்டும் கோரப்பட்ட பாக்கெட்டுகளின் அடுக்கை ஏற்படுத்துகிறது. உள்ளீடு செயலை தாமதப்படுத்துவதால், அதிகமான வாடிக்கையாளர்களுக்கு மெகாபேக்கெட்டுகளை அனுப்புகிறது, இதனால் பனிச்சரிவு இன்னும் பெரியதாகிறது. அதிர்ஷ்ட வாடிக்கையாளர்கள் குணமடைகிறார்கள்; மற்றவர்கள் அனைவரும் வீழ்ச்சியடைகிறார்கள்.

மெகாபேக்: ஃபேக்டோரியோ டெவலப்பர்கள் 200 பிளேயர்களுக்கான மல்டிபிளேயர் பிரச்சனையை எவ்வாறு தீர்க்க முடிந்தது
பிரச்சனை மிகவும் அடிப்படையானது மற்றும் அதை சரிசெய்ய எனக்கு 2 வாரங்கள் ஆனது. இது மிகவும் தொழில்நுட்பமானது, எனவே ஜூசியான தொழில்நுட்ப விவரங்களை கீழே விளக்குகிறேன். ஆனால் முதலில், ஜூன் 0.17.54 அன்று வெளியிடப்பட்ட பதிப்பு 4 முதல், தற்காலிக இணைப்பு சிக்கல்களை எதிர்கொண்டு, மல்டிபிளேயர் மிகவும் நிலையானதாக மாறியுள்ளது, மேலும் தாமதங்களை மறைப்பது மிகவும் குறைவான தரமற்றதாகிவிட்டது (குறைவான மந்தநிலை மற்றும் டெலிபோர்ட்டிங்) என்பதை நீங்கள் அறிந்து கொள்ள வேண்டும். போர் பின்னடைவு மறைந்திருக்கும் வழியையும் மாற்றியுள்ளேன், இது கொஞ்சம் மென்மையாக்கும் என்று நம்புகிறேன்.

மல்டிபிளேயர் மெகா பேக் - தொழில்நுட்ப விவரங்கள்

எளிமையாகச் சொல்வதென்றால், ஒரு கேமில் உள்ள மல்டிபிளேயர் இப்படிச் செயல்படுகிறது: அனைத்து வாடிக்கையாளர்களும் விளையாட்டின் நிலையை உருவகப்படுத்துகிறார்கள், பிளேயர் உள்ளீட்டை மட்டுமே பெறுகிறார்கள் மற்றும் அனுப்புகிறார்கள் ("உள்ளீடு செயல்கள்" என்று அழைக்கப்படுகிறது, உள்ளீடு செயல்கள்) சேவையகத்தின் முக்கிய பணி பரிமாற்றம் ஆகும் உள்ளீடு செயல்கள் மற்றும் அனைத்து வாடிக்கையாளர்களும் ஒரே கடிகார சுழற்சியில் ஒரே மாதிரியான செயல்களைச் செய்வதைக் கட்டுப்படுத்தவும். இதைப் பற்றி நீங்கள் இடுகையில் மேலும் படிக்கலாம் FFF-149.

என்ன செயல்களைச் செய்வது என்பது குறித்து சர்வர் முடிவெடுக்க வேண்டும் என்பதால், பிளேயரின் செயல்கள் தோராயமாக இந்தப் பாதையில் நகரும்: பிளேயர் செயல் -> கேம் கிளையன்ட் -> நெட்வொர்க் -> சர்வர் -> நெட்வொர்க் -> கேம் கிளையன்ட். இதன் பொருள் ஒவ்வொரு வீரரின் செயலும் நெட்வொர்க் முழுவதும் சுற்றுப்பயணம் செய்த பின்னரே செய்யப்படுகிறது. இதன் காரணமாக, விளையாட்டு மிகவும் மெதுவாகத் தோன்றும், எனவே விளையாட்டில் மல்டிபிளேயர் அறிமுகப்படுத்தப்பட்ட உடனேயே, தாமதங்களை மறைக்க ஒரு வழிமுறை அறிமுகப்படுத்தப்பட்டது. தாமதத்தை மறைப்பது மற்ற வீரர்களின் செயல்கள் மற்றும் சர்வரின் முடிவுகளை கணக்கில் எடுத்துக் கொள்ளாமல் பிளேயர் உள்ளீட்டை உருவகப்படுத்துகிறது.

மெகாபேக்: ஃபேக்டோரியோ டெவலப்பர்கள் 200 பிளேயர்களுக்கான மல்டிபிளேயர் பிரச்சனையை எவ்வாறு தீர்க்க முடிந்தது
ஃபேக்டோரியோ ஒரு விளையாட்டு நிலையைக் கொண்டுள்ளது விளையாட்டு மாநிலம் கார்டு, பிளேயர், நிறுவனங்கள் மற்றும் எல்லாவற்றின் முழுமையான நிலை. இது சர்வரில் இருந்து பெறப்பட்ட செயல்களின் அடிப்படையில் அனைத்து கிளையண்டுகளிலும் உறுதியாக உருவகப்படுத்தப்படுகிறது. கேம் நிலை புனிதமானது, அது எப்போதாவது சேவையகம் அல்லது வேறு எந்த கிளையண்டிலிருந்தும் வேறுபடத் தொடங்கினால், டிஸ்சின்க் ஏற்படுகிறது.

தவிர விளையாட்டு மாநிலம் எங்களுக்கு தாமதமான நிலை உள்ளது தாமத நிலை. இது தரை நிலையின் சிறிய துணைக்குழுவைக் கொண்டுள்ளது. தாமத நிலை புனிதமானது அல்ல, மேலும் விளையாட்டு நிலை எதிர்காலத்தில் பிளேயர் உள்ளீடுகளின் அடிப்படையில் எப்படி இருக்கும் என்பதைப் பற்றிய படத்தைக் குறிக்கிறது உள்ளீடு செயல்கள்.

இந்த நோக்கத்திற்காக, நாங்கள் உருவாக்கிய நகலை சேமிக்கிறோம் உள்ளீடு செயல்கள் தாமத வரிசையில்.

மெகாபேக்: ஃபேக்டோரியோ டெவலப்பர்கள் 200 பிளேயர்களுக்கான மல்டிபிளேயர் பிரச்சனையை எவ்வாறு தீர்க்க முடிந்தது
அதாவது, கிளையன்ட் பக்கத்தில் செயல்முறையின் முடிவில் படம் இதுபோல் தெரிகிறது:

  1. நாங்கள் விண்ணப்பிக்கிறோம் உள்ளீடு செயல்கள் அனைத்து வீரர்களுக்கும் விளையாட்டு மாநிலம் இந்த உள்ளீட்டு செயல்கள் சேவையகத்திலிருந்து பெறப்பட்ட விதம்.
  2. தாமத வரிசையில் இருந்து அனைத்தையும் அகற்றுவோம் உள்ளீடு செயல்கள், இது, சேவையகத்தின் படி, ஏற்கனவே பயன்படுத்தப்பட்டது விளையாட்டு மாநிலம்.
  3. அழி தாமத நிலை மற்றும் அதை மீட்டமைக்கவும், அது சரியாக இருக்கும் விளையாட்டு மாநிலம்.
  4. தாமத வரிசையில் இருந்து அனைத்து செயல்களையும் நாங்கள் பயன்படுத்துகிறோம் தாமத நிலை.
  5. தரவு அடிப்படையில் விளையாட்டு மாநிலம் и தாமத நிலை நாங்கள் விளையாட்டை வீரருக்கு வழங்குகிறோம்.

இவை அனைத்தும் ஒவ்வொரு அளவிலும் மீண்டும் மீண்டும் செய்யப்படுகின்றன.

மிகவும் கடினம்? ஓய்வெடுக்க வேண்டாம், இது எல்லாம் இல்லை. நம்பமுடியாத இணைய இணைப்புகளை ஈடுசெய்ய, நாங்கள் இரண்டு வழிமுறைகளை உருவாக்கியுள்ளோம்:

  • தவறவிட்ட உண்ணிகள்: சர்வர் அதை முடிவு செய்யும் போது உள்ளீடு செயல்கள் விளையாட்டின் துடிப்பில் செயல்படுத்தப்படும், பின்னர் அவர் பெறவில்லை என்றால் உள்ளீடு செயல்கள் சில வீரர் (உதாரணமாக, அதிகரித்த தாமதம் காரணமாக), அவர் காத்திருக்க மாட்டார், ஆனால் இந்த வாடிக்கையாளரிடம் தெரிவிப்பார் “நான் உங்கள் கணக்கில் எடுத்துக்கொள்ளவில்லை உள்ளீடு செயல்கள், அடுத்த பட்டியில் அவற்றைச் சேர்க்க முயற்சிக்கிறேன்." ஒரு பிளேயரின் இணைப்பில் (அல்லது கணினி) உள்ள சிக்கல்கள் காரணமாக, வரைபட புதுப்பிப்பு மற்ற அனைவருக்கும் மெதுவாக இருக்காது. என்பது குறிப்பிடத்தக்கது உள்ளீடு செயல்கள் புறக்கணிக்கப்படவில்லை, ஆனால் வெறுமனே ஒதுக்கி வைக்கவும்.
  • முழு சுற்று-பயண தாமதம்: ஒவ்வொரு கிளையண்டிற்கும் கிளையன்ட் மற்றும் சர்வருக்கு இடையே உள்ள சுற்று-பயண தாமதம் என்ன என்பதை சர்வர் யூகிக்க முயற்சிக்கிறது. ஒவ்வொரு 5 வினாடிகளுக்கும், தேவைப்பட்டால் கிளையண்டுடன் புதிய தாமதத்தை பேச்சுவார்த்தை நடத்துகிறது (கடந்த காலத்தில் இணைப்பு எவ்வாறு செயல்பட்டது என்பதன் அடிப்படையில்), அதற்கேற்ப சுற்று-பயண தாமதத்தை அதிகரிக்கிறது அல்லது குறைக்கிறது.

சொந்தமாக, இந்த வழிமுறைகள் மிகவும் எளிமையானவை, ஆனால் அவை ஒன்றாகப் பயன்படுத்தப்படும்போது (இது பெரும்பாலும் இணைப்புச் சிக்கல்களுடன் நிகழ்கிறது), குறியீட்டின் தர்க்கத்தை நிர்வகிப்பது கடினம் மற்றும் பல விளிம்பு நிகழ்வுகளுடன். கூடுதலாக, இந்த வழிமுறைகள் செயல்பாட்டுக்கு வரும்போது, ​​சேவையகம் மற்றும் தாமத வரிசை ஆகியவை சிறப்பாகச் செயல்படுத்தப்பட வேண்டும் உள்ளீடு செயல் என்ற தலைப்பில் ஸ்டாப் மூவ்மென்ட்இன் நெக்ஸ்ட்டிக். இதற்கு நன்றி, இணைப்பில் சிக்கல்கள் இருந்தால், பாத்திரம் சொந்தமாக இயங்காது (உதாரணமாக, ஒரு ரயில் முன்).

நிறுவனத் தேர்வு எவ்வாறு செயல்படுகிறது என்பதை இப்போது நாங்கள் உங்களுக்கு விளக்க வேண்டும். பரவும் வகைகளில் ஒன்று உள்ளீடு செயல் நிறுவனம் தேர்வு நிலையில் மாற்றம். பிளேயர் எந்த நிறுவனத்தின் மீது வட்டமிடுகிறார் என்பதை இது அனைவருக்கும் தெரிவிக்கிறது. நீங்கள் நினைப்பது போல், வாடிக்கையாளர்களால் அனுப்பப்படும் பொதுவான உள்ளீட்டு செயல்களில் இதுவும் ஒன்றாகும், எனவே அலைவரிசையைச் சேமிக்க, முடிந்தவரை குறைந்த இடத்தை எடுத்துக்கொள்ளும் வகையில் இதை மேம்படுத்தியுள்ளோம். இது செயல்படும் விதம் என்னவென்றால், ஒவ்வொரு நிறுவனமும் தேர்ந்தெடுக்கப்படும்போது, ​​முழுமையான, உயர் துல்லியமான வரைபட ஒருங்கிணைப்புகளை சேமிப்பதற்குப் பதிலாக, முந்தைய தேர்விலிருந்து குறைந்த துல்லியமான ஒப்பீட்டு ஆஃப்செட்டை கேம் சேமிக்கிறது. மவுஸ் தேர்வுகள் முந்தைய தேர்வுக்கு மிக நெருக்கமாக இருப்பதால் இது நன்றாக வேலை செய்கிறது. இது இரண்டு முக்கியமான தேவைகளை எழுப்புகிறது: உள்ளீடு செயல்கள் அவை ஒருபோதும் தவிர்க்கப்படக்கூடாது மற்றும் சரியான வரிசையில் முடிக்கப்பட வேண்டும். இந்த தேவைகள் பூர்த்தி செய்யப்படுகின்றன விளையாட்டு மாநிலம். ஆனால் பணி இருந்து தாமத நிலை வீரருக்கு "போதுமான தோற்றத்தில்", அவர்கள் தாமத நிலையில் திருப்தி அடையவில்லை. தாமத நிலை கணக்கில் எடுத்துக்கொள்வதில்லை பல முனை வழக்குகள், கடிகார சுழற்சிகளைத் தவிர்ப்பது மற்றும் சுற்று-பயண பரிமாற்ற தாமதங்களை மாற்றுவது ஆகியவற்றுடன் தொடர்புடையது.

இது எங்கு செல்கிறது என்பதை நீங்கள் ஏற்கனவே யூகிக்க முடியும். மெகாபேக் பிரச்சனைக்கான காரணங்களை நாங்கள் இறுதியாகப் பார்க்கத் தொடங்குகிறோம். பிரச்சனையின் மூல காரணம், நிறுவன தேர்வு தர்க்கம் சார்ந்துள்ளது தாமத நிலை, மேலும் இந்த நிலை எப்போதும் சரியான தகவலைக் கொண்டிருக்காது. எனவே, ஒரு மெகாபேக்கெட் இது போன்ற ஒன்றை உருவாக்குகிறது:

  1. பிளேயருக்கு இணைப்புச் சிக்கல்கள் உள்ளன.
  2. கடிகார சுழற்சிகளைத் தவிர்ப்பதற்கான வழிமுறைகள் மற்றும் சுற்று-பயண பரிமாற்றத்தின் தாமதத்தை ஒழுங்குபடுத்துதல் ஆகியவை செயல்பாட்டுக்கு வருகின்றன.
  3. தாமத நிலை வரிசை இந்த வழிமுறைகளை கணக்கில் எடுத்துக்கொள்ளவில்லை. இது சில செயல்கள் முன்கூட்டியே அகற்றப்படுவதற்கு அல்லது தவறான வரிசையில் செய்யப்படுவதற்கு காரணமாகிறது, இதன் விளைவாக தவறானது தாமத நிலை.
  4. பிளேயருக்கு இணைப்புச் சிக்கல் உள்ளது, மேலும் சேவையகத்தைப் பிடிக்க, 400 சுழற்சிகள் வரை உருவகப்படுத்துகிறது.
  5. ஒவ்வொரு குறிப்பிலும், ஒரு புதிய செயல், நிறுவனத் தேர்வை மாற்றி, உருவாக்கி, சேவையகத்திற்கு அனுப்புவதற்குத் தயாராகிறது.
  6. கிளையன்ட் 400+ நிறுவனத் தேர்வு மாற்றங்களின் மெகா-தொகுதியை சேவையகத்திற்கு அனுப்புகிறது (மற்றும் பிற செயல்களுடன்: படப்பிடிப்பு நிலைகள், நடைபயிற்சி நிலைகள் போன்றவையும் இந்த சிக்கலால் பாதிக்கப்பட்டுள்ளன).
  7. சேவையகம் 400 உள்ளீட்டு செயல்களைப் பெறுகிறது. எந்த உள்ளீட்டுச் செயல்களையும் தவிர்க்க இது அனுமதிக்கப்படாததால், அந்தச் செயல்களைச் செய்யும்படி அனைத்து கிளையன்ட்களுக்கும் கட்டளையிட்டு, பிணையம் முழுவதும் அனுப்புகிறது.

முரண்பாடு என்னவென்றால், அலைவரிசையைச் சேமிக்க வடிவமைக்கப்பட்ட ஒரு பொறிமுறையானது பெரிய நெட்வொர்க் பாக்கெட்டுகளை உருவாக்கியது.

புதுப்பிப்பு மற்றும் பேக்லாக் வரிசை ஆதரவின் அனைத்து விளிம்பு நிலைகளையும் சரிசெய்வதன் மூலம் இந்த சிக்கலை நாங்கள் தீர்க்கிறோம். இது சிறிது நேரம் எடுத்தாலும், இறுதியில் விரைவான ஹேக்குகளை நம்புவதை விட அதை சரியாகப் பெறுவது மதிப்பு.

ஆதாரம்: www.habr.com

கருத்தைச் சேர்