PlanetScale TIN: Postgres için GA full-text search eklentisi, GIN’e 541× throughput iddiası

PlanetScale, 16 Eylül 2026’da TIN (Text INdex) adlı Postgres full-text search eklentisini genel kullanıma (GA) sundu. TIN, boolean ve phrase sorguları, BM25 ranking, fuzzy matching, wildcard, regex desteği ve MVCC-correct güncellemeler sunuyor. Sorgular TINQL ==> operatörüyle yazılıyor.

Ana Gelişme

PlanetScale’in 150 milyon dokümanlık benchmark’ında TIN, alternatiflere kıyasla index oluşturmayı 2–16 kat, sorgu throughput’unu GIN’e karşı 541 kata kadar hızlandırdığını bildiriyor. Mimari, ctid-tabanlı postings listeleri ve vectorized bitmap operasyonlarına dayanıyor; hit highlighting de destekleniyor.

Eklenti PlanetScale Postgres ve Neki platformlarında kullanılabilir. Self-hosted Postgres ortamlarında TIN kullanılamıyor — yalnızca PlanetScale’in managed servisinde mevcut. CI ve geliştirme ortamları için Lead adlı AGPL lisanslı companion eklenti sunuluyor; Lead kasıtlı olarak yavaş full-table-scan davranışıyla üretim ortamından ayrıştırılıyor.

Eklentinin yazarları Eric Ridge (önceki BM25 Postgres çalışmaları) ve Patrick Reynolds.

Neden Önemli?

Arama yoğun uygulamalarda geliştiriciler genellikle Elasticsearch sidecar senkronizasyonu kuruyor. TIN, PlanetScale müşterileri için bu karmaşıklığı ortadan kaldırma potansiyeli taşıyor — tek bir Postgres instance’ında hem transactional veri hem arama.

Türk yazılım mühendisleri Postgres’i yoğun kullanıyor; GA bir FTS eklentisi mimari kararları doğrudan etkiliyor. Ancak performans iddiaları vendor benchmark’ına dayanıyor; bağımsız replikasyon henüz mevcut değil.

Teknik Detaylar

TIN’in öne çıkan özellikleri:

  • Boolean/phrase/span sorguları: Karmaşık arama ifadeleri destekleniyor
  • BM25 ranking: Modern arama motorlarında standart olan ranking algoritması
  • Fuzzy matching: Yazım hatalarına tolerans
  • MVCC-correct updates: Transactional tutarlılık korunuyor
  • ctid-based postings: Fiziksel satır konumlarına dayalı index yapısı

Bağlam

Self-hosted Postgres kullanıcıları GIN index, ParadeDB veya harici arama servisleriyle devam edecek. PlanetScale müşterileri için TIN, veritabanı performansı açısından anlamlı bir alternatif sunuyor.

Karar matrisi basitleştirilmiş haliyle:

SenaryoÖneri
PlanetScale Postgres kullanıyorsanızTIN değerlendirmeye değer
Self-hosted PostgresGIN, ParadeDB veya Elasticsearch
Elasticsearch sidecar yönetimi yorucuManaged TIN cazip olabilir

Elasticsearch Sidecar vs Native FTS

Geleneksel mimaride Postgres transactional veriyi tutar, Elasticsearch arama index’ini yönetir. Bu iki sistem arasında senkronizasyon pipeline’ı kurmak operasyonel karmaşıklık yaratır: veri tutarsızlığı, gecikme ve ek altyapı maliyeti. TIN, PlanetScale müşterileri için bu senkronizasyonu ortadan kaldırıyor.

Ancak self-hosted Postgres kullanıcıları için durum değişmiyor. ParadeDB, GIN index veya harici Elasticsearch hâlâ geçerli seçenekler. TIN’in vendor-reported benchmark’ları etkileyici görünse de, bağımsız replikasyon olmadan mimari karar vermek riskli.

Eric Ridge’in önceki BM25 Postgres çalışmaları, TIN’in teknik temelinin sağlam olduğunu gösteriyor. Patrick Reynolds ile birlikte geliştirilen ctid-based postings yaklaşımı, fiziksel satır konumlarını doğrudan index’lemek yerine pointer tabanlı bir yapı sunuyor.

Sonraki Adımlar

Bağımsız benchmark replikasyonları ve self-hosted talepleri izlenecek. Lead companion’ın CI workflow entegrasyonu geliştirici deneyimini şekillendirecek. PlanetScale’in TIN’i diğer managed Postgres sağlayıcılarına da açması bekleniyor.


Kaynaklar