18 நவம்பர் 2018

13. கட்டுடைப்பு, கட்டாயம் உயர்வு தரும்!

By ஜெ. ராம்கி| Published: 17th July 2018 12:00 AM

 

‘ச்சே.. வேலையைப் பார்க்க முடியலை! வரிசையா அஞ்சாறு போன் கால்ஸ்.. வந்துட்டே இருக்கு.. இன்சூரன்ஸ், இன்வெஸ்ட்மெண்ட் பிளான், ஹாலிடே ஆஃபர்னு விடாம துரத்தி, தொல்லை பண்றானுங்க’ என்றார் நண்பர். ‘பெரிய தொகை ஏதாவது மணி டிராஸ்ஃபர் செய்தீர்களா?’ என்றேன். ‘ஆமா, நேத்து 2 லட்ச ரூபாய் ஃபிக்ஸட் டெபாசிட் மெச்சூர் ஆச்சு. அதை எடுத்து வேற அக்கௌண்ட்ல போட்டேன்’ என்றார்.

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

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

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

வங்கிப் பரிமாற்றங்கள் அனைத்தையும் ஓரிடத்தில் சேமிக்க முடியுமா? சேமித்தால் மட்டுமே அவற்றை ஆராய முடியும். பரிமாற்றங்கள் என்றால் வெற்றிகரமான பரிமாற்றங்கள் மட்டுமல்ல; தோல்வியில் முடிந்த பரிமாற்றங்களையும் கண்காணிக்க வேண்டும். ஆதிகாலத்து DB2 அல்லது ஆரக்கிள் போன்ற ரிலேஷனல் டேட்டா பேஸ் சிஸ்டத்தை வைத்துக்கொண்டு இதையெல்லாம் செய்ய முடியுமா?

நிச்சயம் முடியாது. ஒரு சில நொடிகளில் லட்சக்கணக்கான பரிமாற்றங்கள் நிகழும். அவற்றைச் சேமிக்கவே சில நொடிகள் ஆகிவிடும். அப்படியென்றால், பழைய டேட்டா பேஸ் சிஸ்டத்தை வைத்துக்கொண்டு எதையும் செய்ய முடியாதா? ஏற்கெனவே நல்லபடியாகச் செயல்பட்டுவரும் ரிலேஷனல் டேட்டா பேஸில் என்னதான் குறை?

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

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

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

டேட்டா பேஸ் உலகில், செயல்திறனை (performance) மேம்படுத்த ஒரு சில வழிகள் மட்டுமே இதுரை மேற்கொள்ளப்படுகின்றன. செயல்திறனைக் கூட்டுவதற்கு முதல்கட்டமாக RAM மெமரியை அப்கிரேட் செய்வார்கள். 2 ஜிபி மெமரியோடு கூடுதலாக இன்னொரு 2 ஜிபி அல்லது 4 ஜிபி ராம் மெமிரியை ஸ்லாட்டில் பொருத்துவார்கள். இல்லாவிட்டால், ஏற்கெனவே உள்ளதை அகற்றிவிட்டு, ஒரே ஸ்லாட்டில் 8 ஜிபி மெமரியை பொருத்திவிடலாம்.

விண்டோஸ் 10 இருந்தால் 4 ஜிபி மெமரி போதுமானது. இணையத்தில் உலா வருவதற்கும், மின்னஞ்சல் பார்ப்பதற்கும், எம்.எஸ். வேர்ட், எக்ஸெல் மட்டும் பயன்படுத்துபவர்களாக இருந்தால், 4 ஜிபி மெமரி தாராளமாகப் போதுமானது. கேமிங் பிரியர்களுக்கு சற்றே அதிகமான மெமரி தேவைப்படும். Fallout 4, Witcher 3, DOOM, League of Legends ஆட வேண்டுமென்றால், குறைந்தபட்சம் 8 ஜிபி மெமரி தேவைப்படும். 16 ஜிபி, 32 ஜிபி என அப்கிரேட் செய்தாலும், செயல்திறனில் எந்த முன்னேற்றமும் இல்லாத நிலையும் ஏற்படலாம். ஆனால், டேட்டா பேஸ் என்று வந்துவிட்டால், அதன் நிலைத்தன்மை (stability) என்பது முக்கியமான விஷயம். குறைந்தபட்சம் 8 ஜிபி மெமரி அவசியம் தேவைப்படும்.

2, 4, 8,16, 32 ஜிபி என ரேம் மெமரியின் அளவை அதிகரித்துக்கொண்டே செல்வதற்கு வெர்டிக்கல் ஸ்கேலிங் (Veritical Scaling) என்று பெயர். அப்போதைக்கு செயல்திறனில் முன்னேற்றம் தெரிய வந்தாலும், நீண்டகால நோக்கில் பலனளிக்காது. ஹார்ட்வேர் அப்கிரேட் என்பது எளிதான தீர்வு மட்டுமல்ல; உடனடியாகப் பலன் தரும் என்பதால் பெரும்பாலும் இத்தகை தீர்வைத்தான் எல்லோரும் நாடுவார்கள்.

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

டேட்டா பேஸ் பழுதுபார்ப்பு (troubleshooting) என்பது தனி உலகம். ஏராளமான தீர்வுகள் உண்டு. எனினும், அடிக்கடி மெற்கொள்ளப்படும் இரண்டு வழிமுறைகளை மட்டும் இங்கே பார்ப்போம். 1. Re-Index 2. Query Optimization.

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

Query எழுதுவது என்பது பெரும் கலை. எப்போதும் ஓரிரு வரிகளில் சுருக்கமாக இருப்பது உத்தமம். 4, 5 வரிகளின் இருந்தால், நடுவில் ஏதாவது சிறிய தவறு இருந்தாலும் அதைக் கண்டுபிடிக்க பெரிதும் சிரமப்படவேண்டி இருக்கும். Query மெருகேற்றுவது என்பது டேட்டா பேஸ் குழுவின் அன்றாடக் கவலை. அதற்குள் நாம் போகவேண்டியதில்லை. ஆனால், நல்ல Query எல்லோர்க்கும் நல்லது.

ACID பண்புகள் பற்றி ஏற்கெனவே விரிவாகப் பார்த்திருக்கிறோம். தகவல் பரிமாற்றங்கள் மிஞ்சும்போது, டேட்டா பேஸ் நிலைத்தன்மையை (stability) கட்டுக்குள் வைத்திருப்பது சவாலான விஷயம். ஏனென்றால், பெரும்பாலான இடங்களில் பரவலான பரிமாற்றம் (distributed transactions) கையாளப்படுகிறது. அதென்ன பரவலான பரிமாற்றம்?

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

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

If you can’t split it, you can’t scale it. ஈ-ஷாப் நிறுவனரும் தொழில்நுட்ப வடிவமைப்பாளருமான ராண்டி ஷோப் சொன்ன முக்கியமான விஷயம் இது. தொழில்நுட்பத்தைப் பொறுத்தவரை, கட்டுடைக்காதவரை எதையும் அடுத்தகட்டத்துக்கு எடுத்துச்செல்ல முடியாது. ஏனென்றால், கட்டுடைப்பு, கட்டாயம் உயர்வு தரும்!

(தொடரும்)

Tags : Memory Ram big data பிக் டேட்டா query பரிமாற்றங்கள் மெமரி ஸ்கேலிங் கிளஸ்டர் இண்டெக்ஸ் troubleshooting index configuration cluster scaling performance

More from the section

22. டிஸ்கவரி இன்ஃபர்மேடிக்ஸ்
21. மறைந்து நின்று பார்க்கும் மர்மம்
20. கூகுளாண்டவர் என்னும் எட்டாவது வள்ளல்!
19. ஸ்கீமா என்னும் எனிமா!
18. ஹடூப் என்னும் அணைக்கட்டு