Blogg

Gagnagrunnar rukkaðir eftir því sem þeir raunverulega nota

Sérhvert Mythex forrit sem þarf að geyma gögn fær sinn eigin Postgres-gagnagrunn, og notkun birts forrits á gagnagrunni kemur af sömu inneignastöðu og smíðin. Fram í lok september áætluðum við þá notkun út frá því hve lengi netþjónn forritsins var í gangi. Áætlunin reyndist röng á þann hátt sem skipti máli, svo við skiptum henni út: nú er hver gagnagrunnur rukkaður út frá reikniafli sem gagnagrunnsveitan mældi í raun, eina lokna klukkustund í einu, og hver klukkustund getur aðeins einu sinni verið rukkuð.

Hvernig gagnagrunnarnir virka

Hver gagnagrunnur keyrir á serverless Postgres sem scales to zero: eftir nokkrar mínútur án notkunar sefur hann, og vaknar við næstu fyrirspurn. Meðan hann er vakandi getur hann aukið eða minnkað reiknigetu eftir álagi. Þetta gerir „gagnagrunn fyrir hvert forrit“ raunhæfan, því flest forrit eru hljóð mestallan tímann, og sofandi gagnagrunnur kostar nánast ekki neitt.

Það þýðir líka að kostnaður gagnagrunns ræðst af tveimur hlutum sem við sjáum ekki utan frá: hve lengi hann var vakandi og hve stór hann var meðan hann var vakandi.

Það sem áætlunin hafði rangt

Upphaflegi mælirinn okkar gerði eina forsendu: fyrir hverja klukkustund sem netþjónn birts forrits var í gangi var gagnagrunnurinn rukkaður á minnstu reikniaflsstærð.

Sú forsenda var röng á þrjá vegu:

  1. Stærðin var röng. Gagnagrunnar voru í raun keyrðir á stærri sjálfgefinni stærð en áætlunin gekk út frá.
  2. Gagnagrunnar skalast sjálfkrafa. Undir álagi stækka þeir, og áætlunin sá það aldrei.
  3. Gagnagrunnar fylgja ekki netþjóni forritsins. Gagnagrunnur er vakandi þegar eitthvað spyr hann, forritið, skipulagt verk eða skriftu sem kannar hann í sífellu, hvort sem netþjónn forritsins var uppi eða ekki.

Niðurstaðan: áætlunin rukkaði notendur um u.þ.b. helming þess sem gagnagrunnarnir kostuðu í raun. Það er ekki sjálfbært fyrir okkur, og það þýddi líka að notkunartölur í forritinu þýddu ekki það sem fólk hélt.

Mæling í stað ágiskana

Gagnagrunnsveitan okkar skilar hverju verkefni reiknieiningasekúndum á klukkustund, það er hversu mikið reikniafl var í raun notað, þar með talin stærðin. Mælirinn virkar því svona núna:

  1. Fyrir hvert birt forrit með gagnagrunni sækjum við mælda notkun fyrir hverja lokna klukkustund frá því forritið fór í loftið.
  2. Breytum notkuninni í kostnað eftir verði veitunnar, berum á gjaldskrá áætlunarinnar og rukkum inneignir eiganda forritsins.
  3. Lítum allt að einn dag aftur í tímann í hvert skipti, þannig að klukkustundir sem féllu niður meðan API-ið okkar endurræsti sig séu samt rukkaðar síðar.

Geymsla er rukkuð sér, eftir stærð, því hún fer ekki eftir virkni.

Aldrei rukka klukkustund tvisvar

Mælir sem keyrir á fleiri en einum netþjóni, og getur hrunið og endurreynt, verður að passa sig á að rukka ekki tvöfalt. Hver klukkustund í hverjum gagnagrunni er tekin frá í sinni eigin gagnagrunnsröð áður en hún er rukkuð, með einstökuskorðun á parinu (gagnagrunnur, klukkustund). Ef tveir netþjónar, eða ein endurtekning, reyna að rukka sömu klukkustund, heppnast aðeins ein taka.

Við tókum líka meðvitaða ákvörðun um sjaldgæft bilunartilfelli: ef ferlið hrynur á milli þess að taka klukkustund frá og rukka hana, helst hún tekin en óinnheimt. Að tapa litlum hluta af tekjum í sjaldgæfu hruni er betra en að rukka einhvern tvisvar.

Þegar mæld rukkun var kveikt byrjaði hún frá næstu heilu klukkustund. Klukkustundirnar þar á undan höfðu þegar verið rukkaðar eftir gömlu áætluninni, og að rukka þær aftur út frá mældum gögnum hefði rukkað það tímabil tvisvar.

Hvað þetta þýðir ef þú smíðar á Mythex

  • Gagnagrunnsreikningurinn þinn endurspeglar nú það sem gagnagrunnurinn þinn gerði. Forrit sem er sjaldan notað kostar mjög lítið; forrit sem spyr gagnagrunninn stöðugt heldur honum vakandi og kostar meira.
  • Mesta áhrifavaldið er hvernig forritið notar gagnagrunninn. Að kanna gagnagrunninn á nokkurra sekúndna fresti heldur honum vakandi allan sólarhringinn. Að láta gervigreindina sækja gögn eftir þörfum, eða geyma þau í skyndiminni, leyfir gagnagrunninum að sofa. Leiðbeiningin okkar um hvað gagnagrunnur er fjallar um grunnatriðin.
  • Pro-áætlanir borga helming Free-gjaldsins fyrir hýsingu, gagnagrunna og geymslu. Nánari upplýsingar eru í inneignaskjölunum.

Það sem við lærðum

  • Áætlanir um notkunarbundinn kostnað víkja. Þegar upstream-veitan getur sagt þér hvað var notað, rukkaðu eftir því.
  • Gerðu rukkun endurtekningarörugga á minnstu einingunni sem þú rukkar. Hjá okkur er það ein gagnagrunnsklukkustund.
  • Þegar þú verður að bila, bilaðu viðskiptavininum í hag.

Mythex · Pricing · Smíðaðu hvað sem er með gervigreind · Sniðmát fyrir vefsíður og forrit · Mythex í samanburði · Orðasafn um forritasmíði með gervigreind · Ókeypis verkfæri fyrir forritasmíði með gervigreind · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)