keith-turner commented on issue #3823:
URL: https://github.com/apache/accumulo/issues/3823#issuecomment-1781527230
To address the problem outlined in the previous comment between merge and
offlline table, could replace offline/online of table with per tablet states.
Could have the following tablet states. Tablet states would generalize and
replace the existing tablet operation id column. It would offer the same
functionality that operation id currently offers, plus more with the concept of
enabled and disabled.
| Tablet state | Description |
|-----------------|----------------|
| NEW | While a table is in the process of being created its tablets would
have this state. |
ENABLED | A tablet in this state is available for read,write, compaction,
split, merge, etc. |
DISABLED | A tablet in this state is only available for clone, delete, and
export table. All other operations should fail |
SPLITTING | A tablet in this state is currently splitting and is not
available for other operations |
MERGING | A tablet in this state is currently merging and is not available
for other operations |
DELETING | When a tablet is in this state, its table is in process of being
deleted and its not available for any operations |
Below is a table of valid tablet state transitions.
| From | to NEW | to ENABLED | to DISABLED | to SPLITTING |
to MERGING | to DELETING |
|---------------|-|-|-|-|-|-|
| NEW | | ✓ | ✓ |
| | |
| ENABLED | | | ✓ |
✓ | ✓ | ✓ |
| DISABLED | | ✓ | |
| | ✓ |
| SPLITTING | | ✓ | |
| | |
| MERGING | | ✓ | |
| | |
| DELETING | | | |
| | |
The table operations `offline()` and `online()` could possibly replaced with
`enable(RowRange range)` and `disable(RowRange range)`. The impl of
`offline()` and `online()` could call `enable(RowRange range)` and
`disable(RowRange range)` with infinite ranges.
--
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]