Csveee: Spekülatif Ayrıştırmayla 192 GB/sn'ye Ulaşan Rust CSV Ayrıştırıcısı
Csveee, spekülatif chunk ayrıştırmasıyla 192 GB/sn'ye ulaşan paralel bir Rust CSV ayrıştırıcısı; rust-csv'ye göre 10 kat hızlı.
Csveee, CSV dosyalarını mevcut tüm çekirdeklerde paralel olarak ayrıştıran yeni bir Rust paketidir; ayrıştırma ve kayıt işleme adımlarını tek geçişte birleştirir. Alıntılanmış alanların ortasına düşebilen chunk sınırlarını çözmek için dosyayı önceden taramak yerine, her chunk olası tüm başlangıç durumlarına göre spekülatif olarak ayrıştırılır; yanlış çıkan geçişler, sonuçları sırayla birleştiren bir merge aşamasında elenir.
Yaklaşık 1.000 gerçek dünya Kaggle CSV dosyası üzerinde yapılan ölçümlerde csveee, geometrik ortalama 7,7 GB/sn (yalnızca stable üzerindeki DFA arka ucuyla 4,7 GB/sn) hıza ulaşırken, rust-csv 0,8 GB/sn ve DuckDB 0,3 GB/sn'de kalıyor — sırasıyla yaklaşık 10,85 kat ve 25 kat fark. Büyük sunucularda tepe değer 192 GB/sn'ye çıkıyor; sabit başlangıç maliyetleri daha fazla veri ve çekirdek ile amortize edildiğinden hızlanma dosya boyutuyla birlikte artıyor.
VLDB '26'da yayımlanan "One Pass to Parse Them All" makalesine dayanan tasarım; mmap, ring buffer, chunk başına okuma ve ödünç alınmış slice'lar dahil birden fazla I/O arka ucunu ve RFC 4180'in ötesinde farklı CSV lehçelerini destekliyor. Nightly Rust'ta SIMD tabanlı bir arka uç, stable'da ise tüm lehçeleri destekleyen bir DFA ayrıştırıcısı bulunuyor. Proje henüz erken aşamada; API kararlı değil ve Rust 1.88+ gerektiriyor.
Bu sentez, kaynağından yapay zeka tarafından üretildi; insan editör ya da elle onay adımı yoktur. Nasıl çalışıyoruz