RadarGitHub Radarai üretimi

GitHub Radar — LiteFS

FUSE dosya sistemiyle SQLite WAL işlemlerini sayfa düzeyinde yakalayıp LTX dosyalarıyla kümelere kopyalayan dağıtık replikasyon motoru.

LiteFS, tek bir sunucuya hapsolmuş geleneksel SQLite veritabanını uygulama koduna veya sürücülere dokunmadan küresel ölçekte dağıtık bir yapıya kavuşturmak amacıyla kullanıcı alanı dosya sistemi (FUSE) katmanında çalışan açık kaynaklı bir replikasyon motorudur 1. Mikroservis mimarilerinin uzak PostgreSQL veya MySQL kümelerine gönderdiği her ağ çağrısıyla onlarca milisaniye gecikme biriktirdiği ve karmaşık önbellek katmanlarına muhtaç kaldığı geleneksel altyapılara karşı LiteFS; SQLite’ın önceden yazma günlüğü (WAL) dosyalarını doğrudan dosya sistemi çağrısı seviyesinde yakalayarak yerel disk hızında mikrosaniye gecikmeli okuma ve coğrafi olarak çoğaltılmış yazma imkanı sunan devrimci bir sistem katmanıdır 2.

Kenar bilişim (edge computing) ve yalın altyapı mühendisliği topluluklarında 5 bin yıldız ve son commit 2 gün önce seviyesinde sadık bir ilgi gören depo, odaklı bir bakımla yönetilen 59 açık issue ve kararlı dağıtım döngüsünü kanıtlayan son sürüm v0.5.2 (Ağustos 2026) metrikleriyle güven vermektedir.

Mimari Deep-Dive: LiteFS

LiteFS’in sistem tasarımı, BoltDB ve Litestream gibi çığır açan depolama araçlarının mimarı Ben Johnson tarafından geliştirilmiş olup veritabanı replikasyonunu istemci kütüphaneleri yerine işletim sistemi çekirdeği ile disk arasındaki G/Ç hattına yerleştirir. Proje bütünüyle saf Go diliyle geliştirilmiştir 1. Go’nun seçilme sebebi; Linux FUSE arayüzüyle düşük seviyeli sistem çağrılarını eşzamanlı olarak yönetebilmesi, tek bir statik ikili dosya halinde derlenerek Docker konteynerlerine doğrudan eklenebilmesi ve ağ soketleri üzerinden hafif LTX akışları yürütebilmesidir.

İlk temel mimari sütun kullanıcı alanında dosya sistemi (FUSE) katmanıdır. LiteFS, sunucuda sanal bir dosya sistemi bağlar ve SQLite süreçleri bu bağlama noktası üzerindeki veritabanı dosyalarıyla konuşur 3. SQLite bir işlem başlattığında veya sonlandırdığında yaptığı open, write, pwrite ve fsync sistem çağrıları çekirdek üzerinden LiteFS arka plan sürecine yönlendirilir. SQLite’ın WAL modunda yazdığı bayt akışını çözümleyen LiteFS, WAL çerçeve başlıklarındaki (frame headers) tuz (salt), sağlama toplamı (checksum) ve sayfa numaralarını izleyerek işlemin tam sınırlarını (transaction boundaries) sayfa düzeyinde kusursuz olarak tespit eder.

İkinci kritik sütun LiteFS İşlem (LTX - Lite Transaction) dosya formatıdır 4. LiteFS, yakaladığı her işlemi yalnızca değişen veritabanı sayfalarını (dirty pages) içeren sıkıştırılmış, sıralı ve sağlama toplamıyla korunan bağımsız bir LTX dosyası olarak diske yazar. Bu LTX dosyaları, kümedeki lider düğümden (primary) takipçi düğümlere (replicas) HTTP akış protokolü üzerinden milisaniyeler içinde aktarılır. Takipçi düğümler yeni bir LTX aldığında, yerel SQLite kopyasını disk üzerinde doğrudan günceller.

Üçüncü sütun ise HALT kilit mekanizması ve ayrık okuma korumasıdır (torn read prevention). LiteFS kümesinde takipçi düğümler gelen tüm okuma sorgularını yerel NVMe diskler üzerinden sıfır ağ gecikmesiyle (1 milisaniyenin altında) yanıtlar. Ancak yerel kopyaya yeni bir LTX işlemi uygulanacağı anda, LiteFS dosya sistemi seviyesinde özel bir HALT kilidi devreye sokar. Bu kilit, o mikrosaniyede başlayan yeni SQLite okumalarını anlık olarak bekletir; böylece takipçi düğümde yarım kalmış işlemlerin okunması imkansız hale getirilir. Lider seçimi ise Consul veya statik kiralama (leaseholder) protokolleri üzerinden yürütülerek tek yazıcılı (single-primary) ACID tutarlılığı garanti altına alınır 2.

Kod ve Topluluk Sağlığı

LiteFS, Fly.io altyapı ekibi ve açık kaynak veri tabanı topluluğu tarafından aktif olarak geliştirilmekte ve üretim platformlarında binlerce kümede test edilmektedir 1. Ben Johnson liderliğindeki çekirdek kadro, projeyi kurumsal bare-metal ve bulut orkestrasyonu ihtiyaçlarına cevap veren yüksek bir kod kalitesiyle sürdürmektedir.

Depodaki 59 açık issue sayısı, projenin kapsamını dar ve odaklı tutmasının doğrudan bir sonucudur; gereksiz özellik talepleri sistemin çekirdeğine sokulmamakta, FUSE katmanının yalınlığı korunmaktadır. Bakımcı ekibi hata raporlarına hızla yanıt vermekte ve karmaşık dosya sistemi kilitleme senaryolarını detaylı entegrasyon testleriyle doğrulamaktadır. Çekirdek depoya sunulan her PR; eşzamanlı SQLite yazma simülasyonlarından, ani sunucu kapanması ve elektrik kesintisi senaryolarından (crash testing) ve farklı Linux çekirdek sürümlerindeki FUSE regresyon testlerinden geçer 5. Sürümleme disiplini semantik versiyonlama standartlarına titizlikle uymaktadır. health_score bu bölümden türer: issue kapanma hızı, sürüm düzeni, bakımcı ekibi. Ajanın tahminidir; künyede öyle yazılır. Projenin arkasındaki deneyimli mühendislik vizyonu, yalın kod tabanı ve yüksek issue çözüm performansı dikkate alınarak health_score: 9.0 takdir edilmiştir.

Production Riski: Gerçekten Kullanılır mı?

LiteFS’i üretim mimarilerine dahil etmeyi planlayan sistem mimarları için lisanslama açısından herhangi bir hukuki kısıtlama bulunmamaktadır; proje Apache 2.0 lisansı ile dağıtılmakta olup şirket içi veri merkezlerinde veya herhangi bir bulut platformunda tam ticari kullanım özgürlüğü sunar 6.

LiteFS’in üretimde hayat kurtardığı senaryolar oldukça berraktır: Okuma oranının %90’ın üzerinde olduğu web uygulamaları, coğrafi olarak dünyaya dağılmış kenar API servisleri ve pahalı RDS kümelerine binlerce dolar harcamak istemeyen bağımsız SaaS girişimleri. Uygulamanın doğrudan yerel diskteki SQLite’tan saniyede yüz binlerce sorguyu 1 milisaniyenin altında okuyabilmesi, uzak veritabanı ağ gecikmelerini ve Redis önbellek karmaşasını tamamen ortadan kaldırır.

Buna karşın, operasyonel olarak yönetilmesi gereken radikal mimari kısıtlar vardır. LiteFS tek yazıcılı (single-writer) bir sistemdir; tüm yazma istekleri lider düğüme yönlendirilmek zorundadır, bu nedenle yoğun eşzamanlı yazma gerektiren analitik iş yükleri için uygun değildir. İkinci kısıt ise FUSE katmanının getirdiği bağlam geçişi (context switch) maliyetidir; her G/Ç çağrısı kullanıcı alanı ile çekirdek arasında gidip geldiğinden, aşırı yoğun disk yazımlarında saf yerel SQLite’a kıyasla bir miktar CPU yükü oluşturabilir. Doğru okuma ağırlıklı iş yüklerinde LiteFS, modern mikroservisler için SQLite’ı küresel ölçekte üretim sınıfı bir veritabanına dönüştüren en yenilikçi açık kaynak teknolojidir.

Kaynaklar

  1. LiteFS GitHub Ana Deposu
  2. LiteFS Mimari Tasarım Dokümanı
  3. Fly.io Resmi LiteFS Dokümantasyonu
  4. LiteFS LTX İşlem Dosyası Spesifikasyonu
  5. LiteFS GitHub Sürüm Notları ve Kilometre Taşları
  6. LiteFS Apache 2.0 Lisans Dosyası