பகிரப்பட்ட ஆதாரங்கள், முரண்பாடுகள், பகிரப்பட்ட அணுகல் - 1

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

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

"ஒரு நிரலை சுயாதீனமான (தளர்வாக இணைக்கப்பட்ட) பகுதிகளாகப் பிரிப்பது மிகவும் நன்மை பயக்கும்."

"உங்கள் நிரல் உள்நாட்டில் 100 இழைகளாகப் பிரிக்கப்பட்டுள்ளது என்று கற்பனை செய்து பாருங்கள். ஆனால் உங்களிடம் டூயல்-கோர் செயலி மட்டுமே உள்ளது. அதாவது ஒவ்வொரு மையத்திலும் சராசரியாக 50 இழைகள் செயல்படுத்தப்படும்."

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

"நிறுவன வளர்ச்சியில் ஜாவா ஆதிக்கம் செலுத்துவதற்கு இதுவும் ஒரு காரணம். ஒரு நிறுவனம் 20 டெவலப்பர்களால் எழுதப்பட்ட ஒரு சிக்கலான உள் நிரலைக் கொண்டிருந்தால், தேர்வுமுறை மூலம் நிரலின் செயல்திறனை இரட்டிப்பாக்குவதை விட மற்றொரு சேவையகத்தை வாங்குவது மிகவும் மலிவானது."

"அப்படியானால் அது தான்."

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

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

"மேலும், மிக முக்கியமாக, நூல்கள் பெரும்பாலும் ஒரே பொருள்களைப் பயன்படுத்துகின்றன (பொதுவாக 'பகிரப்பட்ட வளங்கள்' என்று அழைக்கப்படுகின்றன)."

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

"ஆம், எனக்கு நினைவிருக்கிறது. நீங்கள் அதை ஒத்திசைக்கப்பட்ட முக்கிய சொல்லைப் பயன்படுத்தி செய்கிறீர்கள்."

"மிகவும் சரியான."

"மற்றும் நூல்கள் வெவ்வேறு கோப்புகளுக்கு எழுதினால் என்ன செய்வது?"

"முறைப்படி, இவை வெவ்வேறு பொருள்கள், ஆனால் அவை ஒரே வன்வட்டில் இருக்கலாம்."

"அப்படியானால், செயலிக்குள் எதையாவது இணையாகச் செய்வது உண்மையில் சாத்தியமா?"

"தொழில்நுட்ப ரீதியாக, ஆம், ஆனால் உங்கள் நூலில் உள்ள தரவைத் தவிர வேறு ஏதாவது தேவைப்பட்டால், அது ஏற்கனவே வேறொரு நூலால் ஆக்கிரமிக்கப்படலாம் - மேலும் உங்கள் நூல் காத்திருக்க வேண்டும்."

"சரி, நான் என்ன செய்ய வேண்டும்? நான் நிறைய நூல்களை உருவாக்க வேண்டுமா இல்லையா என்று எனக்கு எப்படித் தெரியும்?"

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

"எனக்குத் தெரியாவிட்டால்?"

"இரண்டு விருப்பங்கள் உள்ளன:"

அ) செய்யும் ஒருவரின் மேற்பார்வையின் கீழ் வேலை

b) சில கட்டிகளை நீங்களே கண்டுபிடிக்கவும்

"நான் ஒரு ரோபோ: எனக்கு கட்டிகள் வராது - பற்கள் மட்டுமே."

"சரி, அப்படியானால், சில பற்கள் கிடைக்கும்."

"பார்க்கிறேன். நன்றி. நான் ஏற்கனவே வியக்கத் தொடங்கிய சில விஷயங்களை நீங்கள் தெளிவுபடுத்தியுள்ளீர்கள்."