Bulut ortamında kullanıcı verilerini yazma ve okuma amaçlı yük dengeleme yaklaşımları ve bir çözüm önerisi
Load balancing approaches for user data writing and reading in cloud environment and a new approach
Yazar: NURULLAH KILIÇ
Danışman: DR. ÖĞR. ÜYESİ YUNUS EMRE SELÇUK
Yıldız Teknik Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı / Bilgisayar Mühendisliği Bilim Dalı
Derece: Yüksek Lisans, 2018
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control

Özet:
Bulut Bilişim (Cloud Computing) hem akademik ortamda önemli araştırma konuları sunan hem de sektörde pratik olarak yaygın şekilde kullanılan bir yöntem haline gelmiştir. Dağıtık Sistemler (Distributed Systems) alanındaki çözülmüş ve çözülmemiş problemler Bulut Bilişim alanına da taşınmaktadır. Bu tür sistemlerde toplam işin mevcut sistemlere en iyi biçimde dağıtılması, başarımı en üst düzeye çekmektedir. Yük dengeleme (load balancing) adı verilen bu işlem, kullanılan farklı yaklaşımlara göre farklı ek yükler ve/veya en iyi olmayan sistem başarımı ortaya çıkartabilmektedir. Bulut bilişim veri merkezlerinde yük dengeleme etkin bir araştırma alanı olmayı sürdürmektedir.
Tez çalışması kapsamında literatürdeki yük dengeleme yaklaşımları incelenerek özellikle işlemsel olmayan (non-transactional) yöntemlerden en ümit verici olanlar seçilerek açık kaynak bulut ortamında denenmiştir. Ayrıca çalışmada farklı veri tipleri için başarılı bir parçalama ekseni (sharding column) seçimi ve bu seçimin yük dengelemeye ve performansa etkileri incelenmiştir.
Yapılan incelemelerde kullanılmak üzere seçilen Screen Tracker uygulaması, çalışanların verimliliğini artırmaya yönelik bir yazılımdır. Bu yazılım Sword-IT bünyesinde geliştirilmiş bir uygulama olup, çalışanların hangi uygulamada ne kadar vakit harcadıklarına dair verileri toplarlayıp analizini yaparak çalışan verimliliğini artırmayı hedeflemektedir. Uygulama, çalışanların verilerinin çevrim dışı depolanıp, daha sonra çevrimiçi sorgulanabilir hale getirilmesi amacına yönelik olarak, uygulama tarafından üretilen verilerin yazımı ve okunması sırasında yük dengeleme yaklaşımlarından yararlanarak tez çerçevesinde yeniden tasarlanmıştır. Screen tracker uygulamasından gelen verilerin kaydedilmesi için dağıtık bir yapı kurgulanmıştır. Bu yapıda, bir adet koordinatör düğümü, yük durumuna göre kümelenebilir yeni yük düğümleri, verilerin tutulacağı saklama düğümleri ve verilerin okunacağı okuma ucu (read end-point) düğümler kurgulanmıştır. Screen Tracker uygulamasının çalışması ve mimarisi hakkında ayrıntılı bilgiye 4.Bölümde yer verilmiştir. 
Yapı içerisinde, PostgreSQL Veri Tabanı Yönetim Sistemi (VTYS)'den yararlanılmıştır. Birden fazla sunucuya verilerin belli sütunlara göre parçalanarak dağıtımı yapılmış, sonuçların performans üstündeki etkileri araştırılmıştır. Bu çerçevede, mevcut olan yaklaşımlar incelenmiş, en ümit verici olanları test edilerek ve önerilen yöntem ile kıyaslanmıştır. Round Robin yaklaşımı temel olarak alınıp diğer yöntemlerin bu yaklaşıma göre sağladığı kazanımlar kıyaslanmıştır.

Abstract:
Cloud computing has become a magnificent working area both in academical and industrial researches.  The solved and unsolved problems in Distributed Systems are moved into the Cloud Computing area. Distributing the load on to the whole system in a balance, levarages the performance that is called load balancing in these kind of systems. Load balancing is still a niche working area for Cloud Computing data centers.
Load balancing approaches are reviewed and especially the most promising non-transactional methods are tested in a cloud environment.  Also in the study, a successful sharding column selection for different data types and the effect of this selection on load balancing and the corresponding performance is examined.
The Screen Tracker application, developed to increase the productivity of the employees,  is used for aforementioned tests and examinations. This application is developed by Sword-IT and aims to increase employee productivity by collecting and analyzing the data about how much time the employees spend at work by using their computers. The application is designed by taking advantage of load balancing approaches during the writing and reading of application-generated data for the purpose of storing employee data offline and then querying online. A distributed structure will be created to record the data from the screen tracker application. In this structure, one coordinator node, new load nodes that can be clustered according to the load case, retention nodes to hold the data, and read end-point nodes to read the data will be constructed. Detailed information about the operation of the Screen Tracker application and its architecture is included in Chapter 4.
PostgreSQL Database Management System is used as a Database Management System within the Project. The application data is sharded by a column and distributed more than one server in terms of scaling and load balancing and then performance affects of different topologies are compared. Used methodologies and approaches in the industry and academic researches are reviewed and the most promising ones are tested and compared. Also the performance gain according to round robin is evaluated during the work.