Современные высоконагруженные приложения хранят данные в СУБД с несколькими узлами. Такая архитектура требует согласованности данных, а также важно обеспечить равномерное распределение данных между узлами. Для достижения этих целей используются алгоритмы балансировки данных.
Хеширование является основой практически всех систем балансировки данных. С момента появления классического консистентного хеширования для этой цели было разработано множество алгоритмов.
Одной из целей балансировщика нагрузки данных является обеспечение масштабируемости кластера с данными. Для производительности всей системы крайне важно перемещать как можно меньше записей таблиц во время добавления или удаления узла. Наибольшее влияние на этот процесс оказывает алгоритм хеширования, используемый балансировщиком нагрузки.
В данной работе произведена экспериментальная оценка нескольких алгоритмов хеширования, используемых для балансировки нагрузки. Проведен ряд экспериментов как модельного характера, так с реальными системами. Для оценки производительности алгоритмов был разработан тестовый стенд на основе Unidata MDM [20] — масштабируемого набора инструментов для решения различных задач управления мастер-данными (Master Data Management). Для оценки производительности были использованы три критерия, перечислены в порядке приоритета:
• Однородность полученного распределения данных по узлам;
• Количество перемещаемых при ребалансировке записей;
• Скорость вычислений.
По результатам экспериментов составлена таблица, в которой каждому алгоритму дана оценка по вышеуказанным критериям.
1. Постановка задачи
Целью данной работы является изучение влияния алгоритмов хеширования на процесс ребалансировки данных в распределенном хранилище. Для достижения этой цели были выделены следующие подзадачи:
• Выполнить обзор предметной области и существующих методов балансировки данных;
• Выработать критерии оценки алгоритмов балансировки;
• Реализовать подсистему ребалансировки данных в Unidata MDM;
• Провести эксперименты и оценить методы балансировки.
В данной работе было изучено влияние алгоритмов хеширования на процесс ребалансировки данных в распределенном хранилище. Для этого был выполнен обзор предметной области и изучено устройство следующих алгоритмов: Linear Hashing, Consistent Hashing, Rendezvous, RUSH, Maglev и Jump. Было выработано 3 критерия оцени применимости алгоритмов, а именно равномерность распределения полученных, количество перемещенных записей и вычислительные затраты. Также была реализована подсистема ребалансировки данных в платформе Unidata MDM и проведен ряд экспериментов: моделирование балансировки данных в Colab, оценка времени расчета шарда внутри платформы и ребалансировка платформы с использованием распределенного хранилища.
Эксперименты показали, что из семи рассмотренных алгоритмов есть два явных победителя — AnchorHash и Maglev. Еще два, Linear Hashing и Jump, также могут быть применимы.
По результатам работы опубликована статья “Benchmarking Hashing Algorithms for Load Balancing in a Distributed Database Environment” [18] на конференции MEDI 2022.
[1] Allen Mark and Cervo Dalton. Multi-Domain Master Data Management: Advanced MDM and Data Governance in Practice. — 1st ed. — San Francisco, CA, USA : Morgan Kaufmann Publishers Inc., 2015. —ISBN: 0128008350.
[2] Mendelson Gal, Vargaftik Shay, Barabash Katherine, Lorenz Dean H., Keslassy Isaac, and Orda Ariel. AnchorHash: A Scalable Consistent Hash //IEEE/ACM Transactions on Networking. — 2021.—Vol. 29, no. 2. —P. 517-528.
[3] Karger David, Lehman Eric, Leighton Tom, Panigrahy Rina, Levine Matthew, and Lewin Daniel. Consistent Hashing and RandomTrees: Distributed Caching Protocols for Relieving Hot Spots onthe World Wide Web // Proceedings of the Twenty-Ninth Annual ACM Symposium on Theory of Computing. — New York, NY, USA : Association for Computing Machinery. — 1997. — STOC ’97. — P. 654¬663.
[4] DeCandia Giuseppe, Hastorun Deniz, Jampani Madan, Kakulapati Gunavardhan, Lakshman Avinash, Pilchin Alex, Sivasubramanian Swaminathan, Vosshall Peter, and Vogels Werner. Dynamo: Amazon’s Highly Available Key-Value Store // SIGOPSOper. Syst. Rev.— 2007.— oct.—Vol. 41, no. 6. —P. 205-220.
[5] Honicky R.J. and Miller E.L. A fast algorithm for online placement andreorganization of replicated data // Proceedings International Parallel and Distributed Processing Symposium. — 2003. — P. 10 pp.-.
[6] Honicky R.J. and Miller E.L. Replication under scalable hashing: afamily of algorithms for scalable decentralized data distribution // 18th International Parallel and Distributed Processing Symposium, 2004. Proceedings. — 2004. — P. 96-.
[7] Litwin W., Neimat M.-A., Lev G., Ndiaye S., and Seek T. LH*s: a high-availability and high-seeurity sealable distributed data structure // Proceedings Seventh International Workshop on Research Issues in Data Engineering. High Performance Database Management for Large- Scale Applications. — 1997. — P. 141-150.
[8] Lakshman Avinash and Malik Prashant. Cassandra: A Decentralized Structured Storage System //SIGOPS Oper. Syst. Rev. — 2010. — apr. — Vol. 44, no. 2. — P. 35-40.
[9] Lamping John and Veach Eric. A Fast, Minimal Memory, Consistent Hash Algorithm. — 2014. — 06.
[10] Linear Hashing : Rep. ; executor: Alon Noga, Dietzfelbinger Martin, Miltersen Peter B, Petrank Erez, and Tardos Gabor : 1997.
[11] Litwin W., Menon J., and Risch T. LH* Schemes with Scalable Availability. -- 2001. -- 01.
[12] Litwin Witold, Moussa Rim, and Schwarz Thomas. LH*RS—a Highly- Available Scalable Distributed Data Structure // ACM Trans.Database Syst.— 2005.— sep. —Vol. 30, no. 3.--P. 769-811.
[13] Litwin W. and Neimat M.-A. High-Availability LH* Schemes with Mirroring // Proceedings of the First IFCIS International Conference on Cooperative Information Systems. — USA : IEEE Computer Society. 1996. COOPIS ’96. — P. 196.
[14] Litwin Witold, Neimat Marie-Anne, and Schneider Donovan A. LH:Linear Hashing for Distributed Files // Proceedings of the 1993 ACM SIGMOD International Conference on Management of Data. -- New York, NY, USA : Association for Computing Machinery. — 1993. — SIGMOD ’93. — P. 327-336.
[15] Litwin W. and Risch T. LH*g: a high-availability scalable distributed data structure by record grouping //IEEE Transactions on Knowledgeand Data Engineering. — 2002. —Vol. 14, no. 4. — P. 923-927.
[16] Loshin David. Master Data Management. — San Francisco, CA, USA : Morgan Kaufmann Publishers Inc., 2009. —ISBN: 978-0-12-374225-4.
[17] Eisenbud Daniel E., Yi Cheng, Contavalli Carlo, Smith Cody, Kononov Roman, Mann-Hielscher Eric, Cilingiroglu Ardas, Cheyney Bin, Shang Wentao, and Hosein Jinnah Dylan. Maglev: A Fast and Reliable Software Network Load Balancer // Proceedings of the 13th Usenix Conference on Networked Systems Design and Implementation. — USA : USENIX Association. — 2016. — NSDI’16. — P. 523-535.
[18] Slesarev Alexander, Mikhailov Mikhail, and Chernishev George. Benchmarking Hashing Algorithms for Load Balancing in a Distributed Database Environment // Advances in Model and Data Engineering in the Digitalization Era / ed. by Fournier-Viger Philippe, Hassan Ahmed, Bellatreche Ladjel, Awad Ahmed, Ait Wakrime Abderrahim, Ouhammou Yassine, and Ait Sadoune Idir. — Cham : Springer Nature Switzerland. — 2022. —P. 105-118.
[19] A Name-Based Mapping Scheme for Rendezvous : Rep. ; executor: Thaler David and Ravishankar Chinya. — Access mode: https://www.eecs.umich.edu/techreports/cse/96/CSE-TR-316-96.pdf.
[20] Kuznetsov Sergey, Tsyryulnikovv Alexey, Kamensky Vlad, Trachuk Ruslan, Mikhailov Mikhail, Murskiy Sergey, Koznov Dmitrij, and Chernishev George. Unidata — A Modern Master Data Management Platform // Proceedings of the 1st International Workshop on Data Platform Design, Management, and Optimization (DATAPLAT) co-located with the 25th International Conference on Extending Database Technology and the 25th International Conference on Database Theory (EDBT/ICDT 2022), Edinburgh, UK, March 29, 2022. — CEUR-WS.org. — 2022. — CEUR Workshop Proceedings.
[21] Ozsu M. Tamer and Valduriez Patrick. Principles of Distributed Database Systems. — 3rd ed. — Springer Publishing Company, Incorporated, 2011. — ISBN: 1441988335.