dlmarion commented on PR #3220:
URL: https://github.com/apache/accumulo/pull/3220#issuecomment-1467969709

     There are now 3 PRs up for the OnDemand tablet feature, and I think it's 
functional although I'm sure there are more edge cases to test. 
   
     This PR introduces new API methods to put a table in an onDemand state (vs 
online or offline). The implementation of this creates a Fate operation that 
ends up running the `ChangeTableState` Fate op. The Manager has been updated 
such that tablets for a table in the onDemand state will not be hosted, just 
like an offline table.
   
     [37](https://github.com/dlmarion/accumulo/pull/37) builds on this and 
contains modifications for onDemand tablets to be brought online. This is done 
via the `TabletLocator`, when the client is unable to find a Tablet location 
and it's an onDemand table, then it makes a call to a new Thrift API method 
called `bringOnDemandTabletOnline`. When this method is called, the 
implementation (`TabletClientHandler.bringOnDemandTabletsOnline`) inserts an 
"ondemand" column into the metadata for the tablet. The 
`TabletStateChangeIterator` has been modified to return the 
`TabletLocationState` via the `MetaDataTableScanner` so that the 
`TabletGroupWatcher` running in the Manager will see the tablet as unassigned 
and will assign it using the normal tablet assignment process.
   
     [38](https://github.com/dlmarion/accumulo/pull/38) builds on 37 and 
contains modifications for onDemand tablets to be unloaded. This is done by a 
new Thread in the TabletServer that calls the new method 
`evaluateOnDemandTabletsForUnload` at some interval (defined by a new 
property). `evaluateOnDemandTabletsForUnload` uses an implementation of a new 
SPI `OnDemandTabletUnloader` class (default implementation provided) to 
determine which online tablets for an onDemand tablet should be unloaded. For 
each tablet returned, the method removes the "ondemand" column from the 
metadata table for the tablet. Like in 37, the `TabletStateChangeIterator` 
returns the information to the `TabletGroupWatcher` running in the Manager and 
it will unload the tablet using the normal process.


-- 
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