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]

Reply via email to