I think we should store the recorded docs and buckets on a per-AtomicReader basis: this will prevent us from having to record a readerId for each (docId, bucketOrdinal) pair?

Regarding the recording of doc IDs and bucket ordinals, I think we should compress them, even if it means that we need to drop recycling. Typically, we could force in-order collection (via `AggregationContext.ensureScoreDocsInOrder`) and then store doc ID deltas and bucket ordinals in two `AppendingPackedLongBuffer` instances?