İçeriğe geç
Muhammet Şafak
en

Sor Bakalım

Bana ne istersen sor

Yazılım mimarisi, kariyer, PHP, Go ve geliştirme süreçleri üzerine merak ettiklerini sor; cevapları burada herkese açık paylaşıyorum. (Sayfa 3/6)

Bir soru sor

Aklına takılan ne varsa çekinme. Sorular bana ulaşır; uygun olanları cevaplayıp bu sayfada yayınlarım. E-postan kesinlikle yayınlanmaz.

E-postan yalnızca bana ulaşır, hiçbir zaman yayınlanmaz.

Uğur

Zaman serisi verisi için TimescaleDB mi, InfluxDB mu?

Günde 100M satır düz MySQL'de patlar: B-tree indeks ve tam tablo agregasyonu RAM'e sığmaz. SQL'de düşünüyor ve agregasyon istiyorsan TimescaleDB (hypertable + continuous aggregate + sıkıştırma) düşük sürtünmeli kazanç. InfluxDB yalnızca ayrı bir metrik stack istiyorsan.

#veritabanı#postgresql#ölçekleme
Sarp

Redis'te canlı leaderboard için neden Sorted Set kullanmalıyım?

Skorları düz String'de tutup uygulamada sıralama — bu milyonlarca anahtar üzerinde okuma başına O(N log N). Sorted Set (ZSET) kullan: `ZADD` O(log N) güncelleme, `ZREVRANGE 0 99` zaten sıralı ilk 100, `ZREVRANK` O(log N) sıra. Yazarken sıralı tutar, okuma neredeyse sabit.

#veritabanı#redis#performans
Rüzgar

CQRS'i ne zaman uygulamalı ve okuma/yazma modellerini nasıl senkronlamalıyım?

Önce en ucuz sürümü dene: read-replica ekle, raporlamayı oraya taşı — kilitlenme çoğu zaman bununla biter. Tam CQRS'i yalnızca sorgu şekilleri tek şemaya sığmayacak kadar ayrıştığında kur; modelleri outbox pattern'le event-driven senkronla, dual-write yapma, eventual consistency'yi kabul et.

#veritabanı#mimari#elasticsearch
Polat

Bakiye güncellemede race condition: Pessimistic Lock mı, Redlock mı?

Para için invariant'ı DB'de tut. Atomik koşullu `UPDATE ... SET balance = balance - 40 WHERE id = ? AND balance >= 40` ya da `SELECT ... FOR UPDATE` kullan. Redlock yalnızca tek bir DB satırı olmayan kaynaklar için; bakiyeyi DB zaten koruyabiliyorken dağıtık kilide güvenme.

#veritabanı#kuyruk#redis
Halil

Esnek ürün nitelikleri için NoSQL mu, PostgreSQL mi seçmeliyim?

Sırf nitelikler değişkenler diye MongoDB'ye koşma — bu NoSQL tuzağıdır. İlişkisel çekirdeği (ürün, fiyat, sipariş) PostgreSQL'de tut, değişken nitelikleri GIN index'li bir `JSONB` kolonuna koy. Raporlama ihtiyacın tek başına Mongo'ya bölmeye karşı argüman.

#veritabanı#mimari#postgresql
Eren

Health check tasarımı: Liveness ve Readiness ayrımını nasıl yaparım?

Liveness 'süreç takıldı mı?' sorusudur — ucuz ve bağımlılıksız tut (DB'yi burada kontrol etme). Readiness 'şu an istek alabilir miyim?' sorusudur — kritik bağımlılıkları kontrol et ama sonucu birkaç saniye cache'le. Liveness fail → restart, readiness fail → trafiği kes. Probe'lar DB'yi DDoS'lamasın.

#dayanıklılık#altyapı#kubernetes
Furkan

PostgreSQL tablo partitioning'e sıfır kesinti ile nasıl geçerim?

`created_at`'e göre aylık RANGE declarative partitioning kullan. Sıfır kesinti için yeni parçalı tabloyu kur, geçmişi batch'ler hâlinde backfill et, uygulama yazmaya devam ederken isimleri tek transaction'da takasla. UNIQUE/PK ve FK'ler partition anahtarını içermek zorunda.

#veritabanı#postgresql#ölçekleme
Sinan

Veritabanı deadlock'larını önlemek için hangi kurallara dikkat etmeliyim?

Deadlock bir kilit-sıralama döngüsüdür. Kilitleri her zaman aynı global sırada al (örn. artan PK), transaction'ları kısa ve dar tut, en az satıra hedefli `FOR UPDATE` uygula. Yine de olacağını bekle: DB bir kurbanı abort eder, sen idempotent yapıp backoff ile retry et.

#dayanıklılık#veritabanı#postgresql
Oğuz

Go HTTP sunucusunda panic'i recovery middleware ile nasıl yönetirim?

Her isteği `defer recover()` ile saran, stack'i + request id'yi loglayan, generic 500 dönen ve metrik basan bir middleware'i zincirin en dışına koy. Ama recover yalnızca aynı goroutine'i yakalar: handler içinde `go func()` açıyorsan o goroutine'in kendi recover'ı olmalı.

#dayanıklılık#go

Sitede Ara

Yazı, proje ve sayfalarda arama yapmak için yazmaya başlayın.

Esc ile kapat Pagefind ile güçlendirildi