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.