Coda (dosya sistemi)

Coda, Mahadev Satyanarayanan yönetiminde Carnegie Mellon Üniversitesi'nde 1987'den bu yana bir araştırma projesi olarak geliştirilmiş bir dağıtık dosya sistemi. Doğrudan eski bir Andrew Dosya Sisteminin (AFS-2) sürümünden türetilmiştir ve birçok benzer özellik sunar. InterMezzo dosya sistemi, Coda'dan esinlenerek oluşturulmuştur.

Özellikler 
Coda, ağ dosya sistemleri için arzu edilen birçok özelliğe sahiptir ve başka yerde bulunmayan bazı özelliklere sahiptir.

 Mobil bilgi işlem için bağlantısız çalışma.
 GPL  lisansı altında ücretsiz olarak kullanılabilir.
 İstemci tarafında kalıcı önbellekleme sayesinde yüksek performans.
 Sunucu replikasyonu.
 Kimlik doğrulama, şifreleme ve erişim kontrolü için güvenlik modeli.
 Sunucu ağında kısmi ağ arızaları sırasında sürekli çalışma.
 Ağ bant genişliği uyarlama.
 İyi ölçeklenebilirlik
 Ağ hatası durumunda bile paylaşımın iyi tanımlanmış anlamsal özellikleri.

Coda, ağ bağlantısı kesildiğinde sunucu verilerine erişim sağlamak için yerel önbellek kullanır. Normal işlem sırasında kullanıcı dosya sistemine normal şekilde okur ve yazar, istemci ise kullanıcının ağ bağlantısı kaybolduğunda önemli gördüğü tüm verileri getirir veya 'stoklar'. Ağ bağlantısı kesildiğinde, Coda istemcisi yerel önbellekten verileri sunar ve tüm güncellemeleri kaydeder. Bu işlem durumuna bağlantısız işlem denir. Ağ yeniden bağlandığında, istemci yeniden entegrasyon durumuna geçer; kaydedilen güncellemeleri sunuculara gönderir. Ardından normal bağlantılı mod işlemine geri döner.

AFS'ten farklı olarak, Coda'nın veri replikasyon yöntemi de farklıdır. AFS, dosyaları pesimist bir replikasyon stratejisiyle kullanır ve yalnızca bir okuma/yazma sunucusunun güncellemeleri almasına izin verir, diğer tüm sunucular sadece okuma amaçlı replikalar olarak hareket eder. Coda, tüm sunucuların güncellemeleri almasına izin vererek, ağ bölünmeleri durumunda sunucu verilerinin daha yüksek bir erişilebilirliğine izin verir, ki AFS bu durumu yönetemez.

Bu benzersiz özellikler, "çakışmalar" olarak bilinen aynı dosyaların veya dizinlerin anlamsal olarak farklı kopyalarının ortaya çıkması olasılığını beraberinde getirir. Bağlantısız işlemin yerel güncellemeleri, diğer bağlı kullanıcıların aynı nesneler üzerindeki güncellemeleriyle çakışabilir ve yeniden entegrasyonu önleyebilir. İyimser replikasyon, aynı nesneler üzerinde farklı sunuculara eşzamanlı güncellemeler yaparak, replikasyonu engelleyebilir. İlk durum "yerel / global" çakışma olarak adlandırılırken, ikincisi "sunucu / sunucu" çakışması olarak adlandırılır. Coda, her iki çakışma türünü de ele almak ve onarmak için hem manuel hem de otomatik onarım araçlarına sahiptir.

Desteklenen platformlar 
Coda, Linux üzerinde geliştirilmiştir ve desteği Linux 2.1 çekirdek serisinde görülmüştür. Ayrıca, FreeBSD'ye de taşınmıştır. Daha sonra orada eskimiş olsa da, geri getirme çabaları devam etmektedir.  Coda'yı Microsoft Windows'a taşımak için çaba gösterilmiştir; Windows 95 / Windows 98 döneminden başlayarak Windows NT'den  Windows XP'ye   kadar,DJGCC DOS C Compiler ve Cygwin gibi açık kaynak projeleri yoluyla.

Kaynakça

Dış bağlantılar 

 Carnegie Mellon Üniversitesi'nde Coda web sitesi
 Coda: dağıtılmış bir iş istasyonu ağı için yüksek düzeyde kullanılabilir bir dosya sistemi, Mahadev Satyanarayanan James J. Kistler, Puneet Kumar, IEEE Transactions on Computers, Cilt. 39, sayı 4, Nisan 1990
 The Coda Distributed Filesystem for Linux   Archived , Bill von Hagen, 7 Ekim 2002.
 Resim temsilli Coda Dağıtılmış Dosya Sistemi, Peter J. Braam, Bilgisayar Bilimleri Okulu,
Ağ dosya sistemleri