HBASE-11544 made NextState the new return type of RegionScanner#nextRaw InternalScanner#next to allow state information to be passed back from a scanner (it was formerly a boolean indicating whether or not more values existed). The change in this return type led to an increased amount of objects being created... In the case that a scan spanned millions of rows, there was the potential for millions of object to be created.
This issue looks to reduce the large amount of object creations from potentially many to at most one per RPC request.
Please see the tail of the parent issue for relevant discussion on the design decisions related to this solution. This sub-task has been filed as it seems more appropriate to address the fix here rather than as an addendum to the parent.