Skip to content

Table Delete Fate contention #6374

@dlmarion

Description

@dlmarion

The CleanUp step of the Delete Fate operation configures the MetaDataTableScanner so that it can compute each tablets location. When all tablets are unassigned, then it can move on to the next step in the operation.

However, MetaDataTableScanner.configureScanner calls Manager.merges which iterates over every table to read its merge information from ZooKeeper. Manager.getMergeInfo is synchronized, causing Delete Fate Ops to block.

MetaDataTableScanner.createTabletLocationState, called by CleanUp.isReady, doesn't use the Merge information.

It's also possible that when CleanUp calls MetaDataTableScanner.configureScanner, null could be passed for the Manager state object.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No fields configured for Bug.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions