Ana içeriğe geç
Bulut & Altyapı

PivotLake bellek gecikmesini CPU iş yüküyle azaltarak sorguları hızlandırdı

Öne çıkanlar

  • İşlemciler tek bir RAM erişimi süresinde 400 ila 800 arasında komut işleyebiliyor.
  • Bölümleme yöntemi DRAM veri transferini 4,5 gigabayttan 1,5 gigabayta düşürdü.
  • İşlemci komut sayısı artsa da sorgu süresi tek çekirdekte 3,6 saniyeden 2,7 saniyeye indi.

Veritabanı motoru Pivot'un geliştiricileri, veritabanlarında işlemci kullanımının yüzde 100 görünmesine rağmen performansın RAM gecikmesine takıldığını belirten teknik bir analiz yayımladı. Modern işlemcilerin nanasaniyede 4 ila 8 komut işleyebildiği, ancak RAM erişiminin 50 ila 100 nanosaniye sürdüğü belirtildi. Ekip, bu gecikmeyi telafi etmek için algoritmik olarak işlemci yükünü artırıp bellek erişimini önbelleğe sığdırmanın sorgu sürelerini önemli ölçüde kısalttığını açıkladı.

Analiz kapsamında ClickBench veri setindeki 99 milyon satırlık veride yaklaşık 17 milyon tekil anahtar içeren bir GROUP BY sorgusu test edildi. Tek bir büyük özet tablosu kullanılan geleneksel yöntemde, işlemcinin zamanının yüzde 50,1'ini bellek gecikmelerini bekleyerek geçirdiği ve RAM üzerinden 4,5 gigabayt veri çekildiği gözlemlendi. Sorgu süresi ise 3,6 saniyede tamamlandı. İşlemcinin sürekli olarak soğuk bellek okumalarıyla duraklaması genel sistem başarımını sınırlandırdı.

Ekip, sorunu çözmek için veriyi 4096 parçaya bölen iki aşamalı bir taban bölümleme (radix partitioning) algoritması uyguladı. İşlemci komut sayısı 11,4 milyardan 19,3 milyara yükselmesine karşın, veriler L1 ve L3 önbelleklerine sığdığı için bellek bekleme oranı yüzde 23,5 seviyesine indi. DRAM üzerinden çekilen veri miktarı 1,5 gigabayta gerilerken tek çekirdekteki sorgu süresi 2,7 saniyeye düştü.

Kaynak

Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.