DEV Community

NeNoVen
NeNoVen

Posted on

Message Queue and NoSQL with 10x Performance Boost

개요

지난 10년동안 하드웨어 자원의 고스펙이 올라갔다. 고스펙 cpu memory 가 성능이 좋아짐에 따라, 소프트웨어도 해당 스펙에 맞게 작동하도록 설계되어야한다. 고스펙에 사용가능한 kafka 10배 향상된 스토리지 nosql db의 전략 방식을 소개한다.

Nosql DB 실라 db 레드판다 (ScyllaDB and Redpanda)

성능의 향상 전략

  1. 비공유 아키텍처 sharing noting architecture
    1. 서버 당이 아닌 core 당 처리로 병렬처리 가능(요청당 단일 코어의 스레드로 고정)
      1. 비공유 함으로써 각각 독립적으로 수행 ( 코어간의 메모리 경합이없음)
    2. 비동기 프로그래밍 지원 (동기식일경우 core 전환시 컨텍스트 비용이 매우큼)
      1. 비동기 네트워크, 비동기 파일I/O, 비동기 core간의 통신 지원
  2. 기존의 스토리지와 같게 외부 인터페이스는 동일하게 유지하지만 내부는 C++ 저수준 언어로 구현
    1. 꼬리 지연 시간은 낮으며 워크로드 규모에 따라 예측 가능성이 높습니다
  3. 소프트웨어 자체 파일 I/O ,페이지 캐시 사용
    1. zero copy 로 성능향상

단점

  1. 무료가아님 비용이비쌈
  2. 소프트웨어 복잡도 높다
    1. C++ 이해하기 어렵다.
    2. 비동기 프로그래밍의 추론하기 어렵다.

Top comments (0)