ParadeDB PostgreSQL üzerinde COUNT sorgularını hızlandıran mimariyi anlattı
Öne çıkanlar
- Görünürlük haritası denetimlerini atlayan segment bölümleme, sayfa erişimini 1382'den 30'a düşürdü.
- Yaygın terimlerde bit eşlem gösterimine geçilmesi p99 gecikme süresini yüzde 50 oranında azalttı.
- Filtrelenmiş ve sıralı arama senaryolarında ParadeDB, TIN eklentisinden 21 kata kadar daha hızlı çalıştı.
ParadeDB geliştirme ekibi, PostgreSQL tabanlı arama motorunda COUNT sorgularının ve karmaşık arama işlemlerinin performansını artıran yeni optimizasyonları yayımladı. Geliştiriciler, profil çıkarma analizlerinde görünürlük denetimlerinin sayfa erişimlerinin yüzde 81'ini oluşturduğunu tespit etti. Bu sorunu çözmek amacıyla segment bölümleme, tersine çevrilmiş belge kimliği haritası ve yaygın terimler için bit eşlem temsili olmak üzere üç temel optimizasyon uygulandı.
Segment bölümleme yöntemiyle veriler ctid aralıklarına göre ayrıştırıldı ve tümüyle görünür durumdaki segmentlerde satır bazlı denetimler tamamen atlandı. Bu sayede test sorgusundaki görünürlük odaklı sayfa erişimi 1382'den 30'a geriledi. Ayrıca ctid haritasının tersine çevrilmesiyle bin satırlık güncelleme sonrasında bellek erişimlerinde yüzde 95 düşüş sağlandı. Belgelerin yüzde 10'undan fazlasında geçen yoğun terimler için BP128 yerine bit eşlem kullanılması ise p99 gecikmesini yarı yarıya indirdi.
Ekip, filtrelenmiş ve zamana göre sıralanmış Hacker News veri kümesi testlerinde ParadeDB'nin PlanetScale tarafından geliştirilen TIN eklentisine kıyasla 10 ila 21 kat daha yüksek işlem hacmine ulaştığını bildirdi. Metin ve meta veri alanlarını tek bir indekste birleştiren mimari, PostgreSQL seviyesindeki pahalı birleştirme işlemlerini engelleyerek sorgu sürelerini kısalttı. Karşılaştırmalı testlerin ağ gecikmesinden etkilenmemesi için ölçümler sunucu tarafındaki PL/pgSQL araçlarıyla yürütüldü.
Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.