Remove support for thread sharding of `{,Keyed}RecyclingPool`.
It is hard to evaluate but it was likely a poor tradeoff. While it increased
the likelihood that an object got reused by the same thread, it also increased
memory usage.
In several simple scenarios it did not help or made things worse:
* Each involved thread uses an object for a long time, then drops it and soon
picks it up again. For example if a thread does many compression or
decompression sessions, with little else to do between sessions. In this case
each object is already most likely to be picked up by the same thread.
* Each involved thread uses only one object. Then objects are not recycled until
the shard number wraps around, they sit in memory for a long time, and they
still get picked up by a different thread than the last one using them.
Thread sharding helped only if there are many involved threads and they have an
object picked for short amounts of time.
Thread sharding would make more sense if it was smarter: if it gave preference
to keeping thread affinity, without keeping many independent pools.
PiperOrigin-RevId: 777488376
Riegeli/records is a file format for storing a sequence of string records, typically serialized protocol buffers. It supports dense compression, fast decoding, seeking, detection and optional skipping of data corruption, filtering of proto message fields for even faster decoding, and parallel encoding.
See documentation.
Riegeli file format will only change in a backward compatible way (i.e. future readers will understand current files, but current readers might not understand files using future features).
Riegeli C++ API might change in incompatible ways.