Blog

Veritabanlarını Gerçekte Kullandıkları Kadar Faturalandırmak

Veri saklaması gereken her Mythex uygulaması kendi Postgres veritabanını alır; yayındaki bir uygulamanın veritabanı kullanımı, inşa için kullanılan aynı kredi bakiyesinden düşer. Eylül'ün sonuna kadar bu kullanımı, uygulamanın sunucusunun ne kadar süre çalıştığına bakarak tahmin ediyorduk. Tahmin, önemli bir şekilde yanlış çıktı ve onu değiştirdik: artık her veritabanı, sağlayıcısının gerçekten ölçtüğü işlem gücünden, bitmiş saatlik dilimler halinde faturalandırılıyor ve her saat yalnızca bir kez ücretlendirilebiliyor.

Veritabanları nasıl çalışır

Her veritabanı, sıfıra ölçeklenen sunucusuz Postgres üzerinde çalışır: birkaç dakika boşta kaldıktan sonra uyur ve bir sonraki sorguda uyanır. Uyanıkken işlem gücünü yükle birlikte artırıp azaltabilir. "Uygulama başına bir veritabanı"nı uygulanabilir kılan da budur: çoğu uygulama çoğu zaman sessizdir ve uyuyan bir veritabanının maliyeti neredeyse sıfırdır.

Bu aynı zamanda bir veritabanının maliyetinin dışarıdan göremediğimiz iki şeye bağlı olduğu anlamına gelir: ne kadar süre uyanık kaldığı ve uyanıkken ne kadar büyük olduğu.

Tahmin neyi yanlış yaptı

Özgün ölçerimiz bir varsayımda bulunuyordu: yayındaki bir uygulamanın sunucusu çalıştığı her saat için, veritabanını en küçük işlem gücü boyutundan ücretlendir.

Bu üç şekilde yanlıştı:

  1. Boyut yanlıştı. Veritabanları, tahminin varsaydığından daha büyük bir varsayılan boyutta çalışıyordu.
  2. Veritabanları otomatik ölçeklenir. Yük altında büyürler ve tahmin bunu hiç görmedi.
  3. Veritabanları uygulama sunucusunu takip etmez. Bir veritabanı, uygulama sunucusu çalışıyor olsun ya da olmasın, herhangi bir şey onu sorguladığında uyanık kalır: uygulama, zamanlanmış bir iş, veritabanını yoklayan bir betik.

Net etki: tahmin, kullanıcılardan veritabanlarının gerçekte maliyetinin yaklaşık yarısını ücretlendiriyordu. Bu bizim için sürdürülebilir değildi ve uygulamadaki kullanım sayılarının insanların sandığı anlamı taşımadığı anlamına geliyordu.

Tahmin yerine ölçmek

Veritabanı sağlayıcımız her projenin saniye başına işlem birimi tüketimini saatlik olarak raporlar: gerçekte ne kadar işlem gücü kullandığını, boyutu dahil. Yani ölçer artık şöyle çalışıyor:

  1. Veritabanı olan her yayındaki uygulama için, uygulama yayına girdiğinden beri bitmiş her saatin ölçülmüş kullanımını al.
  2. Bu kullanımı sağlayıcının fiyatına çevir, planın oranını uygula ve uygulama sahibinin kredilerinden düş.
  3. Her seferinde bir güne kadar geriye bak; böylece API'miz yeniden başlatılırken kaçırılan saatler sonradan yine faturalandırılır.

Depolama ayrı olarak, boyutuna göre faturalandırılır; çünkü etkinliğe bağlı değildir.

Bir saatin iki kez ücretlendirilmemesi

Birden fazla sunucuda çalışan ve çökebilen, yeniden deneme yapabilen bir faturalandırma ölçerinin çift ücretlendirmemesi gerekir. Her veritabanının her saati, ücretlendirilmeden önce kendi veritabanı satırında talep edilir ve (veritabanı, saat) çifti üzerinde bir benzersizlik kısıtı vardır. İki sunucu ya da bir yeniden deneme aynı saati faturalandırmaya çalışırsa, yalnızca bir talep başarılı olur.

Nadir hata durumu için bilinçli bir seçim de yaptık: süreç, bir saati talep edip ücretlendirmek arasında çökerse, o saat talep edilmiş ve faturalandırılmamış olarak kalır. Nadir bir çökmede küçük bir gelir kaybetmek, birini iki kez ücretlendirmekten iyidir.

Ölçülmüş faturalandırma açıldığında, bir sonraki tam saatten başladı. Öncesindeki saatler zaten eski tahminle ücretlendirilmişti; bunları ölçülmüş veriden yeniden faturalandırmak, o aralığı iki kez ücretlendirmek olurdu.

Mythex üzerinde inşa ediyorsanız bunun anlamı

  • Veritabanı faturanız, veritabanınızın ne yaptığını yansıtır. Nadiren kullanılan bir uygulama çok az maliyetlidir; veritabanını sürekli sorgulayan bir uygulama onu uyanık tutar ve daha fazla maliyet çıkarır.
  • En büyük kaldıraç, uygulamanızın veritabanını nasıl kullandığıdır. Veritabanını her birkaç saniyede bir yoklamak, onu günün her saati uyanık tutar. Yapay zekadan verileri isteğe bağlı çekmesini ya da önbelleğe almasını istemek ise veritabanının uyumasına izin verir. Veritabanı nedir rehberimiz temelleri anlatır.
  • Pro planlar, barındırma, veritabanları ve depolama için Free oranının yarısını öder. Ayrıntılar kredi dokümantasyonunda.

Bundan çıkardıklarımız

  • Kullanıma dayalı maliyetlerin tahminleri zamanla sapar. Üst sağlayıcı neyin kullanıldığını söyleyebiliyorsa, faturalandırmayı ondan yapın.
  • Faturalandırmayı, ücretlendirdiğiniz en küçük birimde idempotent yapın. Bizim için bu, bir veritabanı saati.
  • Başarısız olmanız gerekiyorsa, müşterinin lehine başarısız olun.

Mythex · Pricing · Yapay zekayla her şeyi yapın · Web sitesi ve uygulama şablonları · Mythex karşılaştırmaları · Yapay zekayla uygulama geliştirme sözlüğü · Yapay zekayla uygulama geliştirme için ücretsiz araçlar · 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 Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)