Couchbase Transaction, Scan Consistency and Durability

İbrahim Yıldız
3 min readFeb 19, 2023

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 :)

--

--

No responses yet