Why is kafka fast?

Kafka를 빠르게 하는 Zero Copy에 대해 알아보자.


Kafka는 왜 빠른 것일까?

아래와 같은 이유 등으로 Kafka의 성능이 좋다. 오늘은 Zero Copy 에 대해서 자세히 알아보자.

  • 파티션 파일은 OS 페이지캐시 사용
  • Zero Copy
  • 브로커가 하는 일이 비교적 단순
  • 묶어서 보내기, 묶어서 받기 (batch) 가능

Zero Copy?

Zero Copy란?

Zero Copy는 CPU가 한 메모리 영역에서 다른 메모리 영역으로 데이터를 복사하는 작업을 수행하지 않거나 불필요한 데이터 복사를 피하는 컴퓨터 작업을 말한다.

Read without zero copy VS Read with zero copy

what zero-copy means / Ref: ByteByteGo

위 이미지에서 Zero Copy를 이용하는 경우 불필요한 데이터 copy가 발생하지 않고 바로 NIC Buffer를 통해 message를 consume 하는 것을 확인할 수 있다. 이 접근 방식을 사용하면 시간이 약 65% 단축된다고 한다.


Reference