ડેટાબેઝનું બિલ તે જેટલો વપરાય છે તે પ્રમાણે
Mythex પરની દરેક એપ જેને ડેટા સંગ્રહ કરવાની જરૂર હોય, તેને પોતાનો Postgres ડેટાબેઝ મળે છે, અને પબ્લિશ થયેલી એપનો ડેટાબેઝ વપરાશ બિલ્ડિંગ જેવા જ ક્રેડિટ બેલેન્સમાંથી કપાય છે. સપ્ટેમ્બરના અંત સુધી અમે તે વપરાશનો અંદાજ એ પરથી કાઢતા હતા કે એપનો સર્વર કેટલો સમય ચાલ્યો. તે અંદાજ એવી રીતે ખોટો નીકળ્યો કે જે મહત્ત્વનું હતું, તેથી અમે તેને બદલી નાખ્યો: હવે દરેક ડેટાબેઝનું બિલ તેના પ્રોવાઇડરે માપેલા કમ્પ્યુટ પ્રમાણે, પૂરા થયેલા એક કલાક પછી એક કલાક, બને છે, અને દરેક કલાકનો ચાર્જ ફક્ત એક જ વખત લાગી શકે છે.
ડેટાબેઝ કેવી રીતે કામ કરે છે
દરેક ડેટાબેઝ શૂન્ય પર સ્કેલ થતા સર્વરલેસ Postgres પર ચાલે છે: થોડી નિષ્ક્રિય મિનિટો પછી તે સૂઈ જાય છે, અને આગલી ક્વેરી પર જાગે છે. જાગતી વખતે તે લોડ પ્રમાણે પોતાનું કમ્પ્યુટ વધારે કે ઘટાડે છે. એટલે જ "દરેક એપ માટે એક ડેટાબેઝ" પોસાય છે: મોટા ભાગની એપ મોટા ભાગના સમયે શાંત રહે છે, અને સૂતેલો ડેટાબેઝ લગભગ કંઈ ખર્ચતો નથી.
આનો અર્થ એ છે કે ડેટાબેઝનો ખર્ચ બે બાબતો પર આધારિત છે, જે બહારથી આપણે જોઈ શકતા નથી: તે કેટલો સમય જાગતો રહ્યો અને જાગતી વખતે તે કેટલો મોટો હતો.
અંદાજ ક્યાં ખોટો પડ્યો
અમારા મૂળ મીટરમાં એક ધારણા હતી: પબ્લિશ થયેલી એપનો સર્વર ચાલતો હોય એ દરેક કલાક માટે, ડેટાબેઝને સૌથી નાના કમ્પ્યુટ કદ પ્રમાણે ચાર્જ કરવો.
આ ત્રણ રીતે ખોટું હતું:
- કદ ખોટું હતું. ડેટાબેઝ ધારણા કરતાં મોટા ડિફોલ્ટ કદ પર ખરેખર ચાલતા હતા.
- ડેટાબેઝ ઓટોસ્કેલ થાય છે. લોડ હેઠળ તે મોટા થાય છે, અને અંદાજે તે ક્યારેય જોયું નહીં.
- ડેટાબેઝ એપ સર્વરને અનુસરતા નથી. જ્યારે કોઈ પણ તેને ક્વેરી કરે, એપ, શેડ્યૂલ્ડ જૉબ કે પોલિંગ કરતી સ્ક્રિપ્ટ, ત્યારે ડેટાબેઝ જાગે છે, ભલે એપનો સર્વર ચાલુ ન હોય.
ચોખ્ખું પરિણામ: અંદાજે વપરાશકર્તાઓ પાસેથી ડેટાબેઝના ખરેખરા ખર્ચના લગભગ અડધો જ ચાર્જ લેવાતો હતો. તે ટકાઉ નહોતું, અને તેના કારણે એપમાં દેખાતા વપરાશના આંકડા લોકો જે માનતા હતા તેનો અર્થ નહોતા આપતા.
અંદાજ લગાવવાને બદલે માપવું
અમારા ડેટાબેઝ પ્રોવાઇડર દરેક પ્રોજેક્ટનો કમ્પ્યુટ-યુનિટ-સેકન્ડ પ્રતિ કલાક જણાવે છે, એટલે કે તેણે ખરેખર કેટલું કમ્પ્યુટ વાપર્યું, કદ સહિત. તેથી મીટર હવે આ રીતે કામ કરે છે:
- ડેટાબેઝવાળી દરેક પબ્લિશ થયેલી એપ માટે, એપ લાઇવ થયા પછીના દરેક પૂરા થયેલા કલાકનો માપેલો વપરાશ મેળવો.
- તે વપરાશને પ્રોવાઇડરની કિંમતે ખર્ચમાં ફેરવો, પ્લાનનો દર લાગુ કરો, અને એપના માલિકના ક્રેડિટમાંથી કાપો.
- દરેક વખતે એક દિવસ સુધી પાછળ જુઓ, જેથી અમારો API રિસ્ટાર્ટ થતો હતો ત્યારે ચૂકી ગયેલા કલાકોનું બિલ પછી પણ બને.
સ્ટોરેજનું બિલ અલગથી, કદ પ્રમાણે, થાય છે, કારણ કે તે પ્રવૃત્તિ પર આધારિત નથી.
એક કલાકનું બે વખત બિલ ક્યારેય નહીં
જે બિલિંગ મીટર એક કરતાં વધુ સર્વર પર ચાલે છે, અને ક્રેશ થઈને ફરી પ્રયાસ કરી શકે છે, તેણે બે વખત ચાર્જ ન થાય તેની કાળજી રાખવી પડે. દરેક ડેટાબેઝનો દરેક કલાક ચાર્જ થતાં પહેલાં પોતાની જ ડેટાબેઝ પંક્તિમાં ક્લેઇમ થાય છે, અને (ડેટાબેઝ, કલાક) જોડી પર એક અનન્યતા મર્યાદા છે. જો બે સર્વર, અથવા એક રિટ્રાય, એક જ કલાકનું બિલ બનાવવાનો પ્રયાસ કરે, તો ફક્ત એક જ ક્લેઇમ સફળ થાય છે.
દુર્લભ નિષ્ફળતાના કિસ્સા માટે અમે એક જાણીજોઈને પસંદગી કરી: જો પ્રક્રિયા કલાકનો ક્લેઇમ કરવા અને તેને ચાર્જ કરવાની વચ્ચે ક્રેશ થાય, તો તે કલાક ક્લેઇમ થયેલો પણ અનબિલ્ડ રહે છે. દુર્લભ ક્રેશમાં થોડી આવક ગુમાવવી, કોઈની પાસેથી બે વખત ચાર્જ કરવા કરતાં વધુ સારી છે.
અને જ્યારે માપેલું બિલિંગ ચાલુ થયું, ત્યારે તે આગલા પૂરા કલાકથી શરૂ થયું. તે પહેલાંના કલાકો જૂના અંદાજથી પહેલેથી ચાર્જ થઈ ચૂક્યા હતા; તે સમયગાળાનું માપેલા ડેટા પરથી ફરી બિલ કરવાથી તે ગાળો બે વખત ચાર્જ થાત.
જો તમે Mythex પર બનાવો છો તો તેનો અર્થ શું છે
- તમારું ડેટાબેઝ બિલ હવે તમારો ડેટાબેઝ શું કરે છે તે દર્શાવે છે. જે એપ ભાગ્યે જ વપરાય છે તેનો ખર્ચ બહુ ઓછો આવે છે; જે એપ સતત પોતાના ડેટાબેઝને ક્વેરી કરે છે તે તેને જાગતો રાખે છે અને વધુ ખર્ચ થાય છે.
- સૌથી મોટું નિયંત્રણ એ છે કે તમારી એપ ડેટાબેઝનો ઉપયોગ કેવી રીતે કરે છે. દર થોડી સેકન્ડે ડેટાબેઝને પોલ કરવાથી તે આખો સમય જાગતો રહે છે. AI ને માગ પ્રમાણે ડેટા લાવવા દેવો, અથવા તેને કેશ કરવો, ડેટાબેઝને સૂવા દે છે. ડેટાબેઝ શું છે તેની મૂળભૂત સમજ માટે અમારી ડેટાબેઝ શું છે તે માર્ગદર્શિકા જુઓ.
- પ્રો પ્લાન હોસ્ટિંગ, ડેટાબેઝ અને સ્ટોરેજ માટે ફ્રી રેટનો અડધો ભાવ ચૂકવે છે. વિગતો ક્રેડિટ ડૉક્સ માં છે.
અમે શું શીખ્યા
- વપરાશ આધારિત ખર્ચના અંદાજ સમય જતાં ખોટા પડે છે. જ્યારે અપસ્ટ્રીમ પ્રોવાઇડર કહી શકે કે શું વપરાયું, ત્યારે તે પ્રમાણે બિલ બનાવો.
- તમે જે સૌથી નાના એકમ પર ચાર્જ કરો છો ત્યાં બિલિંગને ઇડેમ્પોટન્ટ બનાવો. અમારા માટે તે એક ડેટાબેઝ-કલાક છે.
- જ્યારે નિષ્ફળ થવું જ પડે, ત્યારે ગ્રાહકના હિતમાં નિષ્ફળ થાઓ.