Tinklaraštis

Duomenų bazių apmokestinimas pagal tai, ką jos iš tikrųjų naudoja

Kiekviena Mythex programėlė, kuriai reikia saugoti duomenis, gauna savo Postgres duomenų bazę, o paskelbtos programėlės duomenų bazės naudojimas nurašomas iš to paties kreditų balanso kaip ir kuriant. Iki rugsėjo pabaigos tą naudojimą įvertindavome pagal tai, kiek laiko programėlės serveris veikė. Įvertinimas pasirodė klaidingas esmingu būdu, todėl jį pakeitėme: dabar kiekviena duomenų bazė apmokestinama pagal tiekėjo išmatuotą skaičiavimo naudojimą, po vieną baigtą valandą, ir kiekviena valanda gali būti apmokestinta tik vieną kartą.

Kaip veikia duomenų bazės

Kiekviena duomenų bazė veikia serverless Postgres, kuri sumažėja iki nulio: po kelių neaktyvumo minučių ji užmiega ir pabunda su kita užklausa. Būdama budi, ji gali didinti ir mažinti skaičiavimo galią pagal apkrovą. Būtent tai daro „duomenų bazę kiekvienai programėlei“ įperkamą — dauguma programėlių didžiąją laiko dalį ramios, o miegančia duomenų bazė kainuoja beveik nieko.

Tai reiškia, kad duomenų bazės kaina priklauso nuo dviejų dalykų, kurių iš išorės nematome: kiek laiko ji buvo budi ir koks didelė ji buvo būdama budi.

Kas įvertinime buvo neteisinga

Mūsų pradinis skaitiklis darė prielaidą: už kiekvieną valandą, kurią paskelbtos programėlės serveris veikė, mokėti už duomenų bazę mažiausiu skaičiavimo dydžiu.

Tai klydo trimis būdais:

  1. Dydis buvo neteisingas. Duomenų bazės iš tikrųjų veikė didesniu numatytuoju dydžiu, nei įvertinime buvo numatyta.
  2. Duomenų bazės automatiškai keičia dydį. Esant apkrovai jos auga, o įvertinimas to niekada nematė.
  3. Duomenų bazės neseka programėlės serverio. Duomenų bazė lieka budi, kai ją bet kas užklausia — programėlė, suplanuota užduotis, skriptas, kuris ją nuolat tikrina — nepriklausomai nuo to, ar programėlės serveris veikia.

Galutinis rezultatas: įvertinimas vartotojams apmokestino maždaug pusę to, kiek iš tikrųjų kainavo duomenų bazės. Tai nėra tvaru mums, be to, programėlėje rodomi naudojimo skaičiai nereiškė to, ką žmonės manė.

Matuoti, o ne spėti

Mūsų duomenų bazių tiekėjas praneša kiekvieno projekto skaičiavimo vienetų sekundes per valandą — kiek skaičiavimo iš tikrųjų panaudota, įskaitant dydį. Todėl skaitiklis dabar veikia taip:

  1. Kiekvienai paskelbtai programėlei su duomenų baze gauti išmatuotą naudojimą už kiekvieną baigtą valandą nuo programėlės paleidimo.
  2. Konvertuoti naudojimą į kainą pagal tiekėjo kainą, pritaikyti plano įkainį ir nurašyti iš programėlės savininko kreditų.
  3. Kiekvieną kartą žvelgti atgal iki vienos dienos, todėl valandos, praleistos tuo metu, kai mūsų API buvo perkraunamas, vis tiek bus apmokestintos vėliau.

Saugykla apmokestinama atskirai pagal dydį, nes ji nepriklauso nuo aktyvumo.

Niekada neapmokestinti valandos du kartus

Apmokestinimo skaitiklis, veikiantis daugiau nei viename serveryje ir galintis sugesti bei bandyti iš naujo, turi būti atsargus, kad nedvigubintų mokesčių. Kiekviena kiekvienos duomenų bazės valanda pirmiausia užimama savo duomenų bazės eilutėje, kol ji apmokestinama, ir pora (duomenų bazė, valanda) turi unikalumo apribojimą. Jei du serveriai ar pakartojimas bando apmokestinti tą pačią valandą, pavyksta tik vienas užėmimas.

Taip pat priėmėme sąmoningą sprendimą dėl retos gedimo situacijos: jei procesas sugenda tarp valandos užėmimo ir jos apmokestinimo, ta valanda lieka užimta ir neapmokestinta. Retu gedimu prarasti nedidelę pajamų dalį geriau, nei kada nors apmokestinti ką nors du kartus.

Kai išmatuotas apmokestinimas buvo įjungtas, jis pradėjo nuo kitos pilnos valandos. Ankstesnes valandas jau buvo apmokestinusi sena įvertinimo sistema; apmokestinti jas dar kartą pagal išmatuotus duomenis reikštų tą laikotarpį apmokestinti dvigubai.

Ką tai reiškia, jei kuriate Mythex

  • Jūsų duomenų bazės sąskaita dabar atspindi, ką jūsų duomenų bazė iš tikrųjų darė. Retai naudojama programėlė kainuoja labai mažai; programėlė, kuri nuolat užklausia savo duomenų bazę, ją laiko budrią ir kainuoja daugiau.
  • Didžiausia įtaka yra tai, kaip jūsų programėlė naudoja duomenų bazę. Duomenų bazės apklausinėjimas kas kelias sekundes laiko ją budrią visą parą. DI paprašymas gauti duomenis pagal poreikį arba jų talpinimas podėlyje leidžia duomenų bazei miegoti. Mūsų vadovas, kas yra duomenų bazė aprėpia pagrindus.
  • Pro planai už talpinimą, duomenų bazes ir saugyklą moka pusę Free įkainio. Išsamiau — kreditų dokumentacijoje.

Ką iš to išmokome

  • Įvertinimai, paremti naudojimu, nukrypsta. Kai tiekėjas gali pasakyti, kiek ko nors buvo panaudota, apmokestinkite pagal tai.
  • Padarykite apmokestinimą idempotentišku mažiausiam vienetui, kurį apmokestinate. Mums tai yra viena duomenų bazės valanda.
  • Kai privalote klysti, klyskite vartotojo naudai.

Mythex · Pricing · Kurkite bet ką su dirbtiniu intelektu · Svetainių ir programėlių šablonai · Mythex palyginimas · Programėlių kūrimo su dirbtiniu intelektu žodynėlis · Nemokami programėlių kūrimo su dirbtiniu intelektu įrankiai · 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 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 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 简体中文 繁體中文(香港) 繁體中文(台灣)