Dragonfly 1.0 இன் வெளியீடு, RAM இல் தரவைத் தேக்குவதற்கான அமைப்பு

Dragonfly இன்-மெமரி கேச்சிங் மற்றும் ஸ்டோரேஜ் சிஸ்டம் வெளியிடப்பட்டது, இது டேட்டாவை விசை/மதிப்பு வடிவத்தில் கையாளுகிறது மற்றும் அதிக ஏற்றப்பட்ட தளங்களின் வேலையை விரைவுபடுத்துவதற்கு இலகுரக தீர்வாகப் பயன்படுத்தலாம், DBMS இல் மெதுவாக வினவல்களைத் தேக்ககம் மற்றும் RAM இல் இடைநிலை தரவு. Dragonfly Memcached மற்றும் Redis நெறிமுறைகளை ஆதரிக்கிறது, இது ஏற்கனவே உள்ள கிளையன்ட் லைப்ரரிகளைப் பயன்படுத்தவும், குறியீட்டை மறுவேலை செய்யாமல் Memcached மற்றும் Redis ஐப் பயன்படுத்தி டிராகன்ஃபிளைக்கு மாற்றும் திட்டங்களையும் அனுமதிக்கிறது.

Redis உடன் ஒப்பிடும்போது, ​​Amazon EC2 c6gn.16xlarge சூழலில் வழக்கமான பணிச்சுமைகளுக்காக Dragonfly செயல்திறன் 25 மடங்கு அதிகரிப்பு (வினாடிக்கு 3.8 மில்லியன் கோரிக்கைகள்) அடைந்தது. AWS c6gn.16xlarge சூழலில் Memcached உடன் ஒப்பிடும்போது, ​​Dragonfly ஆனது ஒரு வினாடிக்கு 4.7 மடங்கு அதிகமாக எழுதும் கோரிக்கைகளை (3.8 மில்லியன் மற்றும் 806 ஆயிரம்) மற்றும் 1.77 மடங்கு அதிகமான வாசிப்பு கோரிக்கைகளை (3.7 மில்லியன் மற்றும் 2.1 மில்லியன்) செய்ய முடிந்தது.

Dragonfly 1.0 இன் வெளியீடு, RAM இல் தரவைத் தேக்குவதற்கான அமைப்பு

5 ஜிபி டேட்டாவை சேமிப்பதற்கான சோதனைகளில், ரெடிஸை விட டிராகன்ஃபிளைக்கு 30% குறைவான நினைவகம் தேவைப்பட்டது. "bgsave" கட்டளையுடன் ஸ்னாப்ஷாட்களை உருவாக்கும் போது, ​​நினைவக நுகர்வு அதிகரிக்கிறது, ஆனால் உச்ச தருணங்களில் இது Redis ஐ விட கிட்டத்தட்ட மூன்று மடங்கு குறைவாகவே இருந்தது, மேலும் ஸ்னாப்ஷாட் பதிவு செயல்பாடு மிகவும் வேகமாக உள்ளது (சோதனையில், Dragonfly இல் ஒரு ஸ்னாப்ஷாட் 30 இல் எழுதப்பட்டது. வினாடிகள், அதே சமயம் ரெடிஸ் - 42 வினாடிகளில்).

Dragonfly 1.0 இன் வெளியீடு, RAM இல் தரவைத் தேக்குவதற்கான அமைப்பு

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

டிராகன்ஃபிளையின் சில அம்சங்கள்:

  • கேச்சிங் பயன்முறை, இது இலவச நினைவகம் தீர்ந்த பிறகு தானாகவே பழைய தரவை புதிய தரவுடன் மாற்றுகிறது.
  • தரவு தொடர்புடையதாகக் கருதப்படும் வாழ்நாள் முழுவதும் தரவுகளுடன் பிணைப்பதற்கான ஆதரவு.
  • மறுதொடக்கம் செய்த பிறகு மீட்டெடுக்க, பின்னணியில் உள்ள வட்டில் சேமிப்பக நிலையை ஃப்ளஷிங் செய்வதற்கான ஆதரவு.
  • கணினி நிர்வாகத்திற்கான HTTP கன்சோல் (TCP போர்ட் 6379 உடன் பிணைக்கிறது) மற்றும் ப்ரோமிதியஸுடன் இணக்கமான அளவீடுகளை திரும்பப் பெறுவதற்கான API உள்ளது.
  • 185 Redis கட்டளைகளுக்கான ஆதரவு, இது Redis 5 வெளியீட்டின் செயல்பாட்டிற்கு தோராயமாக சமமானதாகும்.
  • CAS (செக்-அண்ட்-செட்) தவிர அனைத்து Memcached கட்டளைகளையும் ஆதரிக்கிறது.
  • ஸ்னாப்ஷாட்களை உருவாக்குவதற்கான ஒத்திசைவற்ற செயல்பாடுகளுக்கான ஆதரவு.
  • கணிக்கக்கூடிய நினைவக நுகர்வு.
  • உள்ளமைக்கப்பட்ட லுவா 5.4 மொழிபெயர்ப்பாளர்.
  • ஹாஷ்கள், தொகுப்புகள், பட்டியல்கள் (ZSET, HSET, LIST, SETS மற்றும் STRING) மற்றும் JSON தரவு போன்ற சிக்கலான தரவு வகைகளை ஆதரிக்கிறது.
  • தவறு சகிப்புத்தன்மை மற்றும் சுமை சமநிலை ஆகியவற்றிற்கான சேமிப்பக நகலெடுப்பை ஆதரிக்கிறது.

டிராகன்ஃபிளை குறியீடு C/C++ இல் எழுதப்பட்டுள்ளது மற்றும் BSL (வணிக மூல உரிமம்) கீழ் விநியோகிக்கப்படுகிறது. திறந்த கோர் மாதிரிக்கு மாற்றாக MySQL இன் இணை நிறுவனர்களால் BSL உரிமம் முன்மொழியப்பட்டது. BSL இன் சாராம்சம் என்னவென்றால், மேம்பட்ட செயல்பாட்டின் குறியீடு ஆரம்பத்தில் மாற்றியமைக்கக் கிடைக்கிறது, ஆனால் கூடுதல் நிபந்தனைகள் பூர்த்தி செய்யப்பட்டால் மட்டுமே சில நேரம் இலவசமாகப் பயன்படுத்த முடியும், தவிர்க்க வணிக உரிமம் வாங்க வேண்டும். டிராகன்ஃபிளை திட்டத்திற்கான கூடுதல் உரிம விதிமுறைகளுக்கு மார்ச் 2.0, 15 அன்று குறியீட்டை Apache 2028 உரிமத்திற்கு மாற்ற வேண்டும். இந்த நேரம் வரை, உரிமம் அதன் சேவைகள் மற்றும் தயாரிப்புகளின் செயல்பாட்டை உறுதிப்படுத்த மட்டுமே குறியீட்டைப் பயன்படுத்த அனுமதிக்கிறது, ஆனால் டிராகன்ஃபிளைக்கு கூடுதல் இணைப்பாக செயல்படும் கட்டண கிளவுட் சேவைகளை உருவாக்குவதற்கு பயன்படுத்துவதை தடை செய்கிறது.

பதிப்பு டிராகன்ஃபிளை 1.0 முதன்மை சேவையகத்திலிருந்து இரண்டாம் நிலை வரை தரவு நகலெடுப்புக்கான ஆதரவை செயல்படுத்துவதில் குறிப்பிடத்தக்கது. இருப்பினும், டிராகன்ஃபிளை அடிப்படையிலான அல்லது ரெடிஸ் அடிப்படையிலான முதன்மை சேவையகத்திலிருந்து தரவைப் பெறும் இரண்டாம் நிலை சேமிப்பகமாகப் பயன்படுத்துவதற்கு டிராகன்ஃபிளை உள்ளமைக்கப்படலாம். பிரதி மேலாண்மை API ஆனது Redis உடன் இணக்கமானது மற்றும் ROLE மற்றும் REPLICAOF (SLAVEOF) கட்டளைகளின் பயன்பாட்டை அடிப்படையாகக் கொண்டது.

ஆதாரம்: opennet.ru

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