Skip to content

Broker-level dynamic config + query blocklist #18964

Description

@mshahid6

Motivation

Currently, Druid has a coordinator config but no broker-level dynamic config which can be appropriate for features like query blocklist enforcement, data aliases, routing rules, feature flags etc. The primary motivation for having a broker config is for blocklisting queries dynamically in the situation there is a rogue app/user spamming the cluster without relying on static configs/restarts.

Proposed changes

Broker config

Similar to CoordinatorDynamicConfig, introduce a broker-level dynamic config persisted in metadata store, polled periodically by brokers. Admin APIs to GET and POST configs (UI can be added later).

Query Blocklist

Enforce at broker query lifecycle, blocklist based on datasource in query or additionally, query context matches, querytype, remote address etc.

Rationale

Alternatively, we could reuse coordinator dynamic config for query blocklisting but it is not the appropriate enforcement point and would require broker to pull coordinator config. Moreover, broker config can be used for other future features such as datasource aliasing, routing rules or feature flags.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions