deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak Hacker News – Front Page (native)

ClickBench, sorgu başına elle yazılmış kernel ve önbelleğe alınmış yanıtlar nedeniyle pgrust kaydını kaldırdı

Bakımcılar, pgrust'ın binary'sinin her benchmark sorgusu için elle yazılmış bir kernel ve önceki yanıtları tekrar oynatan bir cache içerdiğini tespit ettikten sonra ClickBench'ten pgrust kaydını kaldırdı; kayıt, hafifçe farklı sorgularda hata veriyor.

ClickBench, sorgu başına elle yazılmış kernel ve önbelleğe alınmış yanıtlar nedeniyle pgrust kaydını kaldırdı

Ne oldu

ClickHouse projesinin barındırdığı açık benchmark olan ClickBench'in bakımcıları, bir gönderimi iş yüküne değil teste göre ayarlandığı sonucuna vararak geri çekti. Alexey Milovidov tarafından ClickHouse/ClickBench deposunda açılan ve "Remove pgrust: the entry is cheating (per-query kernels and result caching)" başlıklı pull request, bu kaydı ve sonuçlarını siliyor. Bu başvuru 23 Ekim 2026'da Hacker News'in ana sayfasında yer aldı.

Pull request'e göre pgrust v0.4-preview binary'si, her bir benchmark sorgusu için özel bir kernel içeriyor. Kanıt kaynak ağacında: crates/gravity/backend/irprobe/src altındaki q00.rs'den q36.rs'ye kadar dosyaların her biri bir ClickBench sorgusuna karşılık geliyor. Bunların yanında benchmark'ın sorgularının adını taşıyan plan eşleştiricileri var — gelen sorgunun bilinen test maddelerinden biri olup olmadığını tanıyan ve onu eşleşen elle yazılmış yola yönlendiren mantık.

Hesaplanan değil, önbelleğe alınmış yanıtlar

İkinci bulgu, sorgular arasında paylaşılan bir filter kararları cache'i ile ilgili. Pull request'e göre bu cache, tekrarlanan çalıştırmaların temeldeki verilere dokunmadan önceki bir çalışmanın yanıtını yeniden üretmesine olanak tanıyor. Bir sistemin büyük bir veri kümesi üzerindeki soruları ne kadar hızlı yanıtlayabildiğini ölçen bir benchmark'ta, sonraki çalıştırmalarda saklanmış kararları tekrar oynatan bir mekanizma, ölçülen işi tamamen atlatıyor.

Nasıl yakalandı

En basit kanıt aynı zamanda en suçlayıcı olanı: sistem, neredeyse aynı sorgularda başarısız oluyor. Pull request'e göre, benchmark'ın sorgularından yalnızca önemsiz ayrıntılarla farklılaşan — örneğin SELECT MIN(URL) FROM hits — sorgular bir hatayla reddediliyor. Sorguları gerçekten değerlendiren bir motor bir ifadedeki küçük bir değişikliği sorunsuz atlatır; sabit bir bilinen sorgu listesine karşı desen eşleştirmesi yapan bir motor bunu yapamaz.

Ayarlama ile sabit kodlama

Benchmark oyunları bir kaydırıcı üzerinde var. Ciddi her veritabanı, karşılaşmayı beklediği iş yüklerine göre ayarlanır ve satıcılar uzun zamandır öne çıkan kamuya açık benchmark'lar için optimizasyon yapar. Pull request'in çizdiği çizgi, sorguların bütün bir sınıfını hızlandıran bir optimizer ile tam sorgu şekillerini özel durum olarak ele alan bir binary arasındadır. Birincisi genellenir; ikincisi sorgu değiştiği anda çöker — bozma testinin tam olarak ortaya çıkardığı şey de bu.

Kaynak materyal, sorgu başına kernel'ların nasıl var olduğu konusunda bir iddiada bulunmuyor, yalnızca var olduklarını söylüyor. Bu ayrım göründüğünden daha az önemli: neyin onları ürettiğinden bağımsız olarak, yapısal sorun ClickBench'in çoğu kamuya açık benchmark gibi kesin sorgularını önceden yayımlaması ve her katılımcının tam olarak neyin ölçüleceğini görebilmesidir.

Neden önemli

Bu olay, sabit ve şeffaf benchmark'ların nasıl kandırılabileceğinin somut bir gösterimi ve üç ders içeriyor. Birincisi, özelleştirme ile hile, biri girdiyi değiştirene kadar ayırt edilemez; bu yüzden ucuz denetim numaraları — bir sorguyu hafifçe değiştirip hâlâ çalıştığını kontrol etmek — artık sonuç tablosu okuyan herkes için temel bir ön çalışma. İkincisi, tekrarlı çalıştırma zamanlaması kırılgandır: çalıştırmalar arasında hayatta kalan bir cache, "sıcak" sayıları sorgu yürütmesinin bir ölçüsü olarak anlamsızlaştırabilir. Üçüncüsü, üretilmiş kod düzinelerce özel sorgu başına kernel üretmeyi kolaylaştırdıkça, benchmark bakımcıları sonuçları dürdür tutmak için saklı veya rastgeleleştirilmiş sorgulara ihtiyaç duyabilir. Kaldırma işlemi tek bir depodaki küçük bir değişiklik, ama belgelediği desen — elle yazılmış kernel'lar artı yanıt cache'i — benchmark karşılaştırmalarının her tüketicisinin artık mümkün olduğunu varsayması gereken bir şey.

Daha geniş risk güvenin aşınması. ClickBench gibi benchmark'lar değerlerini kandırılması zor ve aktif olarak denetleniyor olmalarından alır; yakalanan bir vaka hafifçe güvence verir, yakalanmayan biri görünmezdir. Analitik iş yüklerinde motorları karşılaştıran okuyucular, katı ve yayımlanmış sorgu setlerinden gelen sonuçlara buna göre ağırlık vermeli ve bir şeyleri saklı tutan benchmark'ları tercih etmeli.

  • #databases
  • #benchmarks
  • #clickhouse
  • #rust
  • #open-source

İlgili yazılar