Geri Dön

DCfRSM: Fault-Tolerant checkpoint approach for replicated state machines

DCfRSM: Eslenmis Durum Makinalarında hata kabul edebilirligi yüksek kontrol noktası tutma yaklaşımı

  1. Tez No: 637414
  2. Yazar: NİYAZİ ÖZDİNÇ ÇELİKEL
  3. Danışmanlar: DOÇ. DR. TOLGA OVATMAN
  4. Tez Türü: Yüksek Lisans
  5. Konular: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol, Computer Engineering and Computer Science and Control
  6. Anahtar Kelimeler: Belirtilmemiş.
  7. Yıl: 2020
  8. Dil: İngilizce
  9. Üniversite: İstanbul Teknik Üniversitesi
  10. Enstitü: Fen Bilimleri Enstitüsü
  11. Ana Bilim Dalı: Bilgisayar Mühendisliği Ana Bilim Dalı
  12. Bilim Dalı: Bilgisayar Mühendisliği Bilim Dalı
  13. Sayfa Sayısı: 95

Özet

Bulut bilisim alanında faaliyet gösteren markaların sundugu sunucusuz çözümler mimarisi dahilinde, yazılım gelistirme süreçlerinde durum makinalarının kullanım sıklıgı artmıstır. Sunucusuz çözümler mimarisi, sadece yazılım gelistirme süreçlerindeki birçok alana hakim olma gerekliligini ortadan kaldırmamıs, aynı zamanda yazılımcılara ana geli¸stirme konularına odaklanma fırsatı vermistir. Gelistirilen servislerin yüksek erisilebilir olmasını saglamak, testlerin otomatize bir sekilde kosmasını saglamak, daha az efor ile canlı sistemi güncellemek, yük testleri kosturmak, canlı sistemlerden test sistemlerin beslenmesini otomatik hale getirmek, canlı sistemlerde yasanan sorunları anında gözleyebilmek ve sorunlara anında ve otomatik olarak müdahale edilmesini saglamak, canlı sistemlerde kulllanıcıları yetkilendirmek gibi konuların belirtilen servisler tarafından saglanabiliyor olusu,yazılımcalara ürüne ve ürün gelistirme konularına daha fazla hakim olmasını saglayacak bir fırsat sunmaktadır. Yukarıda belirtilen özelliklerin saglanması amacıyla kullanılan popüler yaklasımlardan biri, durum makinalarının kullanımıdır. Bulut bilisim alanında faaliyet gösteren markalar, çözümleri içerisine birçok islevsel olmaktan uzak özellik eklemstir, bunlara örnek olarak hata kabul edilebilirligi,bütünlesebilirlik, yüksek erisilebilirlik verilebilir. Bütünlesebilirlik, servislerin baska platforma aktarılmasındaki kolaylıgın ölçüsüdür. Platformlar arası kolayca geçisi yapılabilen servislerin, bütünlesebilirlik özelligi yüksek demektir. Yüksek erisilebilirlik ise, bir uygulama veya servisin her zaman ayakta olması ve iyi/kötü bir cevap verebiliyor olmasıdır. Burada dikkat çekilmesi gereken nokta, servisin ayakta olusunun yüksek erisilebilirlik kriterinin saglandıgı anlamına gelmedigidir. Servis ayakta olabilir, gelen çagrıları kabul edilebilir fakat ça grıyı yapan programa/kullanıcıya iyi veya kötü bir cevap dönebilyor olması gerekmektedir. Hata kabul edilebilirlik ise, bir servisi olusturan parçaların herhangi birinde yazılımsal veya donanımsal bir hata olustugunda, bunun servisi kullanan taraflara farkettirilmeden algılanması ve problemin çözülmesi gerekliligini kapsar. Servisi olusturan parçalardan biri cevap veremez duruma geçtiyse, bu sorunlu parçanın sistem baglantılarını koparıp yerine aynı özellikte ve aynı islevde bir parçanın konulması gerekliligi, yüksek erisilebilirli gin kriterlerinden birisi olarak karsımıza çıkmaktadır. Bu faktörlerin hepsi gözönüne alındı gında, sistemin kendisinin ve tek tek tüm bile¸ senlerinin yedekliligi gerekliliginin önemi anlasılmaktadır. Sistemin ve parçalarının yedeklerinin tutulması kadar, bu yedeklerin islevliligi, yani bu yedekten geri dönebilme basarısı da dikkate alınmalıdır. Hatta bu ihtiyaçtan ötürü, büyük firmalar, sene içinde alınan sistem yedeklerinin islevselligini görmek adına, yedekten dönüs¸ testleri yaparak, belirli bir andaki sistem yedegine dönerek sistemlerin erisilebilirligini ve islevselli gini test etmektedir. Kontrol noktası tutma yaklasımı da, bir yedekleme yöntemi olarak görülebilmektedir. Bir yazılım servisinin parçalarını olusturan bilgisayar kümesi içindeki bir makinayı, küme içerisinde dagıtılmıs¸ bir sekilde kopyasını çıkarmak adına yapılan çalısmalar, hata kabul edilebilirligini saglamak adına yürütülmektedir. Baska bir sekilde söylemek gerekirse, bu amaçla kontrol noktası saklamak, hata kabul edilebilirligini saglamak adına uygulanabilir. Kontrol noktasının hangi sıklıkla saklanacgı kadar, bu noktanın hangi depolama bölümünde -disk, bellek,kartus,vs- saklanacagı, sistemin geri dönüs¸ süresini etkilemesi bakımından önem arz etmektedir. Kontrol noktası saklama yolu ile sistem durumunu belirli aralıklarla saklamak ve hata durumunda tüm sistemi geri getirmek mümkün olabilmektedir. Yaklasımlardan biri, tüm sistemin bir bütün halinde kontrol noktasını saklamaktır. Bu yolla, herhangi bir hata durumunda tek bir noktadan geri getirme islemleri baslatılabilir. Bu yaklasımın dezavantajı, tutulan kontrol noktası büyük olacagı için geri dönüs¸ zamanının fazla olacagıdır. Diger yaklasım ise, tüm sistemin bütün parçalarının ayrı ayrı kontrol noktalarını tutmaktır. Bu yaklasım daha granüler bir yaklasımdır ve daha hızlı geri dönüs¸ olanagı verebilir. Günümüzde, bulut bilisim alanında yürütülen arastırmalar dahilinde, kontrol noktası tutma yaklasımlarının eslenmis¸ durum makinaları ile kullanımı, üzerinde çok durulan bir konudur. Eslenmis¸ durum makinaları, servise gelen tüm isteklerin serilestirildiginin ve sistemden cevap üretildigi an, sisteminin durumunun kayıt edilginin garantilendigi sistemlerdir. Dolayısıyla, sistem bilesenlerinin birbirinden haberdar olması, aynı istege farklı zamanlarda farklı cevaplar üretilmediginin garanti altına alınması, yukarıda da anlatıldıgı üzere, hata toleransının saglanması gereken sistemler oldugu açıktır. Bunu saglamak adına, sistemin tüm bilesenleri, birbirinin eslenigi gibi davranmak zorundadır. Bunu saglamanın en kolay yollarından biri, bir durum makinasının farklı sunucular üzerinde eslenik bir sekilde çalıstırılmasıdır. Simüle edilmek istenirse, sistemdeki tüm bilgisayarların belli etkenlere/uyarıcılara aynı tepkiyi vererek, aynı anda durumlarını degistirerek aynı çıktıyı üretmelerinin saglandıgı sistemler olarak düsünülebilir. Eslenmis¸ durum makinaları için de farklı kontrol tutma yaklasımları söz konusudur, bu alanda genis¸ çalısmalar mevcuttur. Örnek yaklasımlardan biri,artan kontrol noktası tutma yaklasımıdır. Bu çözümde, sistemin belirli bir anda, tüm baglamı, kontrol noktası olarak saklandıktan sonra bu noktaya bir isaret konulur,ardından her bir durum geçi¸ sinde isaret konulan nokta ile mevcut nokta arasındaki farkı kayıt edilir. Bu tez çalısması dahilinde, eslenmis¸ durum makinalarının sistem baglamlarını kayıt ederken yasanan bellek kullanımlarının azaltılması amacıyla kontrol noktalarının dagıtılması yaklasımının avantajları gösterilmi¸stir. Önerilen yaklasım kullanıldıgı takdirde, bilgisayar kümesi içerine gelen tüm isteklerin tarihçesinin belli parçalara bölünmesi saglanacaktır. Dolayısıyla, her bir bir eslenmis¸ durum makinası,sisteme gelen isteklerin belirli bir kısmına kontrol noktası olarak kendi sistem baglamında saklayacaktır. Bunun anlamı ise, sisteme gelen tüm isteklerin tarihçesinin, bilgisayar kümesi içerisinde aktif olarak çalısan durum makinalarının hepsi tarafından paylasılmasıdır. Tez çalısması içerisinde, Java Spring State Machine kütüphanesi kullanılmıs, farklı kontrol noktası tutma yaklasımları gerçeklenerek sonuçları karsılastırılmıstır,ki bu yakla¸sımlar Merkezi Yaklasım, Geleneksel Yaklasım ve Yansımalı Yaklasım olarak belirlenmistir. Önerilen çözüm kullanıldıgı takdirde, mevcut bilgisay kümesi içerisinde birden fazla makina bozulsa dahi sistemde ayrık olarak tutulan kontrol noktaları birlestirilip serilestirilme imkanı dogmaktadır. Çalısma dahilinde gösterilmi¸ stir ki, önerilen yaklasım kullanıldıgı takdirde sistem durumunu saklarken gereken bellek tüketim miktarı azaltılabilmistir. Bu avantaja karsıt olarak, yeni bir durum makinası bilgisayar sistemine katılırken gereken zamanda bir artıs¸ söz konusudur, çünkü bu durum makinası, sistemde aktif olan durum makinalarına dagıtılmıs¸ kontrol noktalarını okurken bir zaman kaybı gözlemlenmi¸ stir.

Özet (Çeviri)

As a result of attractive offers including serverless hosting services by cloud vendors, usage of state machine models has been widely spread in various areas in terms of software development for cloud. Serverless computing phenomenon offers software developers not only eliminating the need to take care of many aspects of software development stack but also focusing on developing main tasks to be executed by cloud system. Using state machine models in order to express the required functionality in one of the popular approaches for serverless computing. Cloud vendors also offers non functional requirements such as fault tolerance, integrability, etc. Replicating a single state machine across cluster which is going to work in distributed manner with the aim of handling requests is very well-known approach for providing fault tolerance. With other words, a major approach that can be used in fault tolerance is checkpointing. Checkpointing offers saving the system state in specific frequencies in order to boot the system back in case of any failure. Especially, applying different checkpointing approaches in replicated state machine systems is an highly active research topic for today's cloud computing era. In this thesis, advantages of splitting snapshots of replicated state machine images with the aim of decreasing memory overhead during persisting the system context is investigated. This type of checkpointing offers deploying and serializing of whole request history into many parts during persisting checkpoints, and hence, each of the replicated state machine instances are going to store a specific piece of history instead of full execution history while overall history is going to be gathered from the overall system, which also means, logical master history will be shared between all the active state machine replicas inside current cluster. Within this thesis, Java Spring State Machine framework is used to model checkpointing mechanism and benchmarked results with many other approaches such as Centralized Approach, Conventional Approach and Mirrored Approach. By doing so, distributed snaphots can be gathered, merged and serialized during state machine execution even if more than one replica fails at the same time. It proved that by using proposed approach, the amount of memory overhead needed for persisting checkpoints is decreased. In contrast to this advantage, recovery time which expresses the time interval needed for a new replica to be joined into cluster is increased due to extra communication need for collecting partial histories from replica instances.

Benzer Tezler