Sitemap
nurdan kaya

nurdan kaya

Student at Istanbul University

HAZELCAST

3 min readAug 8, 2021

--

HAZELCAST

HAZELCAST NEDİR?

  • Bellekte dağıtık tutulan veri ızgarası platformudur.

(Distributed in memory data grid(IMDG) platform)

  • Dağıtık hesaplama ve depolama platformudur.

(Hazelcast is a distributed computation and storage platform)

  • Java veri yapılarını dağıtık halde tutar.

(Distributed implementation of java.util.(Queue, Set, List, Map))

Bazı özellikleri:

Açık kaynaklı yazılımdır.(open source)

Java tabanlıdır.

Veri her zaman RAM’de tutulur. (hızlı olmasının sebebi budur)

(IMDG) IN MEMORY DAHA GRID NEDİR?

Press enter or click to view image in full size
IMDG

Birkaç bilgisayarın bir araya gelerek(cluster) RAM’de ortak bir veri havuzunda verilerin tutulmasıdır. Böylece farklı uygulamalar ortak veri havuzundaki verilere erişebilir. Verileri yüksek hızda işler.

Press enter or click to view image in full size
scaling

Örneğin büyük bir iş var fakat bilgisayarın kapasitesi yetmiyor.

Burada önümüze iki seçenek çıkar:

  • bilgisayarı güçlendirmek
  • bir işi daha küçük işlere bölerek farklı bilgisayarlara paylaştırmak

Hazelcast’in yaptığı ise işleri paylaştırmak(parallel processing). Böylece Hazelcast uygulamamızı çok hızlandırır.

Önemli Bileşenlerinden Bazıları

Member : Hesaplama ve veri depolama ünitesidir.

Cluster : Birbirleriyle iletişim halinde olan member’lardan oluşur. (Cluster’daki member’lar (runtime’da) birbirlerini otomatik keşfedebilir.)

Partition: Hafızadaki data segmentleridir.

HAZELCAST İLE CACHING

hazelcast caching

Bir uygulamamız var ve veriyi almak için veritabanına gidip gelmemiz gerekiyor. Her veriyi almak istediğimizde bir istek(request) yapmamız gerekecek. Bu da zaman alan bir işlem. Gerçek zamanlı(real-time) uygulamalarda bu kadar uzun bekleme yapılamaz.

Get nurdan kaya’s stories in your inbox

Join Medium for free to get updates from this writer.

Örneğin bir uygulamanın performansını ölçen başka bir uygulamamız olsun. Bir uygulamanın RAM, CPU kullanımı gibi bilgilerini uygulamanın performansını ölçmek amacıyla birkaç saniye aralıklarla diğer bir uygulamaya gönderilecek olsun. Veritabanında select, insert gibi komutların birkaç saniyede sürekli gerçekleşmesi gerekecek. Performans açısından bu bekleme süresi büyük sorun olacaktır.

Hazelcast bize yüksek hız kazandırır. Her veriye ulaşmak istediğimizde veritabanına gitmek yerine RAM’de dağıtık(distributed) halde node’larda tutulan verilere hızla erişebiliriz.

!!!!! Ayrıca hazelcast client-member java kodu ve hazelcast ve oracle için yaptığım karşılaştırma : https://github.com/nurdankaya/i2i-systems-internship/tree/master/hazelcast-oracle-comparison

CACHING TOPOLOJİLERİ

embedded mode

1-EMBEDDED MODU

  • Uygulama ve cache’lenen veri aynı makinadadır.
  • Veri erişim hızı, sürekli istek yapmaya gerek olmadığından, hızlıdır
  • Sadece java uygulamalarında kullanılabilir
Press enter or click to view image in full size
client/server mode

2- CLIENT/SERVER MODU

  • Cache’lenen data uygulamadan ayrı bir yerde tutulur.
  • Bu sayede birbirinden bağımsız olarak ölçeklendirilebilir.(scaling)
  • Okuma ve yazma yapmak için istek(request)yapması gerektiği için gecikmesi(latency) embedded moda göre yüksektir.(çözüm : Near Cache)

HAZELCAST VERİLERİ NASIL TUTAR? (DATA PARTITIONING)

  • IMDG sistemdeki her hafıza segmenti → partition
  • Hazelcast varsayılan olarak her partition’ın 1 kopyasını(copy/replica) alır.
  • Kopyalardan biri → Primary
  • Diğer kopyalar→ Backups
  • Primary kopyaya sahip olan partition → Partition Owner
Press enter or click to view image in full size
hazelcast partitioning

Hazelcast’de 1 member’da önerilen partition sayısı 271'dir. Yukarıda görüldüğü gibi her partition’un replikası başka bir member’da tutulur. Böylece herhangi biri zarar gördüğünde veriyi kaybetmemiş oluruz.

--

--

nurdan kaya
nurdan kaya

Written by nurdan kaya

Student at Istanbul University