DBA Günlükleri #13: Couchbase Eventing ve Search Servislerinin Kullanımı
Merhabalar, bu yazıda sizlere bir NoSQL veritabanı örneği olan Couchbase üzerinde KV ve N1QL dışındaki servislerden bahsetmeye çalışacağım. Eventing ve Search servisleri üstlendiği roller kapsamında Couchbase projelerinde yazılım ihtiyaçlarına göre çok yaygın olarak kullanılabilir. Bu servislerin bize hem uygulama hem de veritabanı tarafında olumlu etkileri vardır.
Couchbase Full Text Search Servisi
Couchbase NoSQL platformunda, geleneksel veritabanı sistemlerinde kullanılan LIKE ifadelerini daha efektif ve hızlı çözmek için Search servisi geliştirilmiştir. Full Text Search servisi ile LIKE ifadesindeki esnekliği performans problemleri oluşmadan ve izole bir katmanda gerçekleştirmek mümkündür.
Search servisi, Bleve kütüphanesinden geliştirilmiştir. Bleve açık kaynak olup full text search işlemleri için kullanılan bir servistir. Full Text Search özelliği ile, kelimeler bazında arama yapabilir. Örnek olarak, beatuies kelimesi ile FTS işlemi yapıldığında beatuy ve beatiful kelimlerini elde edebiliriz.
Bleve ilgili ile ilgili detaylı bilgiye buradan erişebilirsiniz : https://github.com/blevesearch/bleve
Couchbase Full Text Search Servis Aktif Edilmesi
Couchbase üzerinde FTS hizmetini kullanmak için servisin aktif edilmesi gerekmektedir. Bu işlemi yaparken, ya cluster initialize sırasında ya da cluster’a yeni sunucu dahil edilmesi sırasında Search serviside yüklenmelidir. Bunun için aşağıdaki adımlar takip edilmelidir.
Not : Bu çalışma özelinde, FTS servisleri data servislerinin yanına kurulmuştur.
Adım 1 : Add Server özelliği ile sunucunun Data ve Search servisleri ile birlikte eklenmesi
Adım 2 : Rebalance işlemi uygulanması
Bu işlemlerden sonra FTS servisi cluster’da kullanıma hazır hale gelmektedir. Bunun devamında ise, uygulama kullanıcılarının erişebilmesi için gerekli yetkilendirmenin yapılması gerekmektedir.
Bunun için security tab’ı altından ilgili kullanıcıya search yetkisi tanımlanmalıdır.
Hepsi tamamlandıktan sonra, cluster’da servers kısmı altından FTS servisleri görülebilecektir. Bununla birlikte soldaki menüden Search seçeneğine bakıldığında ise search servislerinin kurulu olduğu sunucuların listesi çıkacaktır.
Couchbase’de diğer servisler gibi search servisinin de kullanması gereken bir bellek miktarı vardır. Bu nedenle bu servisin de kendine ayrılmış bellek alanı olmalıdır. Bunun için cluster UI’da settings sekmesi altından ayarlamalar yapılabilir.
Couchbase Eventing Servisi
Couchbase’de ortamında mutation kavramı veri değişikliği anlamına gelmektedir. Yani bucket üzerindeki, create-update-delete-expiry olayları mutation olarak algılanır. Eventing servisi ise, belirli bir event meydana geldiğinde (create,update,etc…) buna bağlı olarak
- Başka sistemlerde değişiklikler(işler) yapabilir
- Cascade delete işlemleri yapabilir
- Doküman içeriğini anlık olarak zenginleştirebilir
Couchbase üzerinde fuctions kavramı ile eventing servisinin işleri yapılmaktadır. Functions özelliğini kullanarak, veri değişiklilerinde “Event-Condition-Action” modeli uygulanabilir. Eventing servisi ile birlikte, development ekiplerinin daha anlaşılır iş kurallarını gerçekleştirmesi mümkün olacak. Bununla birlikte veri değişiklikeri sırasında çalışması gereken ekstra işler için altyapı ve veritabanı katmanlarındaki kompleksite azalmaktadır.
Couchbase Eventing Service Yapısı
Couchbase’de eventing servisini kullanmak için MDS modeli tercih edilebilir. Bu model, multi-dimensional-scaling anlamına gelmektedir. Couchbase veritabanı kümesinde, eventing servisi ile birlikte mimari aşağıdaki gibi olmalıdır.
Eventing servisi yapısı gereği CPU intensive bir hizmettir. Bu nedenle CPU core sayısı index node’una göre daha fazla olmalıdır. Burada index node’unda bulunan CPU miktarının 0.5–1.5 kat arası fazlasını vermek mümkündür.
Couchbase Eventing Servisinin Aktif Edilmesi
Adım 1 : Add Server özelliği ile sunucunun Data ve Search servisleri ile birlikte eklenmesi
Adım 2 : Rebalance işlemi uygulanması
Sevgiler,
Demir.