Son zamanlarda mikroservis mimarilerinin hızla yayılmasıyla birlikte, büyük matris verilerinin hızlı ve verimli bir şekilde servisler arasında transferi, önemli bir zorluk haline gelmiştir. Bu çalışma, bu zorluğa çözüm bulmayı amaçlayan bir analiz sunmaktadır. Analiz, büyük matris verilerinin sıkıştırma ve açma işlemlerini ele almakta ve veri transferini optimize etmek için veri kaybı olmadan çalışan sıkıştırma algoritmalarına odaklanmaktadır. Çalışma, bir örnek senaryo üzerinde uygulanmıştır. Bu senaryo, mikroservis mimarisine sahip bir projeden alınmıştır. Örnek senaryoda, Python programlama dili ile geliştirilmiş bir görüntü işleme servisi, 640x480 boyutunda bir matris verisi üretmektedir. Bu veri, bir sıkıştırma algoritmasından geçtikten sonra periyodik olarak C# programlama dili ile geliştirilmiş bir back-end servise transfer edilmektedir. Bu veri daha sonra bir veritabanında depolanmaktadır. Son aşamada, bu verinin raporlama için kullanılabilmesi için açma işlemleri gerçekleştirilmektedir. Çeşitli sıkıştırma algoritmalarının performansı, veri sıkıştırma, veritabanı depolama ve rapor oluşturma aşamalarında detaylı bir şekilde test edilmiştir. Çalışma kapsamında beş farklı sıkıştırma algoritması (Gzip, Zlib, Deflate, Brotli ve Bz2) kullanılarak testler gerçekleştirilmiştir. Sonuçlar, en optimize edilmiş end-to-end çözümü belirlemeye yönelik performans testleri ile elde edilmiştir. Örnek senaryo üzerinde sıkıştırma algoritmalarının performansını analiz ederken, Brotli algoritması hem hız hem de sıkıştırma boyutu açısından en optimal sonucu vermektedir. Bu çalışma, mikroservis mimarilerinde veri transferi optimizasyonuna önemli bir katkı sağlamakta ve çeşitli sıkıştırma algoritmalarının performans analizini sunarak bu alandaki araştırmalara referans oluşturmaktadır.
With the rapid proliferation of microservices architectures these days, the efficient and fast transfer of large matrix data between services has become a significant challenge. This study presents an analysis aimed at finding solutions to this challenge. The analysis addresses the compression and decompression of large matrix data, focusing on lossless compression algorithms to optimize data transfer without data loss. The study is implemented on an example scenario. This scenario is taken from a project with a microservice architecture. In the example scenario, an image processing service developed in Python programming language generates 640x480 matrix data. After going through a compression algorithm, this data is periodically transferred to a backend service developed in C# programming language. This data is then stored in a database. In the final stage, decompression operations are performed so that this data can be used for reporting. The performance of various compression algorithms in the data compression, database storage and report generation stages is extensively tested. Within the scope of the study, tests were performed using five different compression algorithms (Gzip, Zlib, Deflate, Brotli and Bz2). The results are obtained through performance tests aimed at determining the most optimized end-to-end solution. Analyzing the performance of the compression algorithms on the example scenario, the Brotli algorithm gives the most optimal result in terms of both speed and compression size. This work makes an important contribution to data transfer optimization in microservice architectures and provides a reference for research in this area by presenting the performance analysis of various compression algorithms.
Primary Language | English |
---|---|
Subjects | Information Systems (Other) |
Journal Section | Articles |
Authors | |
Publication Date | October 1, 2024 |
Submission Date | January 26, 2024 |
Acceptance Date | April 17, 2024 |
Published in Issue | Year 2024 Issue: 1 |
This work is licensed under the Creative Commons Attribution-Non-Commercial-Non-Derivable 4.0 International License.