We have a usecase (for Phoenix) where we want to let the server know that the client is still around. Like a client-side heartbeat.
Doing a full heartbeat is complicated, but we could add the ability to make scanner call with caching set to 0. The server already does the right thing (it renews the lease, but does not advance the scanner).
It looks like the client (ScannerCallable) also does the right thing. We cannot break ResultScanner before HBase 2.0, but we can add a renewLease() method to AbstractClientScaner. Phoenix (or any other caller) can then cast to ClientScanner and call that method to ensure we renew the lease on the server.
It would be a simple and fully backwards compatible change. giacomotaylor