Ana Sayfa

Seyrek Dosyalar ile Verimli LRU Önbellekleme

1 dk okuma

Dosya sistemlerinin ilginç bir özelliği olan seyrek dosyalar, mantıksal olarak büyük boyutlu olsalar da, içerisindeki "boş" (sıfırla doldurulmuş) bloklar fiziksel olarak yalnızca üzerine veri yazıldığında diskte yer kaplar. Dosya sistemi, dosyanın hangi bloklarının fiziksel olarak diskte bulunduğunu, hangilerinin bulunmadığını yöneten meta verileri tutar. Bu durum, dosya okuyucuları için tamamen şeffaftır; seyrek yapı tamamen dosya sistemi tarafından idare edilir.

Amplitude, analitik sorgular için kullanılan sütunlu veri formatındaki verilerini Amazon S3 gibi soğuk depolama alanlarında tutmaktadır. Ancak bu verilere her erişimde S3'ten çekmek hem verimsiz hem de maliyetlidir. Bu nedenle veriler, yerel NVMe SSD'lerde önbelleğe alınır. Yerel SSD'ler soğuk depolamadan on kat daha pahalı olduğundan, neyin ve nasıl önbelleğe alınacağına dair iyi bir stratejiye ihtiyaç duyulur. Analitik sorgularda genellikle binlerce sütundan sadece çok küçük bir kısmının kullanılması, sütunlu veri formatlarını etkili kılar. Her sütun, dosya içinde bitişik bir aralık olarak depolandığı için okunması daha hızlıdır.

Başlangıçta iki farklı önbellekleme yaklaşımı denendi: Birincisi, S3'ten tüm dosyaları önbelleğe almaktı. Bu basit bir yöntem olsa da, nadiren veya hiç kullanılmayan sütunları da depolayarak SSD disk alanını boşa harcıyordu. İkinci seçenek ise farklı sütunları diskte ayrı ayrı dosyalar olarak önbelleğe almaktı. Bu, disk alanı israfı sorununu bir nebze çözse de, dosya sayısını aşırı derecede artırarak dosya sistemi meta verileri için önemli bir yük oluşturuyordu. Ayrıca, küçük sütunların dosya sistemi blok boyutuna yuvarlanması nedeniyle verimsizlik yaratıyordu. Seyrek dosyalar, bu iki yaklaşım arasında ideal bir denge sunar. Tüm dosyaları önbelleğe alıyormuş gibi davranırken, aslında sadece kullanılan sütunları (daha doğrusu bu sütunları içeren mantıksal blokları) fiziksel olarak diskte tutar. Bu, hem tüketiciler için okumayı basitleştirir hem de disk kullanımını optimize eder.

İçgörü

Seyrek dosyalar, bulut tabanlı analitik sistemlerde veri önbellekleme maliyetlerini düşürürken performansı artıran yenilikçi bir çözüm sunuyor.

Kaynak