Blog

Databázy účtované podľa toho, čo skutočne využívajú

Každá aplikácia Mythex, ktorá potrebuje ukladať dáta, dostane vlastnú Postgres databázu a využitie databázy publikovanej aplikácie sa odpočítava z rovnakého kreditového zostatku ako stavanie. Až do konca septembra sme toto využitie odhadovali podľa toho, ako dlho bežal server aplikácie. Odhad sa ukázal ako nesprávny spôsobom, na ktorom záležalo, a tak sme ho nahradili: každá databáza sa teraz účtuje podľa výpočtového výkonu, ktorý jej poskytovateľ skutočne zmeral, po jednej ukončenej hodine, a každú hodinu možno spoplatniť len raz.

Ako databázy fungujú

Každá databáza beží na bezserverovom Postgrese, ktorý sa zmenší na nulu: po niekoľkých minútach nečinnosti zaspí a prebudí sa pri ďalšom dotaze. Keď je hore, môže výpočtový výkon podľa záťaže zvyšovať a znižovať. Vďaka tomu je „databáza pre každú aplikáciu“ dostupná — väčšina aplikácií je väčšinu času tichá a spiaca databáza stojí takmer nič.

Znamená to aj, že cena databázy závisí od dvoch vecí, ktoré zvonku nevidíme: ako dlho bola hore a aká veľká bola, keď bola hore.

Čo odhad zle odhadol

Náš pôvodný merač robil jeden predpoklad: za každú hodinu, počas ktorej bežal server publikovanej aplikácie, účtoval databázu v najmenšej veľkosti výpočtu.

To bolo nesprávne tromi spôsobmi:

  1. Veľkosť bola zlá. Databázy v skutočnosti bežali vo väčšej predvolenej veľkosti, než predpokladal odhad.
  2. Databázy sa škálujú automaticky. Pri záťaži rastú a odhad to nikdy nevidel.
  3. Databázy nenasledujú server aplikácie. Databáza zostáva hore vždy, keď ju čokoľvek dotazuje — aplikácia, naplánovaná úloha, skript, ktorý ju dopytuje — bez ohľadu na to, či bol server aplikácie spustený.

Čistý výsledok: odhad účtoval používateľom zhruba polovicu toho, čo databázy skutočne stáli. To nie je udržateľné a znamenalo to aj to, že čísla využitia v aplikácii neznamenali to, čo ľudia z nich vyčítali.

Meranie namiesto hádania

Náš poskytovateľ databáz hlási pre každý projekt výpočtové jednotky v sekundách za hodinu — koľko výpočtového výkonu skutočne použil vrátane veľkosti. Merač teraz funguje takto:

  1. Pre každú publikovanú aplikáciu s databázou získaj nameranie využitia za každú ukončenú hodinu od jej spustenia.
  2. Prepočítaj toto využitie na cenu podľa cenníka poskytovateľa, aplikuj sadzbu plánu a účtuj ju na kredity vlastníka aplikácie.
  3. Pri každom behu sa pozri spätne až o deň, aby sa hodiny zmeškané počas reštartu nášho API spoplatnili neskôr.

Úložisko sa účtuje samostatne podľa veľkosti, pretože nezávisí od aktivity.

Nikdy neúčtovať hodinu dvakrát

Merač fakturácie, ktorý beží na viacerých serveroch a môže spadnúť a operáciu zopakovať, musí byť opatrný, aby nič neúčtoval dvakrát. Každá hodina každej databázy sa najprv zarezervuje vo vlastnom riadku databázy, ešte pred účtovaním, s jedinečnostným obmedzením na dvojicu (databáza, hodina). Ak sa dva servery alebo opakovanie pokúsia účtovať tú istú hodinu, uspeje len jedna rezervácia.

Zvolili sme aj vedomé rozhodnutie pre zriedkavý prípad zlyhania: ak proces spadne medzi rezerváciou hodiny a jej účtovaním, táto hodina zostane rezervovaná a neúčtovaná. Strata malej časti príjmu pri zriedkavom páde je lepšia než účtovať niekomu dvakrát.

A keď sa zapol merač podľa skutočného využitia, začal od ďalšej celej hodiny. Hodiny pred ňou už boli účtované starým odhadom; účtovať ich znova podľa nameraných dát by znamenalo účtovať ten úsek dvakrát.

Čo to znamená, ak na Mythex budujete

  • Vaša faktúra za databázu teraz odráža to, čo databáza skutočne robila. Málo používaná aplikácia stojí veľmi málo; aplikácia, ktorá databázu neustále dopytuje, ju bude držať hore a bude stáť viac.
  • Najväčšia páka je spôsob, akým vaša aplikácia používa databázu. Dopytovanie databázy každých pár sekúnd ju drží hore nonstop. Ak AI dáta načíta na požiadanie alebo ich uloží do vyrovnávacej pamäte, databáza môže spať. Náš sprievodca, čo je databáza pokrýva základy.
  • Plány Pro platia za hosting, databázy a úložisko polovicu sadzby plánu Free. Podrobnosti sú v dokumentácii ku kreditom.

Čo sme si z toho odniesli

  • Odhady nákladov závislých od využitia zastarávajú. Keď vám poskytovateľ vie povedať, čo sa spotrebovalo, účtujte podľa toho.
  • Urobte fakturáciu idempotentnou na najmenšej jednotke, ktorú účtujete. Pre nás je to jedna hodina databázy.
  • Keď musíte zlyhať, zlyhajte v prospech zákazníka.

Mythex · Pricing · Vytvorte čokoľvek s AI · Šablóny webov a aplikácií · Mythex v porovnaní · Slovník pojmov tvorby aplikácií s AI · Bezplatné nástroje na tvorbu aplikácií s AI · 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 Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)