평온하게 빠른 I/O 버퍼 (벤치마크 포함) | SereneDB
sdb::message::Buffer는 네트워크 데이터 전송 최적화를 위해 설계된 고성능 동시성 지원 I/O 버퍼입니다.
이 버퍼는 FIFO 순서 보장, 확장 가능한 크기, 그리고 단일 생산자-단일 소비자(SPSC) 모델을 기반으로 하여, 최소한의 원자적 연산으로 락 프리(lock-free) 동작을 구현합니다.
특히, 커밋된 데이터와 미커밋 데이터를 구분하여 데이터 누적과 전송 시점을 제어하며, 즉시 전송이 필요한 데이터는 플러시(Flush) 기능을 통해 네트워크 지연을 최소화합니다.
벤치마크 결과, folly 라이브러리의 IOBuf 대비 모든 테스트 케이스에서 더 빠른 성능을 보였으며, 간결한 API를 통해 실용적이고 효율적인 메시지 버퍼링 솔루션을 제공합니다.
이 구현은 boost::asio와 연동하여 TCP 전송 시 Nagle 알고리즘 비활성화(NO_DELAY 설정)로 패킷 전송 지연을 방지하며, GitHub에서 소스 코드와 벤치마크를 확인할 수 있습니다.