ஒரு சரியான திறமூல தரவுத்தளத்தைத் தேர்ந்தெடுப்பது என்பது CAP தேற்றத்தின் தெளிவான புரிதலுடன் ,பல்வேறு திறமூல தரவுத்தளங்களின் தனித்துவமான பண்புகளையும் பொறுத்தது ஆகும்.
நம் வாழ்வின் ஒவ்வொரு இயல்பிலும் தரவு நம்மைச் சூழ்ந்துள்ளது. நாம் கையில் வைத்திருக்கும் சாதனங்கள் முதல் நிறுவன தரவுத்தளங்கள் வரை, தரவு சேமிப்பகம் இன்றியமையாததாக ஆகிவிட்டது. தரவு சேமிப்பிற்காக ஒரு சில பிரபலமான நிறுவனங்களை மட்டுமே என நம்பியிருந்த நாட்கள் நீண்ட காலமாகிவிட்டன, மேலும் வெவ்வேறு பயன்பாட்டு நிகழ்வுகளுக்கு தரவுத்தளங்களைத் தேர்ந்தெடுக்கும் போது நம்மிடம் அதற்கான வாய்ப்பு ஏராளமாகஉள்ளன. இருப்பினும், பல வாய்ப்புகளுடன், குறிப்பாக கடல்போன்ற திறமூலபகுதியில், நம்முடைய தேவைகளுக்கு பொருத்தமான மிகச்சரியான தரவுத்தளத்தை மதிப்பிடுவது பெரும் சவாலாக இருக்கும்.
பல மேககணினி சூழல்களில் பகிர்ந்துகொள்கின்ற கட்டமைப்பைக் கொண்டு, மேககணினியில் நவீன பயன்பாடுகளைப் பயன்படுத்துதல், அதிகஅளவில் கிடைக்கும் தன்மை, செயல்திறன் ,மீள்தன்மை ஆகியவற்றைக் கோரும் நிறுவனங்களுக்கு பொதுவான நடைமுறையாகிவிட்டது. செயல்படாத தேவைகளைப் பூர்த்தி செய்வதற்கு இந்த அணுகுமுறை பயனுள்ளதாக இருந்தாலும், பகிர்ந்துகொள்கின்ற வரிசைப்படுத்தலில் தரவுத்தள வரிசைப்படுத்தலை ஆழ்ந்து பார்வையிட வேண்டும். தரவுத்தளத்தின் செயல்திறன், பண்புகள் போன்ற காரணிகள் குறிப்பிட்ட பயன்பாட்டு நிகழ்வுகளுக்கு ஒரு புதிய பயன்பாட்டினைத் தேர்ந்தெடுக்கும்போது இதுமுக்கியமாகும். கடந்த இரு பத்தாண்டுகளாக, தரவுத்தள தொழில்நுட்பத்தில் வல்லுநர்கள் தரவுத்தளங்களை மதிப்பிடுவதற்கு நிரூபிக்கப்பட்ட முறைகளை ஏற்றுக்கொண்டுள்ளனர். அவ்வாறான சூழலில் CAP தேற்றம் தரவுத்தளங்களை திரையிடுவதற்கான மிகவும் பிரபலமான முறைகளில் ஒன்றாகும், குறிப்பாக திறமூல தரவுத்தளங்களுக்கு, பல வாய்ப்புகள் உள்ளன. தரவு ,பரிமாற்ற மாதிரிகளில் CAP தேற்றத்தின் பயன்பாடு சில பிரபலமான திறமூல தரவுத்தளங்களுடன் எவ்வாறு ஒப்பிடப்படுகிறது என்பதை இப்போது ஆய்வுசெய்யதிடுவோம்.
பகிர்ந்துகொள்கின்ற தரவுத்தளங்களும் ,CAP தேற்றமும்
நவீன பயன்பாட்டு வடிவமைப்பில், பகிர்ந்துகொள்கின்ற கட்டமைப்பு பரவலாகப் பயன்படுத்தப்படுகிறது, அங்கு தரவுத்தளங்கள் பல ஒன்றோடொன்று பிணைக்கப்பட்டு அதிக விரிவாற்றலை ,செயல்திறனை அடைய பயன்படுத்தப் படுகின்றன. இந்த அணுகுமுறை பல்வேறு காரணங்களுக்காக முக்கியமானது என்றாலும், குறிப்பிட்ட பயன்பாட்டு நிகழ்வுகளுக்கு செயல் படுகின்ற சரியான தரவுத்தளத்தை மதிப்பீடு செய்து தேர்ந்தெடுப்பதும் முக்கியமானசெயலாகும். ஒரு தரவுத்தளத்தை மதிப்பிடும் போது, தரவுத்தளத்திற்கு வெளியே உள்ள தரவுத்தளத்திலிருந்து நாம் என்ன எதிர்பார்க்கிறோம் என்பதையும், சீரான தன்மை, கிடைக்கும் தன்மை ,பகிர்வு சகிப்புத்தன்மை ஆகியவற்றின் அடிப்படையில் வடிவமைப்பின் மூலம் நாம் எதைக் கையாள முடியும் என்பதையும் கருத்தில் கொள்ள வேண்டும். இந்த ஒவ்வொரு பண்புகளும் எதைக் குறிக்கின்றன ,நினைவகவளத்தை பகிர்ந்துகொள்கின்ற கணினியில் தரவுத்தளத்தை மதிப்பிடும்போது அவற்றை எவ்வாறு பயன்படுத்தலாம் என்பதை இப்போது காண்போம்.
பகிர்ந்துகொள்கின்ற அமைப்பில், இந்த செயல்படாத பண்புகள் குறிப்பிட்ட அர்த்தங்களைக் கொண்டுள்ளன.
நிலைத்தன்மை: பகிர்ந்துகொள்கின்ற அமைப்பில் உள்ள அனைத்து முனைமங்களிலும் உள்ள அனைத்து தரவுகளும் ஒரே மாதிரியாக இருக்கும்.
கிடைக்கும் தன்மை: தரவுத்தளத்திற்கு அனுப்பப்படும் ஒவ்வொரு கோரிக்கையும், சில முனைமங்களை அணுக முடியாமல் போனாலும், பதிலைப் பெறுகிறது.
பகிர்வு சகிப்புத்தன்மை: பிணையத்தில் பிரிவுகள் ஏற்பட்டாலும், முனைமங்களை மோசமாக பாதிக்கும் ,தனிமைப்படுத்தல்களை உருவாக்கினாலும் கணினி தொடர்ந்து இயங்குகிறது.
பகிர்ந்துகொள்கின்ற அமைப்புகளை வடிவமைக்கும் போது தரவுத்தளங்களை திரையிடுவதற்கு CAP தேற்றம் மதிப்புமிக்க கட்டமைப்பை வழங்குகிறது. இது – நிலைத்தன்மை, கிடைக்கும் தன்மை ,பகிர்வு சகிப்புத்தன்மை ஆகிய மூன்று முக்கியமான DBMS பண்புகளை கொண்டுள்ளது. இந்த CAP தேற்றத்தின்படி, வலைபின்னல் பகிர்வுகளின் இருப்பைப் பொறுத்து ஒரு பகிர்ந்துகொள்கின்ற அமைப்பு நிலைத்தன்மை ,கிடைக்கும் தன்மை ஆகியஇரண்டிற்கும் இடையே தேர்வு செய்ய தெரிந்திருக்கவேண்டும். வலைபின்னல் பகிர்வுகளின் கீழ், கணினியின் வளங்கள் கிடைப்பதைத் தக்கவைக்க நிலைத்தன்மையை அல்லது நிலைத்தன்மையைப் பராமரிக்க பாதுகாப்பு கிடைக்கும் தன்மையை தியாகம் செய்யவேண்டியிருக்கும்.
CAP தேற்றம் தற்போதைய விநியோகிக்கப்பட்ட அமைப்புகளைப் பற்றிய நுண்ணறிவுகளை வழங்கும் அதே வேளையில், நடைமுறைச் செயலாக்கங்களில், கிடைக்கும் தன்மை ,நிலைத்தன்மை ஆகியவை குறிப்பிட்ட தேவைகளைப் பூர்த்தி செய்யும் வகையில் சரிசெய்யப்பட்டு கட்டமைக்கப்படுகின்றது. ஒவ்வொரு பண்பையும் கடைபிடிப்பதை உறுதிசெய்வதற்கு, வடிவமைப்பதில் அனுபவமுள்ள தரவுத்தளக் கட்டமைப்புக் கலைஞர்களின் திறன்கள் ,தேவையான தரவுத்தள செயல்திறனை அடைய உள்ளமைவுகள் புதுப்பிக்கப்படுவதை உறுதிசெய்கின்ற வல்லுநர்கள் தேவையாகும்.
மற்ற விநியோகிக்கப்பட்ட தரவுத்தளங்களைப் போன்றே திறமூல தரவுத்தளங்களும் CAP தேற்றத்திற்கு உட்பட்டவை. இந்த தரவுத்தளங்களின் மேம்படுத்துநர்களால் செய்யப்பட்ட வடிவமைப்புத் தேர்வுகள், பிணையப் பகிர்வுகளின் போது நிலைத்தன்மைக்கு அல்லது கிடைக்கும் தன்மைக்கு முன்னுரிமை அளிக்கிறதா என்பதைத் தீர்மானிக்கிறது.
இப்போது பிரபலமான திறமூல தரவுத்தளங்கள் சிலவற்றைகாண்போம், இவை ஒவ்வொன்றும் CAP தேற்றத்திற்கு அதன் சொந்த அணுகுமுறையைக் கொண்டுள்ளன.
Cassandra என்பது அப்பாச்சி(Apache) எனும் அறக்கட்டளையாளரால் உருவாக்கப்பட்ட இது, ஒரு NoSQL தரவுத்தளமாகும், இது வலுவான நிலைத்தன்மையின் மீது கிடைக்கும் ,பகிர்வு சகிப்புத்தன்மையை வலியுறுத்துகிறது. இது சீரான நிலைத்தன்மை நிலைகளை வழங்குகிறது, பயனர்கள் நிலைத்தன்மைக்கும் கிடைக்கும் தன்மைக்கும் இடையே விரும்பிய வர்த்தகத்தை தேர்வு செய்ய அனுமதிக்கிறது.
MongoDB என்பது மற்றொரு NoSQL தரவுத்தளமாகும், இது கிடைக்கும் தன்மை ,பகிர்வு சகிப்புத்தன்மைக்கு முன்னுரிமை அளிக்கிறது. இது இயல்பாகவே இறுதி நிலைத்தன்மையை வழங்குகிறது, ஆனால் தேவைப்பட்டால் வலுவான நிலைத்தன்மை உத்திரவாதங்களுக்கான வாய்ப்புகளையும் வழங்குகிறது.
CockroachDB என்பது பகிர்ந்துகொள்கின்ற SQL தரவுத்தளமாகும், இது வலுவான நிலைத்தன்மை, அதிக கிடைக்கும் தன்மை ,பகிர்வு சகிப்புத்தன்மை ஆகியவற்றை வழங்குவதை நோக்கமாகக் கொண்டுள்ளது. அதன் முனைமங்கள் முழுவதும் நிலைத்தன்மையை உறுதிப்படுத்த, Raft என்றழைக்கப்படும் பகிர்ந்துகொள்கின்ற ஒருமித்ததொரு நெறிமுறையைப் பயன்படுத்துகிறது.
MySQL என்பது ஒரு தொடர்புடைய தரவுத்தள அமைப்பு (RDBMS) முனைமம், நிலைத்தன்மை, தனிமைப்படுத்தல் ,நீடித்து நிலைப்பு (ACID) தன்மைஆகியவற்றை வழங்கிடுமாறு வடிவமைக்கப்பட்டுள்ளது.
YugaByteDB என்பது பகிர்ந்துகொள்கின்ற SQL தரவுத்தளமாகும், இது வலுவான நிலைத்தன்மை, அதிக கிடைக்கும் தன்மை ,பகிர்வு சகிப்புத்தன்மை ஆகியவற்றை வழங்குவதை நோக்கமாகக் கொண்டுள்ளது. இது CAP தேற்றத்தின்(நிலைத்தன்மை-பகிர்வு சகிப்புத்தன்மை) ஏற்றுக்கொள்கிறது, பிணையப் பகிர்வுகளின் போது நிலைத்தன்மை ,பகிர்வு சகிப்புத்தன்மைக்கு முன்னுரிமை அளிக்கிறது, உடனடி கிடைக்கும் தன்மையை தியாகம் செய்கிறது.
Neo4J என்பது ஒரு வரைபட தரவுத்தளமாகும். இருப்பினும், விநியோகிக்கப்பட்ட அமைப்புகளில் பயன்படுத்தப்படும் போது, அது வலுவான நிலைத்தன்மை ,பரிமாற்ற ஒருமைப்பாட்டுடன் CAPதேற்றத்திற்கு இணங்குகிறது.
Redisஎன்பது மற்றொரு தரவுத்தளமாகும், இது பெரும்பாலான பயன்பாட்டு நிகழ்வுகளில் ஒற்றை-சேவையக மாதிரியில் பயன்படுத்தப்படுகிறது. இருப்பினும், பகிர்ந்துகொள்கின்ற அமைப்புகளில் பயன்படுத்தப்படும் போது, CAPதேற்றத்திற்கு இணங்குகிறது.
HBase என்பது அப்பாச்சி(Apache) எனும் அறக்கட்டளையாளரால் உருவாக்கப்பட்ட இது, பணிச்சுமை சுயவிவர நிர்வாகத்தின் அடிப்படையில் நிலைத்தன்மை ,பகிர்வுக்காக வடிவமைக்கப்பட்ட ஒரு நெடுவரிசை தரவுத்தளமாகும்.
PostgreSQL என்பது மிகவும் பிரபலமான திறமூலதொடர்புதரவதளமாக,அனைத்து வகையான நிறுவனங்களிலும் முன்னணி தேர்வாகத் தொடர்ந்து இருந்துவருகிறது. இது CAP தேற்றத்திற்கு இணங்குகிறது, இது பகிர்வு சகிப்புத்தன்மையை செயல்படுத்துவதில் கவனம் செலுத்துகிறது.
இந்த தரவுத்தளங்களில் மேலேகுறிப்பிடப்பட்டஏதேனும் மூன்று பண்புகளில் ஏதேனும் ஒன்றைக் கட்டமைக்க முடியும். பண்புகளுக்கு இடையில் சரியான சமநிலையை உருவாக்குவது பயன்பாட்டு வழக்கத்தைப் பொறுத்ததுஆகும்.
CAP தேற்றம் விநியோகிக்கப்பட்ட அமைப்புகளில் உள்ள வர்த்தக பரிமாற்றங்கள் பற்றிய மதிப்புமிக்க நுண்ணறிவுகளை வழங்கினாலும், ஒவ்வொரு தரவுத்தளமும் மூன்று பண்புகளில் ஒன்றை கண்டிப்பாக கடைபிடிப்பதில்லை என்பதை கவனத்தில் கொள்ள வேண்டும். பயன்பாட்டின் குறிப்பிட்ட தேவைகளைப் பொறுத்து பல தரவுத்தளங்கள் வெவ்வேறு நிலை நிலைத்தன்மை ,கிடைக்கும் தன்மையை வழங்குகின்றன.
அமைப்புகளை வடிவமைக்கும் பொறியாளர்கள் ,கட்டமைப்புக் கலைஞர்கள் தங்கள் அடிப்படை செயல்பாடுகளை திறம்பட நிறைவேற்ற தரவுத்தள பண்புகளை முழுமையாக புரிந்து கொள்ள வேண்டும். அதிக அளவு பரிமாற்றங்கள், அமைப்புமுறையில் எதிர்பார்க்கப்படும் மாற்றங்கள் ,என்பனபோன்ற காரணிகள் தரவுத்தளத் தேவைகளின் அடிப்படை பண்புகளை வரையறுக்கின்றன. தரவு மாதிரியையும் ,பரிமாற்ற மாதிரியையும் கருத்தில் கொண்டு CAP தேற்றம், ACID, BASE ஆகியவற்றைப் பயன்படுத்துவது, தேவைகளுக்குப் பொருத்தமான தரவுத்தளங்களின் சரியான தொகுப்பைக் கண்டறிய உதவும். கருத்தாக்கத்தின் ஆதாரத்தை கருத்தில் கொள்ளும்போது நிலைத்தன்மை, கிடைக்கும் தன்மை ,பகிர்வு சகிப்புத்தன்மை ஆகியவற்றுக்கு இடையேயான வர்த்தக பரிமாற்றங்களை சமநிலைப்படுத்துவது, நிறுவனத் தேவைகளைப் பூர்த்தி செய்யும் நன்கு வடிவமைக்கப்பட்ட அமைப்புக்கான உறுதியான அடித்தளத்தை உறுதி செய்யும்.