A comprehensive study on fault tolerance in stream processing systems