RISS 학술연구정보서비스

검색
다국어 입력

http://chineseinput.net/에서 pinyin(병음)방식으로 중국어를 변환할 수 있습니다.

변환된 중국어를 복사하여 사용하시면 됩니다.

예시)
  • 中文 을 입력하시려면 zhongwen을 입력하시고 space를누르시면됩니다.
  • 北京 을 입력하시려면 beijing을 입력하시고 space를 누르시면 됩니다.
닫기
    인기검색어 순위 펼치기

    RISS 인기검색어

      CEPH-KAFKA : 고속 마이그레이션을 제공하는 분산 스토리지 기반 메시지 브로커 = CEPH-KAFKA: Distributed Storage-Based Message Broker providing Fast Migration

      한글로보기

      https://www.riss.kr/link?id=T15358388

      • 0

        상세조회
      • 0

        다운로드
      서지정보 열기
      • 내보내기
      • 내책장담기
      • 공유하기
      • 오류접수

      부가정보

      다국어 초록 (Multilingual Abstract)

      Kafka, a storage-based message broker, is used as a data hub in many services, and administrators are controlling the number of Kafka brokers according to their traffic and capacity.
      In this process, partition(logical unit where messages are stored) migration in Kafka is a costly operation because it is possible after all the partition data has been replicated to the new broker.
      This research focuses on the fact that the role of the storage-based message broker may be only a cache and storage interface, and that SDS (Software Defined Storage) such as Ceph is widely used.
      Kafka stores messages in a block device through a VFS (Virtual File System) to store messages. Separately, this research directly stores the data in the SDS, and the broker provides the interface and cache system.
      To do this, the system requires to store messages in SDS, broker coordination, and partition management within the broker.
      In this research, we propose a message storage method that can access messages with constant time using fixed size index objects.
      It also discusses how to provide self-coordination between brokers via SDS without using a separate coordination solution, as well as managing partitions and optimizing IO.
      Using this research, it would be possible to provide a message broker as a service capable of fast migration to tenants in a environment that has large scale SDS resources(eg, cloud providers, provides some of the SDS resources to tenants).
      In addition, because of the fast migration, computing resources can be saved by performing migration to other broker and shutting down idle brokers when traffic is low. This means you can lower TCO(Total Cost of Ownership).
      In addition, when using Kafka, brokers are executed in a virtual machine and SDS is used as a block device. In this case, broker-level replication is performed at the broker application level to store messages, Replication is performed again, so there is a problem that the same message replica is generated more than necessary. This research shows that message replication is dependent on SDS's own replication, so it can reduce the network traffic of broker application and storage capacity of SDS (broker level Replica 3 copy: 66% reduction).
      In addition, this research shows that the performance is better than the Kafka by 20 ~ 30%. If we can develop this research further and use it at the product level, we will convert the project into open source and more evolving it.
      번역하기

      Kafka, a storage-based message broker, is used as a data hub in many services, and administrators are controlling the number of Kafka brokers according to their traffic and capacity. In this process, partition(logical unit where messages are stored) m...

      Kafka, a storage-based message broker, is used as a data hub in many services, and administrators are controlling the number of Kafka brokers according to their traffic and capacity.
      In this process, partition(logical unit where messages are stored) migration in Kafka is a costly operation because it is possible after all the partition data has been replicated to the new broker.
      This research focuses on the fact that the role of the storage-based message broker may be only a cache and storage interface, and that SDS (Software Defined Storage) such as Ceph is widely used.
      Kafka stores messages in a block device through a VFS (Virtual File System) to store messages. Separately, this research directly stores the data in the SDS, and the broker provides the interface and cache system.
      To do this, the system requires to store messages in SDS, broker coordination, and partition management within the broker.
      In this research, we propose a message storage method that can access messages with constant time using fixed size index objects.
      It also discusses how to provide self-coordination between brokers via SDS without using a separate coordination solution, as well as managing partitions and optimizing IO.
      Using this research, it would be possible to provide a message broker as a service capable of fast migration to tenants in a environment that has large scale SDS resources(eg, cloud providers, provides some of the SDS resources to tenants).
      In addition, because of the fast migration, computing resources can be saved by performing migration to other broker and shutting down idle brokers when traffic is low. This means you can lower TCO(Total Cost of Ownership).
      In addition, when using Kafka, brokers are executed in a virtual machine and SDS is used as a block device. In this case, broker-level replication is performed at the broker application level to store messages, Replication is performed again, so there is a problem that the same message replica is generated more than necessary. This research shows that message replication is dependent on SDS's own replication, so it can reduce the network traffic of broker application and storage capacity of SDS (broker level Replica 3 copy: 66% reduction).
      In addition, this research shows that the performance is better than the Kafka by 20 ~ 30%. If we can develop this research further and use it at the product level, we will convert the project into open source and more evolving it.

      더보기

      국문 초록 (Abstract)

      스토리지 기반 메시지 브로커인 Kafka는 데이터 허브로써 많은 서비스에서 사용 중이며, 관리자는 트래픽이나 용량 등을 고려하여 상황에 맞게 Kafka 브로커 수를 조절하고 있다. 이때, Kafka에서의 파티션(메시지들이 기록되어 있는 논리 단위) 마이그레이션은 파티션 데이터를 모두 새로운 브로커로 복제한 이후에 가능하기 때문에 비용이 큰 작업으로 볼 수 있다.
      본 연구는 스토리지 기반 메시지 브로커의 역할이 캐시와 스토리지 인터페이스에 불과할 수도 있다는 점과 Ceph와 같은 SDS(Software Defined Storage)가 많이 사용되고 있다는 점을 착안하여 기존 Kafka가 메시지 저장을 위해 VFS(Virtual File System)를 통하여 블록 디바이스에 메시지를 저장하는 것과 달리 SDS에 직접적으로 데이터를 저장하고 브로커는 이에 대한 인터페이스 제공과 캐시 역할을 수행하도록 하였다.
      이를 수행하기 위해서는 메시지를 SDS에 저장하는 방법과 브로커 코디네이션, 브로커 내의 파티션 관리 기법 등이 필요하다. 본 연구에서는 고정 사이즈의 인덱스 오브젝트들을 이용하여 상수 시간으로 메시지 접근이 가능한 메시지 저장 방법을 제안하고 있다. 또한, 별도의 코디네이션 솔루션을 사용하지 않고 SDS를 경유하여 브로커들 상호간 자체 코디네이션을 제공하는 방법, 그리고 파티션의 관리와 IO 최적화 등도 함께 다루고 있다.
      본 연구 내용을 활용한다면 대규모의 SDS 자원을 보유하고 있고 SDS 자원의 일부를 테넌트에게 제공하는 환경(예:클라우드 프로바이더)에서 테넌트에게 고속 마이그레이션이 가능한 메시지 브로커를 서비스 형태로 제공하는 것이 가능할 것이다. 이를 통해 테넌트는 트래픽이 적어지는 경우 파티션을 다른 브로커로 빠른 속도로 마이그레이션하고 아이들 상태의 브로커를 종료하여 컴퓨팅 리소스를 절감하는 등 브로커 수를 상황에 맞게 빠른 속도로 변화시켜 더욱 더 TCO (Total Cost of Ownership)를 낮출 수 있을 것이다.
      또한 기존 Kafka를 사용할 때 브로커를 가상 머신에서 실행하고 SDS를 블록 디바이스 형태로 물려 사용하는 경우가 있는데, 이런 경우 메시지의 저장을 위해 브로커 어플리케이션 레벨에서 브로커 간 Replication을 수행하고 개별 브로커의 블록 디바이스 레벨에서 Replication을 또 수행하기 때문에 동일 메시지 Replica가 필요 이상으로 생성되는 문제가 있었다. 본 연구는 메시지의 Replication을 SDS 자체 Replication에 의존적인 형태를 보이기 때문에 이러한 중복 문제가 없는 것은 물론 브로커 어플리케이션의 네트워크 트래픽과 SDS의 스토리지 용량을 절감(브로커 간 3 Replica인 경우 66% 감소)하는 효과를 보일 수 있다.
      또한 본 연구는 위의 강점과 더불어 성능 또한 기존 Kafka와 비교하여 20~30% 이상 좋은 성능을 보이고 있다. 본 연구를 더 발전시켜 프로덕트 레벨에서 사용할 수준이 되면 해당 프로젝트를 오픈소스로 전환하여 발전시켜 나가고자 한다.
      번역하기

      스토리지 기반 메시지 브로커인 Kafka는 데이터 허브로써 많은 서비스에서 사용 중이며, 관리자는 트래픽이나 용량 등을 고려하여 상황에 맞게 Kafka 브로커 수를 조절하고 있다. 이때, Kafka에...

      스토리지 기반 메시지 브로커인 Kafka는 데이터 허브로써 많은 서비스에서 사용 중이며, 관리자는 트래픽이나 용량 등을 고려하여 상황에 맞게 Kafka 브로커 수를 조절하고 있다. 이때, Kafka에서의 파티션(메시지들이 기록되어 있는 논리 단위) 마이그레이션은 파티션 데이터를 모두 새로운 브로커로 복제한 이후에 가능하기 때문에 비용이 큰 작업으로 볼 수 있다.
      본 연구는 스토리지 기반 메시지 브로커의 역할이 캐시와 스토리지 인터페이스에 불과할 수도 있다는 점과 Ceph와 같은 SDS(Software Defined Storage)가 많이 사용되고 있다는 점을 착안하여 기존 Kafka가 메시지 저장을 위해 VFS(Virtual File System)를 통하여 블록 디바이스에 메시지를 저장하는 것과 달리 SDS에 직접적으로 데이터를 저장하고 브로커는 이에 대한 인터페이스 제공과 캐시 역할을 수행하도록 하였다.
      이를 수행하기 위해서는 메시지를 SDS에 저장하는 방법과 브로커 코디네이션, 브로커 내의 파티션 관리 기법 등이 필요하다. 본 연구에서는 고정 사이즈의 인덱스 오브젝트들을 이용하여 상수 시간으로 메시지 접근이 가능한 메시지 저장 방법을 제안하고 있다. 또한, 별도의 코디네이션 솔루션을 사용하지 않고 SDS를 경유하여 브로커들 상호간 자체 코디네이션을 제공하는 방법, 그리고 파티션의 관리와 IO 최적화 등도 함께 다루고 있다.
      본 연구 내용을 활용한다면 대규모의 SDS 자원을 보유하고 있고 SDS 자원의 일부를 테넌트에게 제공하는 환경(예:클라우드 프로바이더)에서 테넌트에게 고속 마이그레이션이 가능한 메시지 브로커를 서비스 형태로 제공하는 것이 가능할 것이다. 이를 통해 테넌트는 트래픽이 적어지는 경우 파티션을 다른 브로커로 빠른 속도로 마이그레이션하고 아이들 상태의 브로커를 종료하여 컴퓨팅 리소스를 절감하는 등 브로커 수를 상황에 맞게 빠른 속도로 변화시켜 더욱 더 TCO (Total Cost of Ownership)를 낮출 수 있을 것이다.
      또한 기존 Kafka를 사용할 때 브로커를 가상 머신에서 실행하고 SDS를 블록 디바이스 형태로 물려 사용하는 경우가 있는데, 이런 경우 메시지의 저장을 위해 브로커 어플리케이션 레벨에서 브로커 간 Replication을 수행하고 개별 브로커의 블록 디바이스 레벨에서 Replication을 또 수행하기 때문에 동일 메시지 Replica가 필요 이상으로 생성되는 문제가 있었다. 본 연구는 메시지의 Replication을 SDS 자체 Replication에 의존적인 형태를 보이기 때문에 이러한 중복 문제가 없는 것은 물론 브로커 어플리케이션의 네트워크 트래픽과 SDS의 스토리지 용량을 절감(브로커 간 3 Replica인 경우 66% 감소)하는 효과를 보일 수 있다.
      또한 본 연구는 위의 강점과 더불어 성능 또한 기존 Kafka와 비교하여 20~30% 이상 좋은 성능을 보이고 있다. 본 연구를 더 발전시켜 프로덕트 레벨에서 사용할 수준이 되면 해당 프로젝트를 오픈소스로 전환하여 발전시켜 나가고자 한다.

      더보기

      목차 (Table of Contents)

      • 제1장 서론 1
      • 제2장 배경 지식 5
      • 제1절 Traditional Message Broker (ex: RabbitMQ) 5
      • 1. 메시지 브로커의 필요성 5
      • 제1장 서론 1
      • 제2장 배경 지식 5
      • 제1절 Traditional Message Broker (ex: RabbitMQ) 5
      • 1. 메시지 브로커의 필요성 5
      • 2. 메시지 전달 보장 5
      • 3. 전통적인 메시지 브로커의 한계 6
      • 제2절 Storage based Message Broker (ex: Kafka) 7
      • 1. 토픽과 파티션, 파티션의 활용 (FIFO) 7
      • 2. 프로듀서, 브로커, 컨슈머의 관계 8
      • 3. 토픽 메타 데이터 8
      • 4. 컨슈머와 컨슈머 그룹 9
      • 5. 스토리지 구조 (Segment) 10
      • 6. 스토리지 구조 (Index) 11
      • 7. ISR과 파티션 마이그레이션 11
      • 제3절 Ceph 12
      • 1. CEPH 인터페이스 그리고 이와 CEPH-KAFKA의 관계 12
      • 2. RADOS 그리고 CEPH-KAFKA에서의 활용 13
      • 제4절 Seastar 14
      • 제3장 CEPH-KAFKA 아키텍처 15
      • 제1절 아키텍처 동인 15
      • 제2절 제안하는 아키텍처 개요 17
      • 제3절 클라이언트 요청 처리 과정 22
      • 1. TCP Listener 초기화와 Client Accept 22
      • 2. Request 23
      • 3. 고정 길이 Read 24
      • 4. 가변 길이 Read 25
      • 제4절 메시지 저장과 인덱싱 29
      • 제5절 브로커 코디네이션 32
      • 제6절 파티션 관리 및 부트스트랩 33
      • 1. 파티션 담당 브로커와 담당 CPU Core 33
      • 2. 파티션 인스턴스의 생성, 업데이트 및 삭제 34
      • 3. 파티션 부트스트랩 35
      • 제7절 파티션 마이그레이션 36
      • 1. 정상 상황에서의 파티션 마이그레이션 36
      • 2. 브로커 장애 상황에서의 파티션 마이그레이션 36
      • 제8절 IO 37
      • 1. Partition Local IO Queue에 IO 기입 37
      • 2. Partition IO Trigger Queue에 파티션 기입 38
      • 3. Core IO Scheduler가 IO List Queue로 IO를 묶어 전달 38
      • 4. Partition IO Thread 39
      • 제9절 캐시 40
      • 제4장 성능 41
      • 제5장 결론 및 향후 계획 44
      • 참고문헌 46
      • ABSTRACT 50
      더보기

      분석정보

      View

      상세정보조회

      0

      Usage

      원문다운로드

      0

      대출신청

      0

      복사신청

      0

      EDDS신청

      0

      동일 주제 내 활용도 TOP

      더보기

      주제

      연도별 연구동향

      연도별 활용동향

      연관논문

      연구자 네트워크맵

      공동연구자 (7)

      유사연구자 (20) 활용도상위20명

      이 자료와 함께 이용한 RISS 자료

      나만을 위한 추천자료

      해외이동버튼