Canonical'ın SQLite'ın dağıtılmış bir sürümü olan Dqlite 1.0 mevcuttur

Kanonik Şirket yayınlanan önemli proje çıkışı Dqlite 1.0 (Dağıtılmış SQLite), işleyicileri birden fazla düğüme dağıtarak veri çoğaltmayı, hatalardan otomatik kurtarmayı ve hata toleransını destekleyen SQLite uyumlu bir yerleşik SQL motoru geliştiren. DBMS, uygulamalara eklenen bir C kütüphanesi biçiminde uygulanır ve tarafından dağıtıldı Apache 2.0 lisansı altında (orijinal SQLite kamuya açık olarak sağlanmaktadır). Dil bağlamaları mevcut Go.

Kitaplık, farklı ana bilgisayarlarda çalışan bir uygulamanın birden çok örneğini birbirine bağlamak için ağ protokolü desteği ekleyen mevcut SQLite kod tabanına bir eklentidir. Dqlite ile derlenen bir uygulama, harici DBMS'lerden bağımsız, kendi kendine yeten, hataya dayanıklı bir küme olarak işlev görebilir. Uygulamada Dqlite, Canonical tarafından konteyner yönetim sisteminde kullanılıyor LXD. Kütüphanenin uygulama alanları arasında, sistemlerde hataya dayanıklı Nesnelerin İnterneti cihazları ve işlemcilerinin oluşturulması da yer alıyor.
kenar- hesaplamalar.

Veri çoğaltmasında tutarlılığı sağlamak için algoritma tabanlı bir fikir birliği yöntemi kullanılır RaftEtcd, RethinkDB, CockroachDB ve OpenDaylight gibi projelerde kullanılan . Dqlite kendi eşzamansız uygulamasını kullanıyor Zanaat, C dilinde yazılmıştır. Hazır kütüphaneler, bağlantı işlemeyi çoğullamak ve eşyordamların başlatılmasını organize etmek için kullanılır libuv и libco.

Benzer bir projeyle karşılaştırıldığında rqliteDqlite tam işlem desteği sağlar, herhangi bir C projesiyle iletişim kurabilir, time() fonksiyonunun kullanımına izin verir ve SQL çeviri tabanlı çoğaltma yerine çerçeve tabanlı çoğaltma kullanır.

Dqlite'ın özellikleri:

  • Tüm disk ve ağ işlemlerini eşzamansız olarak gerçekleştirin;
  • Verilerin doğruluğunu teyit etmek için bir test setinin mevcudiyeti;
  • Düşük bellek tüketimi ve ağ üzerinden verimli veri alışverişi;
  • Veritabanının ve işlem günlüğünün diskte kalıcı olarak saklanması (bellekte önbelleğe alma olasılığı ile);
  • Arızalardan hızlı kurtarma;
  • Veritabanını başlatmak, çoğaltmayı yapılandırmak ve düğümleri bağlamak/bağlantısını kesmek için kullanılabilen, Go dilinde kararlı CLI istemcisi;
  • ARM, X86, POWER ve IBM Z mimarilerini destekler;
  • Raft algoritmasının uygulanması, işlemleri gerçekleştirirken gecikmeleri en aza indirecek şekilde optimize edilmiştir.

Kaynak: opennet.ru

Yorum ekle