Ancak bu evrensel bir kavram değildir. Özel Postgres bulut sunucuları sağlayan Supabase ve Aurabase, aynı mekanizmayı aynı şekilde ortaya çıkarmaz. Bu makale, Neon'un kendi soğuk başlangıcında gerçekte neyi belgelediğini, Vercel Postgres ve Supabase'in nasıl karşılaştırıldığını ve Aurabase modelinin nereye uyduğunu, bir pazarlama sayfasından çıkarım yapmak yerine doğrudan provizyon kodunda doğrulanarak ayrıntılarıyla anlatıyor.
Temeller
- Sunucusuz soğuk başlatma, askıya alınan bir veritabanının ilk isteğe yanıt vermeden önce hesaplamasını uyandırması gerektiğinde eklenen gecikmeyi ifade eder.
- Neon, depolama ve hesaplamayı ayırır: belgelenen bir etkinlik dışı kalma süresinden sonra işlem uyku moduna geçer (ücretsiz planda varsayılan olarak 5 dakika, ücretli planlarda yapılandırılabilir).
- Neon, genellikle birkaç yüz milisaniyeden birkaç saniyeye kadar değişen bir yeniden başlatmayı belgeliyor; yayıncı tarafından yayınlanan bir rakam, neon-latency-benchmarks.vercel.app topluluk aracı aracılığıyla canlı olarak ölçülebiliyor.
- Vercel Postgres Neon altyapısına güveniyor: uyandırma davranışı farklı bir marka altında aynı mekaniği takip ediyor.
- Supabase, bağlantı başına soğuk başlatma olmadan, proje başına özel bir veritabanı sağlar. Yalnızca ücretsiz plan, manuel geri yüklemeyle etkin olmayan projeleri duraklatır.
- Aurabase, proje başına özel bir Postgres veritabanı, özel bir CNPG kümesi veya paylaşılan bir küme üzerinde özel bir taban sağlar: bu, ön hazırlık kodunda doğrulanan bir Neon sunucusuz model değildir.
Sunucusuz Postgres veritabanı için soğuk başlangıç nedir?
Veritabanınızı çalıştıran işlem işlem yapılmaması nedeniyle uyku moduna alındığında soğuk başlatma meydana gelir ve yeni bir sorgunun çalıştırılmadan önce onu yeniden başlatması gerekir. Bu, tipik bir TCP/TLS bağlantısının olağan ağ gecikmesi değildir: bu, daha ilk istek yürütülmeye başlamadan önce yeni bir Postgres işlemini başlatma ve durumunu geri yükleme zamanıdır.
The term comes from serverless computing broadly, where a zeroed execution environment must restart before processing a request, whether it is a server function or a WebAssembly runtime at the edge. We detail this mechanism on the edge functions side in our article on cold start WebAssembly facingcontainers. For a database, the mechanics differ: it is not a compiled binary that starts, but a complete Postgres server which must reopen its files, validate its state, then accept new connections.
1. Müşteri Girişi
Hesaplaması askıya alınan bir projeye istek geldi.
2. Uyku tespiti
Platform, hesaplamanın artık aktif olmadığını fark eder.
3. İşlemin yeniden başlatılması
Postgres işlemi yeniden başlatılır, gerekli durum geri yüklenir.
4. Talep işlendi
Bağlantı başarılı, istek normal şekilde yürütülüyor.
Soğuk çalıştırma mekanizmasının gösterimi, basitleştirilmiş sıra, ölçülen zaman değeri olmadan.
Neon neden bilgisayarını uyku moduna alıyor ve hangi hızda?
Neon, veritabanı mimarisini iki farklı katmana ayırır: verileri tutan kalıcı depolama ve bağımsız olarak durdurulup yeniden başlatılabilen Postgres işleminin kendisi. Bu ayırma, Neon'un etkin olmayan bir projenin hesaplamasını verilere dokunmadan askıya almasına ve resmi belgelere göre talep üzerine yeniden başlatmasına olanak tanıyor.
Ücretsiz planda Neon, işlemi uyku moduna geçirmeden önce varsayılan olarak 5 dakikalık bir eylemsizlik zaman aşımı süresi belgeliyor. Ücretli planlar, bu eşiği yapılandırmanıza ve hatta sabit trafikte kullanım için önemli ölçüde artırmanıza olanak tanır. Bu tür varsayılanlar ürün güncellemeleriyle birlikte değişir: bu izole rakam yerine, okuma sırasında Neon belgelerini güncel olarak kontrol edin.
Bu tasarım belirli bir amaca, geçici ortamlara hizmet eder. Git şubesi başına bir veritabanı, çekme isteğiyle bir önizleme ortamı, günde yalnızca birkaç dakika kullanılan bir test veritabanı: bu kullanımlar için sürekli olarak bir bilgi işlem çalıştırmak pahalıdır ve hiçbir gerçek faydası yoktur. İşlemin iki kullanım arasında askıya alınması, verileri silmeden faturayı azaltır; bu, Neon'un sunucusuz modelinin temel argümanıdır.
Neon alarm saati ne kadar dayanır ve onu kendiniz nasıl kontrol edebilirsiniz?
Neon, belgelerinde, projenin boyutuna ve işlem hazır olmadan önce yeniden oynatılacak işlem günlüklerinin hacmine bağlı olarak, genellikle birkaç yüz milisaniye ile birkaç saniye arasında bir işlemin yeniden başlatıldığını belirtir. Bu, bağımsız bir denetim değil, yayıncının kendisi tarafından yayınlanan bir rakamdır: bunu sözleşmeye dayalı bir garanti olarak değil, belgelenmiş bir büyüklük sırası olarak değerlendirin.
Gerçek dünya ölçümü için, halka açık bir topluluk aracı olan neon-latency-benchmarks.vercel.app, Neon projelerini düzenli aralıklarla askıya alan anketler yapıyor ve gözlemlenen uyanma gecikmesini gösteriyor. Bu, çıplak bir dokümantasyon rakamından daha önemli olan bir metodoloji türüdür: test koşulları, bir pazarlama ortalamasının arkasına gizlenmez, görünür kalır. Aynı prensibi kendi arka uç kıyaslama metodolojimizde de uyguluyoruz: bir rakam yayınlamadan önce protokolü yayınlayın.
| Proje boyutu | Doğrulanacak daha fazla ilişki ve WAL birimi, yeniden başlatmanın daha uzun olmasını sağlar. |
|---|---|
| Bölge ve ağ mesafesi | Soğuk başlatmanın kendisinden bağımsız olarak bağlantı gecikmesini artırır. |
| Fiyatlandırma planı | Ücretli planlar, hareketsizlik eşiğini yapılandırmanıza veya genişletmenize olanak tanır. |
| Bağlantı sıklığı | Düzenli olarak talep edilen bir işlemde bu gecikme asla yaşanmaz. |
Vercel Postgres ve Neon: Başka bir marka altında aynı motor mu?
Vercel, Postgres veritabanı teklifini 2024'te kamuya açıklanan bir ortaklık olan Neon altyapısını temel alarak oluşturdu. Bu yazının yazıldığı sırada, bu Postgres entegrasyonu Vercel Marketplace'te diğer sağlayıcılarla birlikte bir depolama seçeneği olarak sunuluyor. Güncellenmiş Vercel ürün sayfasına göz atın: Bu tür ortaklıklar, her üç ayda bir değişen bir pazarda hızla gelişmektedir.
Somut olarak, Vercel aracılığıyla sağlanan Postgres veritabanının uyku ve uyanma davranışı, yukarıda doğrudan Neon için açıklananla aynı mekaniği takip eder. Kendi soğuk çalıştırma modeline sahip ayrı bir motor değil, Vercel entegrasyonunun arkasında ortaya çıkan altyapının aynısı.
Supabase'in buna benzer bir soğuk başlangıcı var mı?
Hayır, aynı şekilde değil. Supabase, bağlantı başına askıya alınan sunucusuz bir bilgi işlem yerine proje başına özel bir Postgres örneği sağlar. Bu nedenle, Neon modelinin aksine, birkaç dakikalık hareketsizlikten sonra her yeni oturuma uyanma gecikmesi eklenmez.
Bununla birlikte, ücretsiz planda farklı bir mekanizma mevcuttur: Supabase, ilk istek üzerine otomatik uyandırma yerine kontrol panelinden manuel geri yükleme ile, uzun bir süre sonra etkin olmayan projelerin otomatik olarak duraklatılmasını, belgelerine göre bir hafta kadarını belgelemektedir. Bu, dakikalarla değil günlerle ölçülen bir eşiktir ve şeffaf bir toparlanma yerine açık bir eylemdir: Neon soğuk başlatma ile iki yapısal farklılık, aynı mekanizmanın basit bir varyasyonu değildir. Tam bir mimari karşılaştırması için ayrıntılı Aurabase ve Supabase karşılaştırmamız diğer farklılıkları belgelemektedir.
Ve Aurabase modeli: Karşılaştırma neden şu anki haliyle geçerli değil?
Aurabase, Neon gibi sunucusuz bir model sunmuyor. Ön hazırlık kodunda doğrulanmıştır (aura-provisioner, github.com/daylami555/aurabase adresinde açık kaynak): her proje, seçilen plana bağlı olarak ya CloudNativePG, Kubernetes CNPG operatörü tarafından yönetilen özel bir Postgres kümesi ya da aynı kuruluşun çeşitli projeleri arasında paylaşılan bir CNPG kümesinde özel bir taban alır. Her iki durumda da, her bağlantıda askıya alınan ve uyanan tek bir bilgi işlem değildir: birincil ve olası kopyalara sahip eksiksiz bir Postgres kümesidir.
Aurabase tarafında bir hazırda bekleme mekanizması mevcut ancak farklı bir amaca hizmet ediyor. Varsayılan olarak 7 gün süren ve bir ortam değişkeni aracılığıyla yapılandırılabilen, eşik kodda doğrulanan uzun süreli etkinlik dışı kalma durumunda, sağlayıcı, aralıklı kullanımın gecikme süresini optimize etmek için değil, kaynakları boşaltmak için etkin olmayan örnekleri uyku moduna geçirir. Uyuyan bir CNPG kümesinin uyandırılması, bölmelerini kalıcı birimlerden yeniden oluşturur; bu, sunucusuz işlemin basit bir şekilde yeniden başlatılmasından yapısal olarak daha ağır bir mekanizmadır.
Aurabase, hızlı bir uyanma süresi iddiasında bulunmak veya Neon ile karşılaştırmak amacıyla bugüne kadar herhangi bir uyanma gecikmesi rakamı yayınlamadı. Aynı ürün değildir ve yayınlanmış ölçümler olmadan onu bu şekilde sunmak sahtekârlık olur.
Bu özel mimarinin izolasyon ve performans öngörülebilirliği açısından doğrudan bir karşılığı vardır: bir proje, kötü boyutlu bir paylaşılan kümenin aksine, kendi bilgiişlemini başka bir projeyle paylaşmaz. Bu tahkimi özel bir makalede ayrıntılı olarak ele alıyoruz: özel ve paylaşılan taban, performans ve yalıtım üzerindeki gerçek etki.
Kullanım durumunuza göre seçin
Neon sunucusuz modeli belirli bir kullanım durumuna hizmet eder: Sürekli çalışan bir bilgi işlem için ödeme yapmanın ekonomik açıdan anlamlı olmadığı, çok aralıklı trafiğe sahip birçok geçici ortam veya ortam. Git şubesi başına bir veritabanı, çekme isteği yoluyla bir önizleme ortamı, haftada birkaç kez test edilen bir prototip: ara sıra yapılan soğuk başlatma, fiili kullanımla orantılı bir fatura karşısında kabul edilebilir bir uzlaşma haline gelir.
Bunun tersine, ilk bağlantı gecikmesinin öngörülebilir kalması gerektiğinde özel, her zaman açık bir Postgres mimarisi tercih edilir hale gelir: düzenli trafiğe sahip bir üretim API'si, kullanıcı isteğinde ara sıra yaşanan gecikme artışını karşılayamayan bir arka uç veya p99'un izole bir test dalının maliyetinden daha önemli olduğu bir sistem.
| Tedarikçi | Hesaplama modeli | Uyku tetikleyicisi | Tipik alarm saati |
|---|---|---|---|
| neon | Sunucusuz bilgi işlem depolamadan ayrıldı | 5 dakikadan itibaren hareketsizlik (ücretsiz plan) | Otomatik, saniyeden saniyeye (hak talebinde bulunulan düzenleyici) |
| Vercel Postgres | Neon Altyapı (Ortaklık) | Neon'un aynısı | Neon'un aynısı |
| Supabaz | Proje başına özel kurum | Uzun süreli hareketsizlik, yalnızca ücretsiz plan | Manuel, kontrol panelinden geri yükleme |
| Aurabase | Özel veya paylaşılan CNPG kümesi | Uzun süreli hareketsizlik, varsayılan olarak 7 gün | İkinci saniye olarak tasarlanmamıştır, yayınlanmamıştır |
Neon Alarm Saati: yayıncı tarafından belgelenen büyüklük sırası, bağımsız olarak denetlenmez. Aurabase hazırda bekletme eşiği: aura-provisioner'de işaretlendi, değişken HIBERNATE_INACTIVITY_DAYS, varsayılan 7 gün.
Sık sorulan sorular
Hatırlanması gerekenler
Postgres'in sunucusuz soğuk başlatması evrensel bir kavram değildir: Depolama ve hesaplamayı iki kullanım arasında askıya almak üzere ayıran Neon mimarisinin doğrudan bir sonucudur. Vercel Postgres, Neon ile olan ortaklığı aracılığıyla bunu doğrudan devralıyor. Özel Postgres bulut sunucuları sağlayan Supabase ve Aurabase, aynı amaç için tasarlanmamış, dakikalar yerine günlerle ölçülen farklı bir mekanizmayı ortaya çıkarıyor.
Yalnızca bu kritere göre bir sağlayıcı seçmeden önce üç şeyi kontrol edin: sağlayıcı tarafından belgelenen gerçek hareketsizlik eşiği, planınızda yapılandırılabilir olup olmadığı ve uygulama trafiğinizin bilgi işlemin askıya alınmasını haklı gösterip göstermediği. Gerçek aralıklı trafik, test dalları veya önizlemelerle kullanım açısından sunucusuz modelin açık bir ekonomik avantajı vardır. Düzenli trafiğe sahip üretim için özel bir mimari bu soruyu ortadan kaldırır.