11 Kasım 2020 Çarşamba

DDS Durability Qos - Kalıcılık

Durability Service Nedir
Durability kelimesi Kalıcılık anlamına gelir. "Durability Service" Persistent veya Transient olarak ayarlanmış ise geç gelen (late joining) bir DataReader'ın kaç tane geçmiş veri ile beslenip güncel duruma getirilmesi gerektiğini belirtir.

OpenSplice
OpenSplice için  "Durability Service" ayarları ve sonuçları şöyle
- PersistentDurabilityQos           : Late joiner gets history data
- TransientDurabilityQos           :  Late joiner gets history data
- TransientLocalDurabilityQos   : Late joiner gets history data
- VolatileDurabilityQos               : Late joiner does not get history data.
1. PersistentDurability Nedir? - Diskte Kalıcılık
Delegated Durability kullanır. Veri harici bir DurabilityService üzerinde ve diskte saklanır. 

Yani DataWriter'ın konuştuğu kelimeler DurabilityService tarafından diske yazılır. DurabilityService ölüp tekrar çalışsa bile, veriyi diskten okur ve tekrar hafızasına alır. Uygulamanın konfigürasyon parametrelerini saklamak için kullanılabilir.

2. TransientDurability Nedir?
Delegated Durability kullanır. Veri harici bir DurabilityService üzerinde saklanır. DurabilityService tüm veriyi hafızasında tutmaktadır.

Geç gelen bir DataReader, odaya girince DurabilityService'ten elindeki verileri göndermesini ister. Böylece daha önce konuşulmuş kelimeleri öğrenir. Kelimeleri konuşmuş olan DataWriter hayatta olmasa bile konuşmaları kaydeden DurabilityService hayatta olduğu için geçmişi öğrenmek mümkündür. 

3. TransientLocalDurability Nedir?
Veri bu veriyi üretmiş olan DataWriter üzerinde saklanır. 

Geç gelen bir DataReader, odaya girince bağlandığı DataWriter ona belleğindeki verileri aktarır. Yani daha önce konuşulmuş kelimeleri duymak için DataWriter'ın hayatta olmuş olması gerekir.

4. VolatileDurability Nedir ?
Volatile kelimesi Uçucu anlamına gelir. Veri saklanmaz!

Geç kelen bir DataReader, odada daha önce konuşulmuş olan, kelimeleri duyamaz. Çünkü ona söyleyecek kimse yoktur. VolatileDurability de benzer şekilde çalışır. Geç gelen bir reader daha önceki veriyi alamaz. 

Veriye Göre Durability Seçimi
Bu konuyla ilgili bir yazı burada.

1. Sürekli Akan Veri
Mesela sürekli veri akan durumda VolatileDurability kullanılabilir, çünkü eski verinin anlamı yoktur, yerine yenisi gelecektir. Bu durumda bazı Qos parametreleri şöyle olur
Reliability : Best Effort. Sürekli akan veri UDP gibi çalışabilir
Durability : Volatile
History : Keep last
Deadline : İstenilen bir değer. Sürekli akan veri belli bir süre kesilirse tetiklenir
Time Based Filter : Minimum time separation belirtilerek selective update yapılabilir.
2. State Verisi
Uygulama tarafından kullanılan durum verisi. Bu veri az güncellendiği için geç gelen katılımcıya son state verisini vermek gerekir. State verisini diskte saklamaya gerek yoktur.
Reliability : Reliable. 
Durability : Transient veya Transient Local
History : Keep last
3. Konfigürasyon Verisi
Uygulama tarafından kullanılan ve genellikle ilk açılışta okunan konfigürasyon verisi. Bu veriyi geç gelen katılımcıya vermek gerekir. Konfigürasyon verisini diskte saklamaya gerek vardır.
Reliability : Reliable. 
Durability : Persistent
History : Keep last
4. Event/Command Verisi
Mesela bir sistemi aç/kapa tarzı bir komut için VolatileDurability kullanılabilir., çünkü komut gönderildiği an için geçerlidir. Sonradan gelen birisinin bu komuta ihtiyacı yoktur.  
Reliability : Reliable. 
Durability : Volatile
History : Keep all veya Keep Last 1 veya Keep Last N





Hiç yorum yok:

Yorum Gönder