உண்மையில் பயன்படுத்துவதன் அடிப்படையில் டேட்டாபேஸ்களுக்கு பில்லிங்
சேமிப்பு தேவைப்படும் ஒவ்வொரு Mythex ஆப்பும் தனக்கென ஒரு Postgres டேட்டாபேஸ் பெறுகிறது; வெளியிட்ட ஆப்பின் டேட்டாபேஸ் பயன்பாடு, கட்டமைப்புக்குப் பயன்படுத்தும் அதே கிரெடிட் இருப்பிலிருந்தே செலவாகிறது. செப்டம்பர் பிற்பகுதி வரை, ஆப்பின் சர்வர் இயங்கிய நேரத்திலிருந்து அந்தப் பயன்பாட்டை மதிப்பிட்டு வந்தோம். அந்த மதிப்பீடு முக்கியமான வழியில் தவறாக இருந்தது, அதனால் அதை மாற்றினோம்: ஒவ்வொரு டேட்டாபேஸும் இப்போது அதன் வழங்குநர் உண்மையில் அளந்த compute-இன் அடிப்படையில் பில் செய்யப்படுகிறது, முடிந்த ஒரு மணி நேரத்திற்கு ஒன்றாக; ஒவ்வொரு மணி நேரமும் ஒருமுறை மட்டுமே கட்டணம் வசூலிக்கப்பட முடியும்.
டேட்டாபேஸ்கள் எப்படி வேலை செய்கின்றன
ஒவ்வொரு டேட்டாபேஸும் பூஜ்ஜியத்திற்கு அளவிடும் serverless Postgres-இல் இயங்குகிறது: சில நிமிடங்கள் செயலற்று இருந்ததும் அது உறங்கிவிடுகிறது, அடுத்த query வரும்போது விழித்தெழுகிறது. விழித்திருக்கும்போது, சுமைக்கேற்ப அதன் compute-ஐ மேலும் கீழும் அளவிட முடியும். “ஒரு ஆப்புக்கு ஒரு டேட்டாபேஸ்” என்பதை சாத்தியமாக்குவது இதுதான் — பெரும்பாலான ஆப்புகள் பெரும்பாலான நேரம் அமைதியாக இருக்கின்றன, உறங்கும் டேட்டாபேஸ் கிட்டத்தட்ட எதுவும் செலவழிப்பதில்லை.
அதாவது ஒரு டேட்டாபேஸின் செலவு வெளியிலிருந்து நாம் பார்க்க முடியாத இரண்டு விஷயங்களைச் சார்ந்தது: அது எவ்வளவு நேரம் விழித்திருந்தது மற்றும் விழித்திருந்தபோது அது எவ்வளவு பெரியதாக இருந்தது.
மதிப்பீடு என்ன தவறாகச் செய்தது
எங்கள் அசல் meter ஒரு அனுமானம் செய்தது: வெளியிட்ட ஆப்பின் சர்வர் இயங்கிய ஒவ்வொரு மணி நேரத்திற்கும், டேட்டாபேஸுக்கு மிகச் சிறிய compute அளவைக் கணக்கிட்டது.
அது மூன்று வழிகளில் தவறாக இருந்தது:
- அளவு தவறாக இருந்தது. மதிப்பீடு கருதியதைவிட டேட்டாபேஸ்கள் உண்மையில் பெரிய இயல்புநிலை அளவில் இயங்கிக்கொண்டிருந்தன.
- டேட்டாபேஸ்கள் தானாக அளவிடப்படுகின்றன. சுமையின்கீழ் அவை பெரிதாகின்றன; மதிப்பீடு அதை ஒருபோதும் பார்க்கவில்லை.
- டேட்டாபேஸ்கள் ஆப் சர்வரைப் பின்தொடர்வதில்லை. எதுவாவது அதைக் query செய்யும்போது — ஆப், ஒரு திட்டமிட்ட வேலை, அல்லது ஒரு script அதை poll செய்தாலும் — ஆப்பின் சர்வர் இயங்குகிறதோ இல்லையோ அது விழித்திருக்கும்.
மொத்த விளைவு: மதிப்பீடு பயனர்களிடம் டேட்டாபேஸ்கள் உண்மையில் செலவழித்ததில் சுமார் பாதியையே வசூலித்தது. அது எங்களுக்கு நீடிக்கக்கூடியது அல்ல; ஆப்பில் உள்ள பயன்பாட்டு எண்கள் மக்கள் நினைப்பதைப் போல அர்த்தப்படுத்தவில்லை என்பதையும் அது குறிக்கிறது.
யூகிப்பதற்குப் பதிலாக அளப்பது
எங்கள் டேட்டாபேஸ் வழங்குநர் ஒவ்வொரு திட்டத்தின் compute-unit-seconds per hour — அளவு உட்பட, அது உண்மையில் பயன்படுத்திய compute — அறிக்கை செய்கிறார். அதனால் meter இப்போது இவ்வாறு வேலை செய்கிறது:
- டேட்டாபேஸ் உள்ள ஒவ்வொரு வெளியிட்ட ஆப்புக்கும், அது நேரலைக்கு வந்ததிலிருந்து ஒவ்வொரு முடிந்த மணி நேரத்திற்கான அளக்கப்பட்ட பயன்பாட்டைப் பெறுங்கள்.
- அந்தப் பயன்பாட்டை வழங்குநரின் விலையில் செலவாக மாற்றுங்கள், திட்டத்தின் விகிதத்தைப் பயன்படுத்துங்கள், அதை ஆப் உரிமையாளரின் கிரெடிட்களுக்குக் கணக்கிடுங்கள்.
- ஒவ்வொரு முறையும் ஒரு நாள் வரை பின்னோக்கிப் பாருங்கள், அதனால் எங்கள் API மறுதொடங்கிக்கொண்டிருந்தபோது தவறிய மணி நேரங்கள் பின்னர் பில் செய்யப்படும்.
சேமிப்பு தனியாக, அளவைப் பொறுத்து பில் செய்யப்படுகிறது, ஏனெனில் அது செயல்பாட்டைச் சார்ந்தது அல்ல.
ஒரு மணி நேரத்தை இருமுறை ஒருபோதும் பில் செய்யாதீர்கள்
ஒன்றுக்கு மேற்பட்ட சர்வரில் இயங்கும், செயலிழந்து மீண்டும் முயலக்கூடிய ஒரு பில்லிங் meter, இருமுறை கட்டணம் வசூலிக்காமல் கவனமாக இருக்க வேண்டும். ஒவ்வொரு டேட்டாபேஸின் ஒவ்வொரு மணி நேரமும் கட்டணம் வசூலிப்பதற்கு முன் அதன் சொந்த டேட்டாபேஸ் வரிசையில் உரிமை கோரப்படுகிறது; (டேட்டாபேஸ், மணி நேரம்) ஜோடியின் மீது ஒரு தனித்துவ கட்டுப்பாடு உள்ளது. இரண்டு சர்வர்கள், அல்லது ஒரு மறுமுயற்சி, ஒரே மணி நேரத்தைப் பில் செய்ய முயன்றால், ஒரே ஒரு உரிமைக் கோரிக்கை மட்டுமே வெற்றி பெறும்.
அரிதான தோல்விச் சூழ்நிலைக்கு நாங்கள் ஒரு தெளிவான தேர்வு செய்தோம்: ஒரு மணி நேரத்தை உரிமை கோரிய பிறகும் அதற்குக் கட்டணம் வசூலிப்பதற்கு முன்பாக செயல்முறை செயலிழந்தால், அந்த மணி நேரம் உரிமை கோரப்பட்டதாகவே, பில் செய்யப்படாமலேயே இருக்கும். அரிதான செயலிழப்பில் கொஞ்சம் வருவாயை இழப்பது, யாருக்கும் இருமுறை கட்டணம் வசூலிப்பதைவிட மேலானது.
அளக்கப்பட்ட பில்லிங் இயக்கப்பட்டபோது, அது அடுத்த முழு மணி நேரத்திலிருந்து தொடங்கியது. அதற்கு முந்தைய மணி நேரங்களுக்குப் பழைய மதிப்பீட்டால் ஏற்கனவே கட்டணம் வசூலிக்கப்பட்டிருந்தது; அளக்கப்பட்ட தரவிலிருந்து அவற்றை மீண்டும் பில் செய்வது அந்த நேரத்திற்கு இருமுறை கட்டணம் வசூலித்திருக்கும்.
நீங்கள் Mythex-இல் கட்டினால் இதன் பொருள்
- உங்கள் டேட்டாபேஸ் பில் உங்கள் டேட்டாபேஸ் செய்ததை பிரதிபலிக்கிறது. அரிதாகப் பயன்படுத்தப்படும் ஆப் மிகக் குறைவாகச் செலவாகிறது; தொடர்ந்து அதன் டேட்டாபேஸை query செய்யும் ஆப் அதை விழித்திருக்க வைத்து அதிகம் செலவாகும்.
- மிகப் பெரிய நெம்புகோல் உங்கள் ஆப் டேட்டாபேஸைப் பயன்படுத்தும் விதம். டேட்டாபேஸை ஒவ்வொரு சில வினாடிக்கும் poll செய்வது அதை நாள் முழுவதும் விழித்திருக்க வைக்கிறது. தேவைப்படும்போது தரவைப் பெறச் AI-யிடம் கேட்பதோ, அதை cache செய்வதோ டேட்டாபேஸ் உறங்க அனுமதிக்கிறது. டேட்டாபேஸ் என்றால் என்ன என்பதை எங்கள் வழிகாட்டி அடிப்படைகளுடன் விளக்குகிறது.
- Pro திட்டங்கள் ஹோஸ்டிங், டேட்டாபேஸ்கள், சேமிப்புக்கு Free விகிதத்தின் பாதியைச் செலுத்துகின்றன. விவரங்கள் கிரெடிட் ஆவணங்களில் உள்ளன.
இதிலிருந்து நாங்கள் கற்றது
- பயன்பாடு சார்ந்த செலவுகள் பற்றிய மதிப்பீடுகள் காலப்போக்கில் விலகிச் செல்லும். மேல்நிலை வழங்குநர் எவ்வளவு பயன்படுத்தப்பட்டது என்று சொல்ல முடிந்தால், அதிலிருந்தே பில் செய்யுங்கள்.
- நீங்கள் வசூலிக்கும் மிகச் சிறிய அலகில் பில்லிங்கை idempotent ஆக்குங்கள். எங்களுக்கு அது ஒரு டேட்டாபேஸ்-மணி நேரம்.
- நீங்கள் தோல்வியடைந்தே ஆக வேண்டுமானால், வாடிக்கையாளருக்குச் சாதகமாகத் தோல்வியடையுங்கள்.