일반적인 어플리케이션은 데이터 전송 시
disk -> read-buffer -> Application-buffer -> socket-buffer -> NIC-buffer
의 과정을 거쳐 데이터를 전송한다.
카프카는 커널 명령어 중 sendfile() 함수를 이용하여 애플리케이션 버퍼에 데이터를 올리지 않고
disk -> read-buffer -> socket-buffer -> NIC-buffer
의 과정으로 데이터를 전송한다.
SSL을 적용하는경우 암호화를 위한 처리가 필요하므로, 어플리케이션버퍼를 거치게 된다.
Consumer의 요청이 있는 경우 처리된 데이터는 1회성으로 바로 사라지지 않고 1차로 Page Cache에 저장된다.
이후 동일한 데이터의 요청이 있는 경우 캐시에 저장된 데이터를 우선 읽어들인다.
디스크에 데이터 저장 시 데이터를 순차적으로 저장함으로써 disk seek time을 줄일 수 있다.
디스크에 파일 저장 시 작은 파일을 여러개 생성하지 않고 큰 파일(default: 1GB)로 저장한다.
이후 데이터의 삭제가 있는 경우에 재조정이나, 일부 삭제를 시도하지 않고