In this work, we present a new order-preserving mechanism for software RAID, called Order-Preserving All Flash Array, O-AFA. O-AFA is designed for barrier-compliant devices in a RAID system. Our contributions are four-fold. First, Barrier Stripe is employed to preserve the storage order in individual storage devices in the storage array. The cache barrier command stripe is dispatched to a flash array. Second, Inter-stripe epoch management is employed to follow the ordering constraint imposed by the filesystem. When the Linux MD dispatches the current stripe, it receives the information on whether there is a remaining write request among un-dispatched stripes. Based on this information, the Linux MD converts the current stripe to dispatch to the Barrier Stripe or not. Third, we use a shadow-page aware dispatch mechanism to replace the transfer overhead with the dispatch overhead. It brings the performance gain for the IO handling by 19%. Fourth, we use a Stripe-Width Checksum to guarantee inter-disk atomicity. The new order-preserving mechanism of O-AFA brings 69% performance gain at varmail and 80% for OLTP-Insert on MySQL.
본 논문에서는 Order-Preserving All Flash Array, O-AFA 라고 하는 소프트웨어 레이드를 위한 새로운 순 서 보장 기법을 제안한다. O-AFA는 cache barrier 커맨드를 지원하는 디스크들로 구성된 RAID 시스템을 위해 설계되었다. 다음은 본 논문의 기여 4가지를 요약한 것이다. 첫째, Barrier Stripe은 스토리지 어레이 의 개별 스토리지 장치에서 스토리지 순서를 유지하기 위해 사용된다. cache barrier 스트라이프는 플래시 어레이로 디스패치된다. 둘째, Inter-stripe epoch management는 파일 시스템에 의해 지정된 순서를 따르기 위해 사용된다. Linux MD가 스트라이프를 디스패치할 때, 디스패치되지 않은 스트라이프 중 남아있는 쓰기 요청이 있는지에 대한 정보를 확인한다. 이 정보를 기반으로 Linux MD는 현재 스트라이프를 Barrier Stripe 로 디스패치할지를 결정한다. 셋째, 트랜스퍼 오버헤드를 디스패치 오버헤드로 대체하기 위해 Shadow-page Aware Dispatch 메커니즘을 사용한다. Shadow-page Aware Dispatch는 19%의 IO 처리 성능 향상을 가져 온다. 넷째, 디스크 간 순서를 보장하기 위해 Stripe-Width Checksum을 사용한다. O-AFA의 새로운 순서 보존 메커니즘은 MySQL에서 varmail의 경우 69%, OLTP-Insert의 경우 80%의 성능 향상을 가져온다.