rqlite 6.0 விநியோகிக்கப்பட்ட DBMS வெளியிடப்பட்டது. இது SQLite ஐ அதன் சேமிப்பக இயந்திரமாகப் பயன்படுத்துகிறது மற்றும் ஒத்திசைக்கப்பட்ட சேமிப்பக அமைப்புகளின் கிளஸ்டரிங்கை செயல்படுத்துகிறது. rqlite இன் முக்கிய அம்சங்களில், etcd மற்றும் Consul ஐப் போலவே, ஆனால் ஒரு விசை/மதிப்பு வடிவமைப்பிற்குப் பதிலாக ஒரு தொடர்புடைய தரவு மாதிரியைப் பயன்படுத்தி, விநியோகிக்கப்பட்ட, தவறு-சகிப்புத்தன்மை கொண்ட சேமிப்பக அமைப்பின் நிறுவல், பயன்பாடு மற்றும் பராமரிப்பு எளிமை ஆகியவை அடங்கும். திட்டத்தின் குறியீடு Go இல் எழுதப்பட்டு MIT உரிமத்தின் கீழ் விநியோகிக்கப்படுகிறது.
அனைத்து முனைகளையும் ஒத்திசைக்க, Raft ஒருமித்த வழிமுறை பயன்படுத்தப்படுகிறது. Rqlite அசல் SQLite நூலகத்தையும் நிலையான go-sqlite3 இயக்கியையும் பயன்படுத்துகிறது, அதன் மேல் கிளையன்ட் கோரிக்கைகளை செயலாக்கும், பிற முனைகளுக்கு நகலெடுக்கும் மற்றும் தலைவர் முனையின் தேர்வில் ஒருமித்த கருத்தை கண்காணிக்கும் ஒரு அடுக்கை இயக்குகிறது.
தரவுத்தளத்தில் மாற்றங்களைத் லீடராகத் தேர்ந்தெடுக்கப்பட்ட முனையால் மட்டுமே செய்ய முடியும், ஆனால் எழுதும் இணைப்புகளை மற்ற கிளஸ்டர் முனைகளுக்கு அனுப்ப முடியும், இது கோரிக்கையை மீண்டும் முயற்சிப்பதற்கான லீடரின் முகவரியைத் திருப்பிவிடும் (அடுத்த பதிப்பில் லீடருக்கு தானியங்கி பகிர்தல் உறுதியளிக்கப்பட்டுள்ளது). முதன்மை கவனம் தவறு சகிப்புத்தன்மையில் உள்ளது, எனவே DBMS வாசிப்பு செயல்பாடுகளுக்கு மட்டுமே அளவிடுகிறது, எழுதும் செயல்பாடுகள் தடையாக இருக்கும். ஒரு முனையிலிருந்து ஒரு rqlite கிளஸ்டரை இயக்க முடியும், மேலும் இந்தத் தீர்வை தவறு சகிப்புத்தன்மையை வழங்காமல் HTTP வழியாக SQLite ஐ அணுக பயன்படுத்த முடியும்.
ஒவ்வொரு முனையிலும் உள்ள SQLite தரவு ஒரு கோப்பில் அல்ல, நினைவகத்தில் சேமிக்கப்படுகிறது. தரவுத்தளத்தை மாற்றும் அனைத்து SQLite கட்டளைகளின் பதிவும் Raft நெறிமுறை அடுக்கில் பராமரிக்கப்படுகிறது. இந்த பதிவு நகலெடுக்கும் போது (மற்ற முனைகளில் வினவல் மறுதொடக்க மட்டத்தில் நகலெடுக்கும் போது), ஒரு புதிய முனையைத் தொடங்கும் போது அல்லது இணைப்பு இழப்பிலிருந்து மீள்வதன் போது பயன்படுத்தப்படுகிறது. பதிவு அளவைக் குறைக்க, தானியங்கி சுருக்கம் பயன்படுத்தப்படுகிறது. இது ஒரு குறிப்பிட்ட எண்ணிக்கையிலான மாற்றங்களுக்குப் பிறகு தூண்டப்பட்டு, ஒரு ஸ்னாப்ஷாட் வட்டுக்கு உறுதியளிக்கப்படுகிறது, அதிலிருந்து ஒரு புதிய பதிவு தொடங்கப்படுகிறது (நினைவகத்தில் உள்ள தரவுத்தள நிலை ஸ்னாப்ஷாட் மற்றும் திரட்டப்பட்ட மாற்றப் பதிவைப் போன்றது).
Rqlite இன் அம்சங்கள்:
- தனியான SQLite நிறுவல் தேவையில்லாமல், ஒரு கிளஸ்டரை வரிசைப்படுத்துவது எளிது.
- பிரதி SQL சேமிப்பகத்தை விரைவாகப் பெறும் திறன்.
- உற்பத்தித் திட்டங்களில் பயன்படுத்தத் தயாராக உள்ளது (உற்பத்தி தரம்).
- ஒரு HTTP(S) API தொகுதி தரவு புதுப்பிப்புகளையும் கிளஸ்டர் லீடரைத் தீர்மானிக்கவும் அனுமதிக்கிறது. ஒரு கட்டளை வரி இடைமுகம் மற்றும் SQLite க்காக உருவாக்கப்பட்ட பல்வேறு கிளையன்ட் நூலகங்களைப் பயன்படுத்தும் திறனும் வழங்கப்பட்டுள்ளது.
- பிற முனைகளை அடையாளம் காண்பதற்கான சேவையின் கிடைக்கும் தன்மை, நீங்கள் கிளஸ்டர்களை மாறும் வகையில் உருவாக்க அனுமதிக்கிறது.
- முனைகளுக்கு இடையில் தரவு பரிமாற்றத்தை குறியாக்கம் செய்வதற்கான ஆதரவு.
- படிக்கும் போது தரவின் பொருத்தம் மற்றும் நிலைத்தன்மையை சரிபார்க்கும் அளவை கட்டமைக்கும் திறன்.
- ஒருமித்த கருத்தை தீர்மானிப்பதில் பங்கேற்காத மற்றும் வாசிப்பு செயல்பாடுகளுக்கு கிளஸ்டரின் அளவிடுதல் அதிகரிக்கப் பயன்படும் படிக்க-மட்டும் பயன்முறையில் முனைகளை இணைக்கும் விருப்பத் திறன்.
- ஒரு கோரிக்கையில் கட்டளைகளை இணைப்பதன் அடிப்படையில் உங்களின் சொந்தப் பரிவர்த்தனைகளுக்கான ஆதரவு (BEGIN, COMMIT, ROLLBACK, SAVEPOINT மற்றும் RELEASE ஆகியவற்றின் அடிப்படையில் பரிவர்த்தனைகள் ஆதரிக்கப்படாது).
- சூடான காப்புப்பிரதிகளை உருவாக்குவதற்கான ஆதரவு.
புதிய வெளியீடு, சரியான கிளஸ்டர் முனைகளுக்கு படிக்க மற்றும் எழுத கோரிக்கைகளை ரூட்டிங் செய்யும் செயல்முறையை மேம்படுத்துவதன் மூலம் கிளஸ்டர் நம்பகத்தன்மையை அதிகரிப்பதை நோக்கமாகக் கொண்ட குறிப்பிடத்தக்க கட்டடக்கலை மாற்றங்களை அறிமுகப்படுத்துகிறது. ராஃப்ட் நெறிமுறையால் முனைகளுக்கு இடையில் நிறுவப்பட்ட TCP இணைப்புகளைப் பயன்படுத்தி rqlite முனைகள் இப்போது தங்களுக்குள் பல தருக்க இணைப்புகளை மல்டிபிளக்ஸ் செய்யலாம். ஒரு கோரிக்கைக்கு லீடர் முனையின் அதிகாரம் தேவைப்பட்டால், ஆனால் அது இரண்டாம் நிலை முனைக்கு அனுப்பப்பட்டால், ராஃப்ட் ஒருமித்த கணக்கீட்டைச் செய்யாமல், இரண்டாம் நிலை முனை தலைவரின் முகவரியைத் தீர்மானித்து அதை வாடிக்கையாளருக்கு அனுப்ப முடியும்.
இந்த மாற்றம் மெட்டாடேட்டா ஒத்திசைவுக்கு ஒரு தனி கூறுக்கான தேவையையும் நீக்கியது மற்றும் ராஃப்ட் நிலை மற்றும் மெட்டாடேட்டாவை தனித்தனியாக செயலாக்க வேண்டிய அவசியத்தையும் நீக்கியது. இரண்டாம் நிலை முனைகள் இப்போது லீடர் முனையின் முகவரியைப் பெற, தேவைப்படும்போது மட்டுமே லீடர் முனைக்கு கோரிக்கைகளை அனுப்புகின்றன. API இப்போது கிளஸ்டரில் உள்ள பிற முனைகளின் நிலை பற்றிய தகவல்களைப் பெறும் திறனை வழங்குகிறது. ".sysdump" கட்டளை கட்டளை வரி இடைமுகத்தில் சேர்க்கப்பட்டுள்ளது.
ஆதாரம்: opennet.ru
