Couchbase Transaction, Scan Consistency and Durability
Herkese Merhabalar , Bu Yazımda Couchbase Transaction Scan Consistency ve Durability Konularını Anlatmaya Çalışacağım Hadi Başlayalım :)
İlk önce query kısmından ki ayar yerinden başlamak istiyorum
Collect query timings : Sorgu zamanlarını toplama
Automatically infer bucket schemas : Grup şemalarını otomatik olarak çıkarsama
Automatically format queries before executing :Çalıştırmadan önce sorguları otomatik olarak biçimlendir
Use Cost-Based Optimizer :Maliyete Dayalı Optimize Edici
Don’t save query history : Sorgu geçmişini kaydetme
Max Parallelism
Bir sorguyu paralellik ile yürütmeye karar vermesi durumunda yürütme süresi daha kısa olur. Ancak paralelliğin aşırıya kaçması daha fazla işlemci kaynağının kullanılmasına yol açabilir ve bu durumda sorgu performansında iyileşme görülmez.
Büyük ölçekli sistemlerde aşırı paralellik, aynı veritabanı altyapısı örneği üzerinde yürütülen tüm sorguların performansını olumsuz yönde etkileyebilir.
Geleneksel olarak, paralellik için üst sınır ayarlamak gerekir .Eğer sıfır veya negatif ise, maksimum paralellik izin verilen çekirdek sayısıyla sınırlandırılır. Benzer şekilde, değer izin verilen çekirdek sayısından büyükse, maksimum paralellik izin verilen çekirdek sayısıyla sınırlandırılır.
(İzin verilen çekirdek sayısı, mantıksal CPU sayısıyla aynıdır. Community Edition’da izin verilen çekirdek sayısı 4'ten fazla olamaz. Enterprise Edition’da izin verilen çekirdek sayısında bir sınır yoktur.) Ayarı Cluster veya Sorgu düzeyinde ayarlayabilirsiniz
Scan Consistency
N1QL sorguların daha önce çalıştırıldığı duruma geri döndüğünde geri dönmesini sağlamak için, “tarama tutarlılığı” özelliğini kullanıyoruz
not_bounded : N1QL sorgusu, sorguyu çalıştırmadan ve sonuçları döndürmeden önce herhangi bir dizinin güncellenmesini beklemeyeceği anlamına gelir.en hızlı moddur
request_plus : Bu tarama tutarlılığı seçeneği Sınırsız’ın neredeyse tam tersini sağlar. Sorguyu çalıştırmadan önce tüm belge değişiklikleri ve dizin güncellemeleri (sorgu çalıştırılana kadar) işlenene kadar bekleyecektir.
statement_plus :N1QL sorgusu yalnızca yeni belgenin dizine eklenmesini bekleyecektir. Başka bir şey beklemeyecek. Yüksek hacimli bir sistemde, bu, artan performans ve sonuçların eksiksizliği arasında iyi bir denge sağlayabilir.
Positional Parameters
N1QL sorguları için hazır parametreler vermeye yarar
Named Parameters
N1QL sorguları için istediğiniz sayıda adlandırılmış parametre belirtmenize olanak tanır. Adlandırılmış parametreler, hazırlanan sorgularda kullanılmak üzere dolar işareti ($) ile başlamalıdır
Query Timeout
N1QL sorgusunun maximum zaman aşımı süresi
Transaction Timeout
Transaction ile gelen sorgunun maximum zaman aşımı süresi
Trsansaction Nedir ?
Veritabanına birlikte kaydedilen veya veritabanından geri alınan bir işlemler grubudur diyebiliriz kısaca.
Couchbase ACID Eylemlerini Gerçekleştirebilen Bir Nosql Veri Tabanıdır ACID Nedir Kısaca Açıklamak Gerekirse
Atomicity (Bütünlük): Bir işlemin bütünlüğünü ifade eder ya hep ya hiç olmasını sağlar
Consistency (Tutarlılık): Gerçekleşecek işlemin tutarlı olmasını sağlar(İşlemler Tamamlana kadar istemcileri verinin bir önceki halini gösterir)
Isolation(İzolasyon): Bir veri üzerinde işlem gerçekleşirken aynı veri üzerinden başka işlemler gerçekleşebilir bu durum için ilk işlem gerçekleşene kadar diğer işlemi kilitler tabii bunun seviyeleri vardır linkten okuyabilirsiniz
https://gist.github.com/ibrahimyldz11q/b1af3e2e45eec9007b938f3cf81dbbe2
Durability(Dayanıklık): N1ql sorguların daha önce çalıştırıldığı duruma geri döndüğünde geri dönmesini sağlamak için, gelecek sürümde “tarama tutarlılığı” özelliğini kullanıyoruz
Durability konusunu biraz daha açalım
Durability verinin dayanaklılığını sağlar her hangi node crush durumda yazma işlemini cluster içinde bellek veya disk konumlarda ki birden çok düğüme yazılmasını sağlayabilir bu durumda verinin en yüksek seviyede olmasını sağlar
Node sayılarını belirtmek için majority kavramı kullanılır aslında durability write demektir
Couchbase 2 replikaya kadar destekler . Durability seviyeleri ise
majority : Veriyi data servis nodelarında çoğaltmak zorundadır
majorityandPersistActive : Veriyi data servis nodeların ve vbucket nodeların disklerinde çoğaltmak zorundadır
PersistToMajority: Veriyi hem data servis nodelarında hem de disklere kaydedilmek zorundadır
Umarım faydalı olmuştur beğenmeyi ve takip etmeyi unutmayın :)