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]