Сучасні підходи до зберігання даних на розподіленій інфраструктурі
Анотація
Метою даної статті є дослідження проблем оптимального зберігання великих даних і розгляд найновіших підходів до вирішення цих проблем для забезпечення необхідного рівня продуктивності обчислювальних систем. Під час проведення наукового дослідження використовувалися методи аналізу та узагальнення, синтез та системний підхід для вивчення сучасних способів зберігання даних на розподіленій інфраструктурі, які застосовуються в процесі оброблення інформації. В роботі розглянуто ключові аспекти, які виникають із розвитком технологій та значним збільшенням обсягів використовуваних даних. Встановлено, що на сьогодні існує два принципових підходи до забезпечення необхідного рівня продуктивності систем: вертикально (підходу зі спільною пам’яттю (shared-memory architecture)) та горизонтально (архітектура без розділення ресурсів (shared-nothing architectures)) масштабовані підходи, кожен з яких має як позитивні, та і негативні сторони. Згідно останніх розробок та досліджень у сфері роботи із великими даними, найбільш придатною для вирішення задач є архітектура без розділення ресурсів, яка детально проаналізована в роботі, а саме, висвітлено які основні концептуальні та архітектурні рішення розподілених систем та вказано вимоги до цієї архітектури. При такій архітектурі кожен вузол (машина або віртуальна машина, на якій працює програмне забезпечення бази даних) використовує свої CPU, пам’ять та диски окремо і будь-яка координація між вузлами здійснюється на програмному рівні використовуючи звичайну мережу. При цьому підході до зберігання даних на декількох вузлах залежно від обсягу цих даних використовують два найпоширеніші способи: реплікацію (у випадку малого набору даних і можливості його розміщення на одному комп’ютері) або партиціонування (шардинг), який включає поділ даних на партиції на основі конкретного діапазону значень ключів у наборі даних. Вказано на необхідність досягнення при проектуванні розподілених систем відповідного балансу між такими принципами як узгодженість, доступність та стійкість до розподілення. Обґрунтовано твердження про можливість мати щонайбільше дві з цих властивостей для будь-якої системи розподілених даних.
Посилання
2. Kleppmann M. (2017) Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainаble Systems. 590 p.
3. Petrov A. (2019) Database Internals: A Deep Dive into How Distributed Data Systems Work. 1st Edition. 590 p.
4. Gorelik A. (2019) The Enterprise Big Data Lake. 197 р.
5. Brewer E. (July 16-19, 2000) Towards Robust Distributed System. Symposium on Principles of Distributed Computing, Proceedings of the Nineteenth Annual ACM Symposium on Principles of Distributed Computing. Portland.