https://zhuanlan.zhihu.com/p/30751039
https://zhuanlan.zhihu.com/p/37106443
Wherein when the shuffle on buffer_size, refer to:
https://juejin.im/post/5b855d016fb9a01a1a27d035
https://user-gold-cdn.xitu.io/2018/8/28/16580f396628e48b
The other is to be placed before the shuffle map, otherwise it will be very time-consuming