Big pool can lead to huge memory usage in certain loads. See #7640 for detailed discussion.
This allows encoders to be re-used and maintained in a pool to avoid allocating new ones on every compactions and write of an encoded block. The pool used is not a sync.Pool to ensure that the encoders will not be garbage collected.