Video: WHY Sugar is as Bad as Alcohol (Fructose, The Liver Toxin) 2024
İlişkisel veritabanı sistemlerinin bir özelliği, ACID uyumluluğu olarak bilinir. Tahmin edebileceğiniz gibi, ACID kısaltmasıdır - bireysel veritabanı işlemlerinin bir özelliğini tanımlamak için bireysel harfler, bu listede açıklandığı gibi genişletilebilir:
-
Atomicity: Veritabanı işlemi tamamen gerekir Başarılı veya tamamen başarısız olun. Kısmi başarıya izin verilmiyor.
-
Tutarlılık: Veritabanı işlemi sırasında RDBMS geçerli bir durumdan diğerine ilerlenir. Devlet hiçbir zaman geçersiz sayılmaz.
-
İzolasyon: Müşterinin veritabanı işlemi, RDBMS ile işlem yapmaya çalışan diğer istemcilerden ayrı olarak yapılmalıdır.
-
Dayanıklılık: İşlemin bir parçası olan veri işlemi, uçucu olmayan depolamaya (sabit disk gibi güç verilmemiş olsa dahi saklanan bilgileri alabilen bilgisayar belleği) yansıtılmalı ve daha sonra da devam etmelidir işlem başarıyla tamamlanır. İşlem başarısızlıkları, verileri kısmen taahhütlü durumda bırakamaz.
RDBMS'ler için çevrimiçi işlem işleme gibi bazı kullanım örnekleri, sistemin düzgün çalışabilmesi için istemci ile RDBMS arasındaki ACID uyumlu işlemlere bağlı. ACID uyumlu bir işlemin mükemmel bir örneği, bir banka hesabından diğerine para transferidir.
Bu, kaynak hesapta para çekme olduğunu ve varış hesabının depozitoyu gösterdiği iki veritabanı işlemine ayrılır. Açıkçası, bu iki işlemin geçerli olabilmesi için birlikte olması gerekiyor, böylece ikisi de başarısız olursa, tüm işlemler her iki dengenin de geçerli kalmasını sağlamak için başarısız olmalı.
Hadoop'un kendisinde işlem kavramı (hatta kayıtlar) bulunmadığından açıkça bir ACID uyumlu sistem değildir. Hadoop ekosisteminin tamamında veri depolama ve işleme projeleri hakkında daha ayrıntılı bilgi vermek için hiçbiri tam ACID uyumlu değildir. Bununla birlikte, do , çoğu kez NoSQL veri mağazalarında gördüğünüz özellikleri yansıtır; dolayısıyla Hadoop yaklaşımına bazı örnekler vardır.
NoSQL veri depolarının arkasındaki en önemli konsept, her uygulamanın gerçekten ACID uyumlu işlemlere ihtiyacı olmadığıdır. Bazı ACID özelliklerini rahatlatmak (ve ilişkisel modelden uzaklaşmak), bazı NoSQL veri mağazalarının niş uygulamaları için muazzam ölçeklenebilirlik ve performans elde etmesine olanak tanıyan bir dizi olasılık ortaya çıkardı.
ACID, güvenilir işlem işleme için gereken temel özellikleri tanımlarken, NoSQL dünyası esneklik ve ölçeklenebilirlik sağlamak için farklı özellikler gerektirir.Bu zıt karakteristik akıllıca BASE kısaltması altında ele geçirilir:
-
B asically A kullanılabilir: Sistemin tüm kullanıcılar tarafından sorgulanabilir olması garantilenmiştir. (Burada izolasyon yok.)
-
S of State: Sistemde depolanan değerler, bir sonraki mermide açıklandığı üzere, nihai tutarlılık modeli nedeniyle değişebilir.
-
E Ventually Consistent: Sisteme veri eklendiğinde, sistemin durumu tüm düğümlerde yavaş yavaş çoğaltılır. Örneğin, Hadoop'ta bir dosya HDFS'ye yazıldığında, orijinal veri blokları yazıldıktan sonra veri bloklarının kopyaları farklı veri düğümlerinde oluşturulur. Blokların çoğaltılmasından kısa bir süre önce, dosya sisteminin durumu tutarlı değildir.
Kısaltma BASE, biraz tasarlanmış, çünkü çoğu NoSQL veri deposu, tüm ACID özelliklerini tamamen terk etmiyor - başka bir deyişle, adın işaret ettiği kutup ters kavramı değil. Ayrıca, Yumuşak Durum ve Sonunda Tutarlı özellikler aynı şeyi ifade eder; ancak önemli olan şu ki, tutarlılığın rahatlatılmasıyla sistem yatay olarak ölçeklenebilir (birçok düğüm) ve kullanılabilirliği garanti eder.
Mimarların sistemlerinde sağlamayı hedefledikleri üç tür güvenceyi temsil eden CAP teoreminden bahsetmeden NoSQL tartışması tamamlanmayacaktır:
-
Tutarlılık: ACID'deki C'ye benzer şekilde, tüm düğümler sistem her zaman aynı veri görünümüne sahip olacaktı.
-
Kullanılabilirlik: Sistem, her zaman isteklere yanıt verir.
-
Bölüm toleransı: Sistem düğümleri arasında ağ sorunları oluşursa, sistem çevrimiçi kalır.
CAP teoremi, dağıtılmış ağ sistemlerinde mimarların bu üç güvenceden ikisini seçmek zorunda olduğunu söylüyor - kullanıcılarınızı üçlü de vaat edemezsiniz. Gösterilen üç olanakla sizi bırakır:
-
Geleneksel ilişkisel teknolojileri kullanan sistemler normal olarak bölümlere toleranslı değildir, bu nedenle tutarlılık ve kullanılabilirliği garanti edebilir. Kısaca, eğer bu geleneksel ilişkisel teknolojilerin bir kısmı çevrimdışı ise, tüm sistem çevrimdışı.
-
Bölümün tolerans ve kullanılabilirliğinin birincil önemi olan sistemler tutarlılığı garanti edemez çünkü güncelleme (tutarlılık yok edici) bölümün her iki tarafında yapılabilir. Key-value store Dynamo ve CouchDB ve sütun ailesi mağazası Cassandra, bölüm toleranslı / kullanılabilirlik (PA) sistemlerinin popüler örnekleridir.
-
Bölüm toleransı ve tutarlılığının birincil önemi olan sistemler , kullanılabilirliği garanti edemez çünkü bölümlenmiş durum çözülene kadar sistemler hataları döndürür.
Hadoop tabanlı veri depoları, CP sistemleri olarak kabul edilir ( c kalıcı ve p artisyona toleranslı). Birçok köle düğümünde yedekli olarak depolanan verilerle, bir Hadoop kümesinin büyük bölümlerine (bölümlere) kesintiler tolere edilebilir. Hadoop, kümede depolanan verilerin tek bir tutarlı görünümünü koruyan merkezi bir meta veri deposuna (NameNode) sahip olduğundan tutarlı olduğu kabul edilir.