keith-turner opened a new pull request, #3143:
URL: https://github.com/apache/accumulo/pull/3143
The following changes were made for this PR.
* Rename TabletLocator to TabletCache. This was done because the behavior
of the class has slightly changed from locating tablets to more generally
caching tablet information needed on the client side.
* Support caching offline tables in TabletCache for eventually consistent
scans. This just caches the extents w/o a location for an offline table.
* Modified the Scanner and BatchScanner to work with the offline cache.
This required reorganizing the code to move where resolution of what server is
to scan is done. The code that locate tservers and determines which scan
servers to use is all colocated in the Scanner and BatchScanner code now. This
colocation had to be done for this change to make it clean. In retrospect it
needed to be done anyway, but that was only discovered when trying to make this
change.
* Introduced a new type in ThriftScanner code called ScanAddress. This
type cleanly specifies what type of server is being used without putting weird
constants in a string field (what the previous code was doing). The scan code
uses the TabletCache+ScanServerSelector to determine the next ScanAddress to
use get the next batch of data for a scanner.
I have manually tested this code and it works. I am finding that testing
this code in ITs may be really tricky because a lof the changes in the PR
revolve around client side cache changes. Many table operations clear the
client side cache, so that make testing tricky. For example testing something
like splitting an offline table that has cached extents will clear the cache.
For local manual testing I created [these
programs](https://gist.github.com/keith-turner/f2159111b025e600a6e0abbaba1d92f3)
to work around that.
I have been working on this over many days, I want to go back and look over
my changes now that its complete. That is why I posted this as a draft, in
case any one wants to look over it while I review it myself.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]