• Sonuç bulunamadı

Çoklu Veri Saklama Altyapısı

N/A
N/A
Protected

Academic year: 2021

Share "Çoklu Veri Saklama Altyapısı"

Copied!
8
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

Çoklu Veri Saklama Altyapısı

Cahit Yiğit Çetiner, Merve Kaymak, Mustafa Karabacak ve Tuba Yağlı

HAVELSAN A.Ş.

Komuta Kontrol Savunma Teknolojileri Ankara, Türkiye

{ccetiner,mkaymak,mkarabacak,tkizik}@havelsan.com.tr Özet. Komuta Kontrol Bilgi Sistemlerinin (KKBS) öncelikli kullanım alanla-rından biri cari harekâtın takibidir. Cari harekâtın sağlıklı bir şekilde takip edi-lebilmesi için KKBS’lerin radar, sensör gibi donanımlar ile bütünleşik çalışa-bilmeleri gerekmektedir. Entegrasyon sırasında alınan duraksız verilerin (stre-aming data) KKBS bünyesindeki ilişkisel veri tabanında saklanması, gelen ve-rinin yoğunluğundan dolayı performans kaybına ve sergilemede gecikmelere sebep olabilmektedir. Duraksız verilerin saklanması için sütun temelli veri ta-banlarının kullanımı daha etkin olsa da, mevcut uygulamanın kullandığı veri yapısının bütünüyle değiştirilmesi kabul edilemez. Çelişen isterlerin olduğu bu gibi durumlarda, çoklu veri saklama altyapıları kullanılarak istere uygun veri saklama yöntemlerinin aynı anda kullanılabileceği değerlendirilmektedir. Bu doğrultuda, HAVELSAN tarafından KKBS’leri veri saklama yönteminden so-yutlayacak çoklu bir veri saklama altyapısı geliştirilmektedir. Bu makalede, hem ilişkisel veri tabanı hem de geliştirilen çoklu veri saklama altyapısı kullanı-larak örnek olay çalışması üzerinden performans karşılaştırması anlatılmakta ve altyapının kullanılabilirliği tartışılmaktadır.

Anahtar Kelimeler: Komuta kontrol uygulamaları, Çoklu veri saklama altya-pısı, Duraksız veri, İlişkisel veri tabanı, Sütun temelli veri tabanı

Polyglot Persistence Infrastructure

Cahit Yiğit Çetiner, Merve Kaymak, Mustafa Karabacak ve Tuba Yağlı

HAVELSAN

Command & Control and Combat Systems Ankara, Turkey

{ccetiner,mkaymak,mkarabacak,tkizik}@havelsan.com.tr Abstract. One of the priority usage areas of the Command and Control Infor-mation Systems (CCIS) is monitoring of the current operations. In order to monitor the current operation in a reliable way, CCIS should be able to work in-tegrated with equipment such as radar and sensor. Storing streaming data in the relational database within the CCIS may cause loss of performance and delay in display due to the density of incoming data. Although the use of column-based

(2)

databases for storing nonstop data is more efficient, it is unacceptable to com-pletely alter the data structure used by the current application. In such cases where there are conflicting requirements, it is considered that multiple data storage infrastructures can be used at the same time using appropriate data stor-age methods. Accordingly, HAVELSAN is developing a multiple data storstor-age infrastructure that will isolate the CCIS from the data storage method. In this ar-ticle, the performance comparison is discussed and the usability of the infra-structure is discussed by using both relational database and multiple data stor-age infrastructure developed.

Keywords: Command and control applications, Polyglot persistence, Streaming data, Relational database, Column-oriented database

1 Giriş

Komuta Kontrol Bilgi Sistemlerinin en önemli kullanım alanlarından biri muharebe sahasındaki muharebe elemanlarının güncel durum ve konum verileri ile istihbarat bilgilerinin takip edilmesidir. Bu kapsamda gerekli verilerin elde edilebilmesi için, dış sistemler ve donanımlar ile bütünleşik çalışabilen bir KKBS kurgusu kaçınılmazdır. Özellikle donanımların içinde bulunduğu entegrasyonlarda, KKBS’lerin gelen durak-sız verileri işlemesi, saklaması ve gerçeğe yakın zamanlı sergilemesi gerekmektedir.

Çoklu Veri Saklama yöntemi, mevcut çalışan uygulamanın kullandığı veri yapısını değiştirmeden, mevcut veri saklama çözümünün yanı sıra çelişen veya darboğaz yara-tan isterleri karşılamak için diğer veri saklama yöntemlerinin de çözüme dâhil edile-bilmesini amaçlamaktadır. Bu sayede tek bir veri modeli üzerinden birden fazla veri saklama yöntemi sunulmaktadır.

Bu makalede çoklu veri saklama altyapısı kullanılarak örnek olay çalışması üzerin-den performans karşılaştırması anlatılmakta, ayrıca altyapının geliştirilmesine dair kazanılmış deneyimler ve karşılaşılan sorunlar paylaşılmaktadır. İkinci bölümde prob-lem tanımı verilerek, güncel durumdaki KKBS sisteminin yapısı ve karşılaşılan sorun-lar anlatılmaktadır. Üçüncü bölümde çoklu veri saklama altyapı mimarisi anlatılmak-tadır. Dördüncü bölümde karşılaştırmalı bir örnek olay çalışması anlatılmakanlatılmak-tadır. Beşinci bölümde ise örnek olay çalışmasında toplanan sonuçlar ışığında sunulan çok-lu veri saklama altyapısının geçerliliği tartışılmaktadır.

2 Problem Tanımı

KKBS sistemleri, hassas veriler ile çalıştıkları için bütünlük, tutarlılık, bağımsızlık ve dayanıklılık özelliklerinden dolayı genellikle İlişkisel Veri Tabanı Yönetimi Sistemi (Relational Database Management System - RDBMS) temelli çözümleri benimse-mektedir. Bu makalede konu edilen örnek olay çalışmasında da, HAVELSAN bünye-sinde geliştirilen, ilişkisel veri tabanı üzerinde çalışan, NATO destekli JC3IEDM (The Joint C3 Information Exhange Data Model) [6] veri modeli kullanan ve duraksız

(3)

veri üzerinden entegrasyon ihtiyacı bulunan bir KKBS’nin, duraksız verileri saklama konusunda yaşadığı problemler temel alınmış ve bu problemlere olası çözüm yolları önerilmiştir.

KKBS uygulamasının çalışması sırasında yazma ve sorgulama performansını etki-leyecek en önemli etkenlerden biri kullanılan veri modelidir. KKBS uygulama altlığı olarak seçilen JC3IEDM veri modeli, asgari veri yedekliliği temel alınarak 3NF (Third Normal Form) olarak tasarlanmıştır. JC3IEDM, modelleme konusunda başarılı olsa da KKBS altlığı olarak kullanıldığı ve yoğun sorgulara maruz kaldığı durumlarda normalize yapısından kaynaklanan birleştirme (join) işlemleri nedeni ile istenilen performansı gösterememektedir.

Sorgu performansının artırılması için Şekil 1’de görüldüğü gibi gerçekleşmiş görü-nümler (materialized view) kullanılarak denormalize bir yapı elde edilmiş ve sorgu esnasındaki birleştirme maliyetlerinden kurtulma yoluna gidilmiştir. Bu durum, sorgu ağırlıklı ve nispeten aralıklı veri kaydı yapıldığı durumlarda kabul edilebilir bir per-formans sergilese de veri girişinin yoğun olduğu durumlarda yetersiz kalmaktadır. Özellikle dış veri kaynaklarından alınan duraksız verinin geçmişe yönelik saklanması veri tabanına yapılan kayıt işlemlerinin sayısını artırdığından güncel veriler üzerinden işlem yapılabilmesi için kullanılan gerçekleşmiş görünümlerin sıkça güncellenmesi gerekmektedir. Bu durum, genel sorgu performansını olumsuz etkileyerek durum sergilemede gecikmelere sebebiyet vermektedir.

Şekil 1. Güncel KKS Mimarisi

Karşılaşılan diğer bir sorun ise teknolojik olarak ödünleşen (trade-off) isterlerdir. KKBS bünyesinde işlenen duraksız verilerin geçmişe yönelik saklama isteri olduğu durumlarda (fiziksel silme, güncelleme yapılmadan) saklanan veri boyutu çok büyü-mekte ve verilerin işlendiği sorgular uzun süreler alabilbüyü-mektedir. Bu durumda, geçmi-şe yönelik duraksız veri saklama ve performans isterleri arasında ödünleşme durumu ortaya çıkarmaktadır.

Karşılaşılan bu tip sorunların çözümü için veri saklama yönteminin değiştirilmesi gerekmektedir. Ancak bu yöntem hem maliyetlidir hem de kullanımda olan KKBS’ler için uygulanabilir değildir.

3 Çoklu Veri Saklama Mimarisi

Çoklu veri saklama altyapısının temelinde “çoklu veri saklama çatısı” bulunmaktadır. Bu çatı içinde, Java Persistence API (JPA) [4] ile uyumlu olarak veri tabanı tabloları

(4)

ve uygulama tarafından kullanılan nesneler arasından eşleme yapılabilmekte, açıkla-ma (annotation) veya XML tabanlı yapılandıraçıkla-ma ayarları okunup uygulanabilmekte, yazılan sorgular biçimlendirilip işlenebilmektedir.

Çoklu veri saklama çatısı, yapılandırma ayarlarına göre birden fazla veri tabanı bağdaştırıcısı ile etkileşime geçebilmektedir. Veri tabanı bağımlı işlemler bağdaştırıcı bileşenler içine saklanmış, çoklu veri saklama çatısı içindeki işlemler ise tamamen JPA standardına uyumlu olarak geliştirilmiştir.

Çoklu bağdaştırıcı kullanan işlemler, varlıklar içindeki özniteliklere yapılan açık-lama (annotation) temelli eşlemelere göre ayrıştırılır ve ilgili veri tabanı bağdaştırıcı-sına yönlendirilir. Benzer şekilde, yapılan sorgu sonucu birden fazla veri tabanı bağ-daştırıcısı üzerinden toplanır ve çoklu veri saklama çatısı altında tek bir nesne içine toplanarak sorgu sonucu olarak sunulur.

Şekil 2. Çoklu Veri Saklama Altyapısı

İstemci uygulama tarafından yapılan bir “persist” isteği, konfigürasyona göre İliş-kisel Veri Tabanı veya Cassandra Veri Tabanlarından birisi kullanılarak saklanabildi-ği gibi (Polystore [7]), “persist” istesaklanabildi-ği ile gönderilen verinin bir kısmı İlişkisel Veri Tabanı diğer bir kısmı da Cassandra Veri Tabanında saklanabilmektedir (Polyglot [8]).

Benzer şekilde, istemci uygulama tarafından yapılan bir “read” isteği, konfigüras-yona göre kullanılan veri tabanlarından birine giderek veriyi çekebildiği gibi (Polysto-re), parçalı şekilde her iki veri tabanında saklandığı durumlarda her iki veri tabanına birden giderek ilgili kısımları toplamakta ve kullanıcıya farklı veri tabanlarında sakla-nan kısımları birleştirerek bütün bir nesne yapısı içinde sunmaktadır.(Polyglot).

Şekil 2’de gösterildiği gibi istemci uygulamalar altyapı ile JPA arayüzü üzerinden haberleşmektedirler. Başka bir deyişle istemci uygulama tarafından yapılan tüm veri saklama, okuma ve sorgulama işlemleri JPA kullanılarak standart bir arayüz üzerin-den gerçekleştirilmektedir. Çoklu Veri Saklama Altyapısı, JPA üzerinüzerin-den yapılan bu istekleri önceden yapılmış konfigürasyona göre farklı veri saklama teknikleri kullana-rak gerçekleştirmektedir. Bu sayede istemci uygulamalar aynı JPA arayüzlerini kul-landıklarından veri saklama yöntemi değişikliklerinden soyutlanmaktadırlar.

4 Örnek Olay Çalışması

KKBS entegrasyonları kapsamında alınan verinin içeriği genellikle iz, izin durumu ve konumu bilgilerini barındırmaktadır. Bu bilgiler incelendiğinde, en sık değişen veri-nin konum verisi olduğu gözlemlenmiştir. Bu bölümde, duraksız verilerin JC3IEDM

(5)

veri modeline kaydedilmesi esnasında darboğaz yaratan iz ve iz konumu ile ilgili veriler temel alınarak bir örnek olay çalışması ortaya konmuştur.

Duraksız iz ve iz konumu verisi sağlayabilmek için TCP-IP protokolü üzerinden veri sağlayacak olan sentetik veri üretici yazılım kullanılmıştır. Duraksız veri, ilk önce ilişkisel veri tabanı, sonrasında ise çoklu veri saklama altyapısı kullanılarak işlenecektir. Çoklu veri saklama altyapısı içinde iz bilgileri ilişkisel veri tabanı, izin konum bilgileri ise sütun temelli veri tabanı üzerinde tutulacak şekilde saklanıp çeki-lecektir. Her iki durumda da okuma ve yazma süreleri kayıt altına alınacaktır. 4.1 Deney Düzeneği ve Sentetik Veri Üretici

İlgili örnek olay çalışması için, Intel Core i7 işlemci ve 16 GB RAM özellikli dona-nıma ve Windows 8 işletim sistemine sahip bir çalışma ortamı kullanılmıştır. Sentetik veri üretici uygulaması ve veriyi işleyen uygulamalar aynı ortamda çalıştırılmakta, veri tabanı sunucuları ise aynı özelliklere sahip farklı ortamlarda çalıştırılmaktadırlar.

Simülatör tarafından oluşturulan sentetik veri içeriği yapısı temel iz bilgileri ve iz konumu verilerinden oluşmaktadır.

4.2 RDBMS Örnek Olay Çalışması

RDBMS örnek olay çalışması kapsamında kullanılan veri tabanı modelinin gerçek duruma en yakın sonuçları verebilmesi için JC3IEDM’e uygun bir veri modeli yapısı kullanılmıştır. Buna göre iz bilgilerinin saklanabilmesi için “object_item” tablosu, ize ait konum bilgilerinin saklanabilmesi içinse “location” ve “ob-ject_item_location” tabloları kullanılmıştır.

İlişkisel veri tabanı olarak kolay erişilebilir ve açık kaynaklı olmasından dolayı MySQL (5.7.13-log sürümü) [2] kullanılmıştır. Java tabanlı örnek uygulama ve veri tabanı arasındaki bağlantı Spring Data JPA (2.1.3.RELEASE sürümü) ile sağlanmış-tır.

(6)

Sentetik veri üreticiden gelen veriler, ilişkisel veri tabanı için kullanılan veri mode-line dönüştürülerek JPA çatısı kullanılarak MySQL veri tabanına saklanmakta ve çekilmektedir. Bu kapsamda alınan sonuçlar bölüm 4.4’de sunulmuştur.

4.3 Çoklu Veri Saklama Altyapısı Örnek Olay Çalışması

Çoklu veri saklama altyapısı örnek olay çalışması kapsamında, hem ilişkisel hem de sütun tabanlı veri tabanları kullanılmıştır. Bu kapsamda ilişkisel veri tabanı olarak bölüm 4.2 ile uyumlu şekilde MySQL (5.7.13-log sürümü), sütun temelli veri tabanı olarak da Apache Cassandra [1] kullanılmıştır. Buna göre temel iz bilgisi ilişkisel veri tabanında saklanırken, duraksız akan konum verisi ise sütun temelli veri tabanı üze-rinde saklanacaktır.

Sütun temelli veri tabanı kullanımı için Şekil 3’de belirtilen veri yapısı sadece ko-num bilgisi için değiştirilerek Şekil 4’teki gibi güncellenmiştir. Buna göre “ob-ject_item” tablo yapısı yine ilişkisel veri tabanında saklanacağından aynen korun-muş, “object_item_location” tablosu ise sütun temelli veri tabanı için kullanımı olmadığından dolayı çıkarılmıştır. Konum ve iz arasındaki ilişki ise “location” tablo-sundaki “trackId” alanı üzerinden kurulmuştur.

Şekil 4. Çoklu Model Veri Tabanı Modeli

İki farklı veri tabanı teknolojisi kullanılarak saklanan iki ayrı tablo üzerinde yaz-ma ve okuyaz-ma işlemlerinin aynı anda gerçekleştirilebilmesi için bir önceki bölümlerde bahsedilen “çoklu veri saklama çatısı” geliştirilmiş, böylece tek bir yazma ve okuma komutu ile ayrı veri tabanları ve ayrı tablolara veri yazılıp okunur hale getirilmiştir. Burada geliştirilen çatı genel olarak farklı veri tabanı yapılarına münferit “veri kayna-ğı” atanabilmesine ve gerekli işlemlerin bu kaynak üzerinden yapılabilmesine olanak sağlamaktadır. Bu sayede farklı veri tabanı teknolojilerinin güçlü yanlarının aynı anda kullanılabilmesine olanak sağlanmıştır.

4.4 RDBMS ve Çoklu Veri Saklama Altyapısı Örnek Olay Çalışması Karşılaştır-ması

Veri saklamak için kullanılan çoklu ve ilişkisel veri tabanı çözümünü karşılaştırmak için yazma ve okuma sorguları yürütülmüştür. Kullanılan veri modeline göre bir izin konumu güncellenmek istendiğinde geçmişe yönelik veri saklama zorunluluğundan

(7)

dolayı, konum verisi tabloya yeni bir kayıt olarak girilir, var olan değer silinmez ya da güncellenmez. Bu sebeple silme ve güncelleme sorguları kapsam dışı bırakılmıştır.

Karşılaştırma için kullanılan sorgular aşağıda belirtilmiştir:

1000 konum güncelleme: Duraksız veri ile alınan, 1000 konum verisinin aynı anda geldiği durumun yansıtılması amacı ile kullanılmaktadır.

10000 konum güncelleme: Duraksız veri ile alınan, 10000 konum verisinin aynı anda geldiği durumun yansıtılması amacı ile kullanılmaktadır

Tüm izlerin okunması: Duraksız veriden gelen konum verileri göz ardı edilerek sadece ize ait verilerin okunması durumu.

Bir ize ait tüm konumların geçmişe yönelik okunması: Duraksız veri üzerinden gelen konum verileri kaydedildikten sonra, bir ize ait tüm konum verilerinin geçmişe yöne-lik okunması durumu.

Bir izin en güncel konumunun okunması: Duraksız veri üzerinden gelen konum verile-ri kaydedildikten sonra, bir ize ait en güncel konum veverile-risinin okunması durumu.

Çoklu veri saklama ve RDBMS çözümlerinin yukarıda bahsedilen sorgular üze-rindeki performansları aşağıdaki şekillerde görselleştirilmiştir. Buna göre Şekil 5’te iz konumu güncelleme verileri gösterilmektedir. Çoklu veri saklama altyapısı ile yapılan güncelleme işlemleri ilişkisel veri tabanı üzerinden yapılan güncelleme işlemlerine oranla daha iyi bir performans sergilemektedir. Özellikle anlık güncellenecek konum sayısı arttıkça performans farkının da önemli ölçüde arttığı gözlemlenmiştir.

Şekil 7 kapsamında sadece iz bilgisinin saklandığı durumdaki performans karşılaş-tırması gösterilmektedir. Bu şekil, çoklu veri saklama yapısının sadece ilişkisel veri tabanı kullandığı durumu göstermektedir. Çoklu saklama altyapısı ile ilişkisel veri tabanı kullanılan durum arasında az bir performans farkı gözlemlenmektedir. Bunun sebebi ise çoklu veri saklama yapısında var olan veri tabanı bağdaştırıcısına yönlen-dirme işleminden kaynaklanan gecikmedir.

Şekil 6 ve Şekil 8’de ise kaydedilen konum verileri üzerinden yapılan sorgulama iş-lemlerinin performans karşılaştırılması verilmiştir. Hem güncel konum hem de geç-mişe yönelik konum okuma işlemlerinde çoklu veri saklama altyapısı kullanılan du-rumlarda performans artışı gözlemlenmektedir. Özellikle, var olan iz konum sayısı arttıkça bu performans farkının da arttığı gözlemlenmektedir.

Şekil 5. Konum Yazma Şekil 6. İze Ait Konumların Okunması (Geçmişe Yönelik)

(8)

Şekil 7. İzlerin Okunması Şekil 8. İze Ait Son Konumun Okunması

5 Sonuç

Yapılan örnek olay çalışması sonucunda, geliştirilen çatı ve oluşturulan çoklu veri saklama yaklaşımının, bileşenlerin güçlü özelliklerini sisteme kazandırma noktasında başarılı olduğu gözlemlenmiştir. Hem ilişkisel veri tabanlarının güçlü özelliklerini muhafaza etmek, hem de ilişkisel olmayan veri tabanlarının güçlü yönlerini sisteme kazandırmak mümkün olmuştur.

Verilen ölçüm süreleri temel alındığında, yazma ve okuma hızlarında yüksek fark-ların olması beklenen bir sonuçtur. Dolayısıyla aslında hem mevcut sistemlerin bu yapıya evrilmesinin, hem de gelecekte yapılacak çalışmaların bu kapsamda değerlen-dirilmesinin, bu alanda kronikleşmiş birçok problemin çözülmesine olanak sağlayaca-ğı değerlendirilmektedir.

Kaynakça

1. The Apache Software Foundation: Apache Cassandra, http://cassandra.apache.org/ 2. Oracle Corporation: MySQL Enterprise Edition, https://www.mysql.com

3. Polyglot Processing, http://datadventures.ghost.io/2014/07/06/polyglot-processing

4. Oracle Corporation: Java Persistence API,

https://www.oracle.com/technetwork/java/javaee/tech/persistence-jsp-140049.html

5. Wiese, L.: LWA 2015 Workshops: KDML, FGWM, IR, and FGDB. Polyglot Database Architectures. pp. 422-426, [Trier, Germany] (2015).

6. Multilateral Interoperability Programme (MIP) : The Joint C3 Infor-mation Exhange Data Model (JC3IEDM), Greding (2012)

7. Karimov, J., Rabl, T., Markl, V.: Molecular Orientation and Emission Characte-ristics of Ir Complexes and Exciplex in Organic Thin Films. pp. 24-41, Cham, (2019).

8. Araújo, A., Times, V., Urbano, M.: Int'l Conf. Internet Computing and Internet of Things. PolyEHR: A Fra-mework for Polyglot Persistence of the Electronic He-alth Record. pp. 71-77, [Las Vegas] (2016).

Şekil

Şekil 1. Güncel KKS Mimarisi
Şekil 2. Çoklu Veri Saklama Altyapısı
Şekil 3. RDBMS Veri Tabanı Modeli
Şekil 4. Çoklu Model Veri Tabanı Modeli
+2

Referanslar

Benzer Belgeler

- Bu sözleşmede; hizmet sağlayıcının sadece veri sorumlusunun talimatları doğrultusunda sözleşmede belirtilen veri işleme amaç ve kapsamına, KVKK ve sair mevzuata, kurumuz

maddesine istinaden İstanbul Tayfun Spor Kulübü Derneği ’ne başvurarak kendisine ait kişisel verilerin silinmesini, imhasını veya anonim hale getirilmesini talep

Kişisel Verilerin Korunması Kanunu ve Kanun’un ikincil düzenlemesi olan 28 Ekim 2017 tarihli Kişisel Verilerin Silinmesi, Yok Edilmesi veya Anonim Hale Getirilmesi

KVKK ve ilgili mevzuatta öngörülen süre ya da işlendikleri amaç için gerekli olan saklama süresinin sonunda kişisel veriler, Birgi Mefar tarafından re’sen veya İlgili

Kişisel verilerin anonim hale getirilmiş olması için; kişisel verilerin, veri sorumlusu veya üçüncü kişiler tarafından geri döndürülmesi ve/veya verilerin

Kişisel verilerin güvenli bir şekilde saklanması, hukuka aykırı olarak işlenmesi ve erişilmesinin önlenmesi ile kişisel verilerin hukuka uygun olarak imha edilmesi

Kişisel verilerin anonim hale getirilmiş olması için; kişisel verilerin, veri sorumlusu, alıcı veya alıcı grupları tarafından geri döndürme ve verilerin

Veri Sorumlusu: Veri sorumlusu, kişisel verilerin hukuka aykırı olarak işlenmesini ve verilere hukuka aykırı olarak erişilmesini önlemek, ayrıca verilerin muhafazasını