DOI QR코드

DOI QR Code

Active-Active Message Replica Scheme for Enhancing Performance of Distributed Message Broker

분산 브로커의 가용성 향상을 위한 메시지 레플리카 액티브-액티브 구조 기법

  • Received : 2017.12.15
  • Accepted : 2018.04.20
  • Published : 2018.06.30

Abstract

A loosely coupled message broker system is a popular method for integrating distributed software components. Especially, a distributed broker structure with multiple brokers with active-standby or active-active message replicas are used to enhance availability as well as message processing performance. However, there are problems in both active-standby and active-active replica structure. The active-standby has relatively low processing performance and The active-active structure requires a high synchronization overhead. In this paper, we propose an active-active structure of replicas to increase the availability of the brokers without compromising its high fault-tolerancy. In the proposed structure, standby replicas process the requests of the active replicas so that load balancing is achieved without additional brokers, while the distributed coordinators are used for the synchronization process to decrease the overhead. We formulated the overhead incurred when synchronizing messages among replicas, and the formulation was used to support the experiment results. From the experiment, we observed that replicas of the active-active structure show better performance than the active stand-by structure with increasing number of users.

다양한 분산 소프트웨어 컴포넌트들의 정보 교환을 위해 비동기, 다대다 메시지 교환이 가능한 브로커 구조가 보편적으로 사용되고 있다. 특별히 많은 사용자 및 메시지를 지원하기 위해 높은 확장성의 분산 메시지 브로커가 제안되었다. 브로커의 가용성 및 장애 극복 능력을 향상시키기 위해 메시지 레플리카를 사용하여 액티브-스탠바이 혹은 액티브-액티브 구조를 사용하게 된다. 그러나, 액티브-스탠바이의 경우 낮은 가용성의 문제, 그리고 액티브-액티브의 경우 동기화 오버헤드가 전체 성능을 낮추는 문제를 가진다. 본 논문에서는 장애 상황의 극복이 가능하면서도 분산 메시지 브로커의 가용성을 향상시키기 위해 메시지 레플리카를 액티브-액티브 구조로 구성하여 분산 브로커의 요청 부하를 분산시키는 기법을 제안하였다. 스탠바이 레플리카들이 액티브 레플리카로부터 요청을 전달받아 나누어 처리함으로써 브로커를 구성하는 노드 수의 증가 없이 요청 부하를 분산시킬 수 있었다. 이때 메시지 동기화 과정은 분산 코디네이터를 이용, 분산 락을 구현함으로써 모든 액티브 레플리카들이 한 때에 동기화를 진행하도록 하였고 각 액티브 레플리가 동기화를 할 때보다 추가적인 오버헤드를 적게 하였다. 본 제안의 성능을 평가하기 위해 제안 기법과 기존의 액티브-스탠바이 기법을 기반으로 브로커 프로토타입을 구현하고 메시지의 생산, 소비 및 전체 생산-소비 구간 처리 성능을 측정 비교하였고, 분산 락으로 인한 오버헤드 수식을 제시하였다. 실험 결과에서 본 제안 기법이 더 높은 확장성과 메시지 처리성능을 보임을 확인하였다.

Keywords

References

  1. P. T. Eugster, P. A. Felber, and R. Guerraoui, "The many faces of publish/subscribe," ACM Computing Surveys, Vol.35, No.2, pp.114-131, 2003. https://doi.org/10.1145/857076.857078
  2. E. Curry, "Message-oriented middleware," in Middleware for communications, John Wiley & Sons, pp.1-28, 2004.
  3. G. Banavar, T. Chandra, R. Strom, and D. Sturman, "A case for message oriented middleware," In International Symposium on Distributed Computing, pp.1-17, 1999.
  4. G. Pardo-Castellote, "OMG data-distribution service: Architectural overview," In Proc. IEEE International Conference on Distributed Computing Systems Workshops'03, 2003, pp. 200-206.
  5. A. Fedoruk and R. Deters, "Improving fault-tolerance by replicating agents," In Proc. 1st International Joint Conference on Autonomous Agents and Multiagent Systems: Part 2, ACM, pp.737-744, 2002.
  6. The Apache Software Foundation, "Welcome to $Apache^{TM}$ Hadoop!," The Apache Software Foundation, 2014. [Online]. Available: http://hadoop.apache.org. [Accessed Nov. 30, 2017].
  7. The Apache Software Foundation, "Apache Hadoop 2.9.0 - HDFS High Availability," The Apache Software Foundation, 2017. [Online]. Available: https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithNFS.html. [Accessed Nov. 30, 2017].
  8. J-H. Hwang, M. Balazinska, and A. Rasin, "High-availability algorithms for distributed stream processing," In Proc. 21st International Conference on Data Engineering'05, pp. 779-790, 2005.
  9. NGINX Inc., "Load balancing with NGINX Plus," NGINX Inc., 2017. [Online]. Available: https://www.nginx.com/products/nginx/load-balancing/#load-balancing-methods. [Accessed Nov. 30, 2017].
  10. P. Hunt, M. Konar, F. P. Junqueira, and B. Reed, "ZooKeeper: Wait-free Coordination for Internet-scale Systems," In Proc. USENIX Annual Technical Conference, Vol. 8, pp.145-158, 2010.
  11. The Apache Software Foundation, "Samza," The Apache Software Foundation. [Online]. Available: http://samza.apache.org. [Accessed Nov. 30, 2017].
  12. The Apache Software Foundation, "Apache Storm," The Apache Software Foundation, 2015. [Online]. Available: http://storm.apache.org. [Accessed Nov. 30, 2017].
  13. The Apache Software Foundation, "Spark Streaming $\mid$ Apache Spark," The Apache Software Foundation. [Online]. Available: http://spark.apache.org/streaming. [Accessed Nov. 30, 2017].
  14. Project Gutenberg Literary Archive Foundation Inc., "Gutenberg," Project Gutenberg Literary Archive Foundation Inc., 2017. [Online]. Available: https://www.gutenberg.org. [Accessed Nov. 30, 2017].