Skip to content

Cache ve Performans

Cavanshirpro edited this page Sep 19, 2026 · 1 revision

Cache, performans ve kapasite

English · Türkçe · Languages / Diller

Kapsam: JSON API Forge 0.5.1 · İnceleme: 17 Eylül 2026 · Dil: Türkçe

Forge memory, Redis ve tiered cache destekler. Memory tek süreçte, Redis ortak altyapıda, tiered ise yerel L1 ve ortak L2 yaklaşımında çalışır. Bu seçeneklerin aynı veritabanı tutarlılık garantisini verdiğini varsaymayın.

{
  "cache": {
    "enabled": true, "backend": "redis", "default_ttl_seconds": 30,
    "stale_ttl_seconds": 0, "max_entries": 10000, "fail_open": true
  }
}

Redis için süreçte REDIS_URL tanımlanmalıdır. fail_open=true, cache arızasında işin asıl veri kaynağına devam edebilmesini amaçlar; veritabanınızın bu yükü kaldırması gerekir. Rate limiter'ın fail policy'si bundan ayrıdır.

Nerede cache var?

Yüzey Kontrol
SQL/Mongo list ve read Proje cache + resource override
Read-only GET operation OperationCacheConfig; varsayılan kapalı
Data source TTL ve stale ayarları
API key metadata Güvenlik ayarında ayrı TTL
JWKS Ayrı güvenlik cache süresi

Mutation kaynak namespace'ini geçersizleştirir. Özel RPC'de ilgili resource/operation invalidation listelerini yazmak gerekir. SQL'i dışarıdan değiştirmek veya keyfi hook çalıştırmak bütün Forge cache'lerini kendiliğinden yenilemez.

Cache anahtarları tenant/owner/principal ve sorgu bağlamından ayrılmamalıdır. Kullanıcıya göre farklı dönen operation için vary_by_principal önemli bir yetki sınırıdır. Cache'e yanlış kullanıcı bağlamıyla veri koymak hızlı bir veri sızıntısı yaratabilir.

TTL ve stale

TTL'nin kısa olması güncellik, uzun olması hit oranı sağlar. Stale penceresi bilinçli olarak eski sonuca izin verir; bakiye veya kritik durum kontrolünün doğruluk kaynağı olarak kullanmayın. Single-flight aynı anda gelen pahalı yüklemeleri azaltır; transaction/lock yerine geçmez.

Ölçüm sırası

  1. Sorgu planı, doğru index ve bounded sonuç boyutu.
  2. Bağlantı havuzu ve worker sayısıyla toplam DB kapasitesi.
  3. Endpoint timeout ve concurrency bütçesi.
  4. Cache hit/miss, invalidation sıklığı ve bellek sınırı.
  5. Temsilî yükte p50/p95/p99 latency ve hata oranı.

Tek laptop benchmark'ından evrensel RPS garantisi çıkarmayın. scripts/load_test.py küçük tanısal probdur. Gerçek trafik şekli, payload, tenant sayısı, cache sıcaklığı ve upstream gecikmesini belirtmeden sonuç kıyaslamayın.

Kaynak ve doğrulama

Bu sayfa aşağıdaki sabit commitlerdeki davranışı açıklar. Yeni bir sürümde aynı davranışın sürdüğünü varsaymayın.


Wiki ana sayfa · Tüm sayfalar · Sürüm ve bakım

Clone this wiki locally