Blog

Bil Pangkalan Data Mengikut Penggunaan Sebenar

Setiap aplikasi Mythex yang memerlukan storan data mendapat pangkalan data Postgres sendiri, dan penggunaan pangkalan data bagi aplikasi yang diterbitkan datang daripada baki kredit yang sama dengan pembinaan. Sehingga akhir September, kami menganggar penggunaan itu daripada tempoh pelayan aplikasi tersebut berjalan. Anggaran itu ternyata salah dengan cara yang penting, jadi kami menggantikannya. Kini setiap pangkalan data dibil daripada pengiraan yang diukur oleh pembekalnya, satu jam yang selesai pada satu-satu masa, dan setiap jam hanya boleh dicaj sekali sahaja.

Cara pangkalan data berfungsi

Setiap pangkalan data berjalan pada Postgres tanpa pelayan yang skala ke sifar: selepas beberapa minit tidak aktif, ia tidur, dan ia bangun apabila pertanyaan seterusnya tiba. Semasa berjaga, ia boleh menaikkan atau menurunkan pengiraannya mengikut beban. Itulah yang menjadikan “satu pangkalan data bagi setiap aplikasi” mampu milik. Kebanyakan aplikasi sentiasa senyap, dan pangkalan data yang sedang tidur hampir tidak menelan kos.

Ia juga bermakna kos sesebuah pangkalan data bergantung pada dua perkara yang tidak dapat kami lihat dari luar: berapa lama ia berjaga dan berapa besar ia semasa berjaga.

Apa yang salah dengan anggaran

Meter asal kami membuat satu andaian: bagi setiap jam pelayan aplikasi yang diterbitkan sedang berjalan, caj pangkalan data pada saiz pengiraan terkecil.

Ia salah dalam tiga cara:

  1. Saiznya salah. Pangkalan data sebenarnya berjalan pada saiz lalai yang lebih besar daripada yang dianggarkan.
  2. Pangkalan data skala sendiri. Di bawah beban ia membesar, dan anggaran tidak pernah menyedarinya.
  3. Pangkalan data tidak mengikut pelayan aplikasi. Pangkalan data kekal berjaga setiap kali apa-apa sahaja membuat pertanyaan kepadanya, sama ada aplikasi, kerja berjadual, atau skrip yang meninjaunya, tanpa mengira sama ada pelayan aplikasi sedang berjalan.

Kesan bersihnya: anggaran itu mencaj pengguna kira-kira separuh daripada kos sebenar pangkalan data. Itu tidak mampan bagi kami, dan ia juga bermakna nombor penggunaan dalam aplikasi tidak bermaksud apa yang disangka oleh orang ramai.

Mengukur dan bukannya meneka

Pembekal pangkalan data kami melaporkan saat-unit pengiraan setiap jam bagi setiap projek, iaitu berapa banyak pengiraan yang benar-benar digunakan, termasuk saiznya. Jadi meter kini berfungsi seperti berikut:

  1. Bagi setiap aplikasi terbit yang mempunyai pangkalan data, ambil penggunaan yang diukur bagi setiap jam yang telah selesai sejak aplikasi itu dilancarkan.
  2. Tukarkan penggunaan itu kepada kos pada harga pembekal, gunakan kadar pelan, dan caj kepada kredit pemilik aplikasi.
  3. Lihat semula sehingga sehari setiap kali, supaya jam yang terlepas semasa API kami dimulakan semula masih akan dicaj kemudian.

Storannya dicaj berasingan mengikut saiz, kerana ia tidak bergantung pada aktiviti.

Tidak mencaj jam yang sama dua kali

Meter pengebilan yang berjalan pada lebih daripada satu pelayan, dan boleh ranap serta dicuba semula, perlu berhati-hati supaya tidak mencaj berganda. Setiap jam bagi setiap pangkalan data dituntut dalam baris pangkalan datanya sendiri sebelum ia dicaj, dengan kekangan keunikan pada pasangan (pangkalan data, jam). Jika dua pelayan, atau satu percubaan semula, cuba mengebil jam yang sama, hanya satu tuntutan yang berjaya.

Kami juga membuat pilihan yang disengajakan untuk kes kegagalan yang jarang berlaku: jika proses ranap antara menuntut satu jam dan mengenakan cajnya, jam itu kekal dituntut tetapi tidak dibil. Kehilangan sedikit hasil dalam ranap yang jarang berlaku lebih baik daripada mengenakan caj berganda kepada seseorang.

Apabila pengebilan yang diukur diaktifkan, ia bermula dari jam penuh seterusnya. Jam-jam sebelum itu sudah pun dicaj oleh anggaran lama, dan membilnya semula daripada data yang diukur akan mencaj tempoh tersebut dua kali.

Apa maksudnya jika anda membina di Mythex

  • Bil pangkalan data anda kini mencerminkan apa yang pangkalan data anda lakukan. Aplikasi yang jarang digunakan hampir tidak menelan kos; aplikasi yang sentiasa membuat pertanyaan kepada pangkalan datanya akan membuatnya terus berjaga dan kosnya lebih tinggi.
  • Faktor terbesar ialah cara aplikasi anda menggunakan pangkalan data. Meninjau pangkalan data setiap beberapa saat akan memastikannya berjaga sepanjang masa. Meminta AI mengambil data apabila diperlukan, atau menyimpannya dalam cache, membolehkan pangkalan data tidur. Panduan kami tentang apa itu pangkalan data meliputi asasnya.
  • Pelan Pro membayar separuh kadar Free untuk hosting, pangkalan data dan storan. Butirannya terdapat dalam dokumentasi kredit.

Apa yang kami pelajari daripadanya

  • Anggaran bagi kos berasaskan penggunaan cenderung menyimpang. Apabila pembekal hulu boleh memberitahu anda apa yang digunakan, bil berdasarkan maklumat itu.
  • Jadikan pengebilan idempoten pada unit terkecil yang anda caj. Bagi kami, itu ialah satu jam pangkalan data.
  • Apabila anda terpaksa gagal, gagallah dengan memihak kepada pelanggan.

Mythex · Pricing · Bina apa sahaja dengan AI · Templat laman web dan aplikasi · Mythex dibandingkan · Glosari pembinaan aplikasi AI · Alat percuma untuk membina aplikasi dengan 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 Македонски മലയാളം Монгол मराठी မြန်မာ 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 简体中文 繁體中文(香港) 繁體中文(台灣)