Блог

Наплата за бази на податоци според тоа што навистина ги користат

Секоја Mythex апликација што треба да чува податоци добива своја Postgres база, а употребата на базата на објавена апликација се одзема од истиот баланс на кредити како и градењето. До крајот на септември ја проценувавме таа употреба според тоа колку долго работел серверот на апликацијата. Проценката се покажа погрешна на начин што беше важен, па ја заменивме: секоја база сега се наплаќа според пресметката што ја измерил нејзиниот давател, еден завршен час одеднаш, а секој час може да се наплати само еднаш.

Како функционираат базите

Секоја база работи на serverless Postgres што се скалира на нула: по неколку минути без активност заспива, а се буди при следното барање. Додека е будна, може да ја зголемува и намалува својата пресметка според оптоварувањето. Тоа е она што ја прави „база по апликација“ достапна — повеќето апликации се тивки поголемиот дел од времето, а спие база чини речиси ништо.

Исто така значи дека цената на базата зависи од две работи што однадвор не можеме да ги видиме: колку долго била будна и колку била голема додека била будна.

Што погреши проценката

Нашиот оригинален мерач правеше претпоставка: за секој час кога серверот на објавена апликација работи, се наплаќа база по најмалата големина на пресметка.

Тоа беше погрешно на три начини:

  1. Големината беше погрешна. Базите всушност работеа на поголема стандардна големина од онаа што ја претпоставуваше проценката.
  2. Базите се скалираат автоматски. Под оптоварување растат, а проценката тоа никогаш не го виде.
  3. Базите не го следат серверот на апликацијата. База останува будна секогаш кога нешто ја бара — апликацијата, закажана задача, скрипта што ја анкетира — без оглед на тоа дали серверот на апликацијата работел.

Нето ефектот: проценката ги наплаќаше корисниците приближно половина од она што навистина го чинеа базите. Тоа не е одржливо за нас, а значеше и дека бројките за употреба во апликацијата не го значеа она што луѓето мислеа дека значат.

Мерење наместо погодување

Нашиот давател на бази на податоци ја известува пресметковната единица-секунда по час за секој проект — колку пресметка навистина користел, вклучувајќи ја и големината. Значи мерачот сега работи вака:

  1. За секоја објавена апликација со база, се преземаат измерените податоци за секој завршен час од моментот кога апликацијата е пуштена во живот.
  2. Употребата се претвора во цена според цената на давателот, се применува стапката на планот и се наплаќа од кредитите на сопственикот на апликацијата.
  3. Секој пат се гледа назад до еден ден, така што часовите пропуштени додека нашиот API се рестартираше сè уште се наплаќаат подоцна.

Складирањето се наплаќа одделно, според големината, бидејќи не зависи од активноста.

Никогаш не наплаќај истиот час двапати

Мерач за наплата што работи на повеќе од еден сервер — и може да падне и да се обиде повторно — мора внимателно да не наплати двапати. Секој час од секоја база се резервира во сопствен ред во базата пред да се наплати, со ограничување на единственост на парот (база, час). Ако два сервери, или еден повторен обид, се обидат да го наплатат истиот час, успева само едно резервирање.

Направивме и намерен избор за редкиот случај на неуспех: ако процесот падне помеѓу резервирањето на часот и неговото наплаќање, тој час останува резервиран и ненаплатен. Загубата на мал дел од приходот при редок пад е подобра од тоа некому да му се наплати двапати.

И кога се вклучи мерената наплата, таа почна од следниот цел час. Часовите пред тоа веќе беа наплатени со стариот проценет износ; повторното наплаќање според измерените податоци за тој период би значело двојна наплата.

Што значи ова ако градите на Mythex

  • Вашата сметка за база сега ја одразува работата што ја вршела базата. Ретко користена апликација чини многу малку; апликација што постојано ја бара својата база ќе ја држи будна и ќе чини повеќе.
  • Најголемата рачка е начинот на кој апликацијата ја користи базата. Анкетирањето на базата на секои неколку секунди ја држи будна цел ден. Ако AI ги донесува податоците кога ќе бидат потребни или ги кешира, базата може да спие. Нашиот водич за тоа што е база на податоци ги опфаќа основите.
  • Pro плановите плаќаат половина од Free стапката за хостинг, бази и складирање. Деталите се во документацијата за кредити.

Што извлековме

  • Проценките за трошоци базирани на употреба застаруваат. Кога давателот може да каже што е искористено, наплаќајте според тоа.
  • Направете ја наплатата идемпотентна на најмалата единица што ја наплаќате. Кај нас тоа е еден час на база.
  • Кога мора да згрешите, згрешете во корист на клиентот.

Mythex · Pricing · Градете што било со AI · Шаблони за веб-страници и апликации · Mythex во споредба · Речник за градење апликации со AI · Бесплатни алатки за градење апликации со 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 Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)