public boolean isNeedCursorResult() {
    return needCursorResult;
  }
When the server is slow or we scan a table with many deleted data or we use a sparse filter,
the server will response heartbeat to prevent timeout. However the scanner will return a Result
only when client can do it. So if there are many heartbeats, the blocking time on
ResultScanner#next() may be very long, which is not friendly to online services. Set this to
true then you can get a special Result whose #isCursor() returns true and is not contains any
real data. It only tells you where the server has scanned. You can call next to continue
scanning or open a new scanner with this row key as start row whenever you want. Users can get
a cursor when and only when there is a response from the server but we can not return a Result
to users, for example, this response is a heartbeat or there are partial cells but users do not
allow partial result. Now the cursor is in row level which means the special Result will only
contains a row key. {@link Result#isCursor()} {@link Result#getCursor()} {@link Cursor}
hbase-client/src/main/java/org/apache/hadoop/hbase/client/Scan.java