Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Duplicate
-
None
-
None
-
None
-
None
Description
We have a lot of code that updates/modifies entries in the metadata tables, and provides metadata information for tablets to clients. It'd be better (code readability, modifiability) if we could abstract these metadata operations into a usable API, rather than have separate code spread out for the different kinds of metadata (zookeeper for the root table, root table for the metadata tablets, metadata table for user tablets).
A single API, with a factory to get the right implementation, depending on which table's metadata is being manipulated, would be much easier to work with and would help avoid bugs related to tablet management, updating table state, etc.
A minimal API has been added (o.a.a.core.metadata.MetadataServicer) when the root tablet was moved to its own table, as a starting point, but was not fully leveraged due to time constraints.
To be clear, this improvement is entirely refactoring of internal code. User experience should have no impact (unless it helps find/prevent bugs).
Attachments
Issue Links
- is related to
-
ACCUMULO-2448 Add unit tests to o.a.a.core.metadata
- Resolved
-
ACCUMULO-2268 Use conditional mutations to update metadata table
- Resolved
- supercedes
-
ACCUMULO-2599 Class ServicerForRootTablet accept Credentials but never uses them
- Resolved