개요

배칭 (Batching)이란 시스템의 자원을 순차적으로 하나씩 처리하는 것이 아니라 모아서 한번에 처리하는 것을 의미한다. 예를 들어서 Read operation을 배칭 없이 수행한다면, 100K씩 모든 리눅스의 파일 시스템 스택을 타고 처리되어야 한다. 그러나 100k의 Read-operation을 묶어서 한번에 처리한다면, 한번만 파일 시스템 스택을 타서 모든 명령들을 처리할 수 있다. 따라서 Throughput이 오르는 효과를 가져올 수 있다. 그러나 각각의 Operation에 드는 Latency는 모아서 처리하기 때문에 커질 것이다.

배칭은 이처럼 Throughput에는 도움이 되지만, Latency에는 역효과가 날 수도 있다. (여기서 날 수도있다라고 표현한 이유는, 배칭하는데 드는 Cost보다 만약 Convoy effect혹은 각각의 Operation에 드는 Cost가 클 경우에는, Batching이 오히려 Latency에 도움이 될 수도 있기 때문이다. 대부분의 경우에 Batching은 Throughput (Higher is better)과 Latency (Lower is better)모두 증가시킨다.)