Skip to content

[Feature] Support for prefix matching and index persistence #1389

@tew-axiom

Description

@tew-axiom

What would you like to be added:

Support for prefix matching and index persistence in dubbo-admin's indexing system. Specifically:

  1. Prefix Matching Support:

    • Extend index query logical operators beyond simple equality matches to support prefix-based searches
    • For memory storage: Implement Trie data structure to enable efficient prefix matching
    • For database storage: Design and implement database queries that support prefix matching along with other composite conditions
  2. Index Persistence for Database Storage:

    • Create a new database table to persist indexes when using DB-backed storage
    • Ensure index consistency across multiple replicas in Master-Slave deployment architecture
    • Enable all replicas to access persisted indexes for frontend query operations
  3. Indexer Refactoring:

    • Expand logical operators in the Indexer definition beyond the current "Equals" operator
    • Refactor the Indexer interface to support extended query capabilities
    • Update dependent components including Manager and Console to work with the new indexing system

Why is this needed:

Related to #1381 proposal.

Currently, dubbo-admin's indexing system has the following limitations:

  • Only supports simple equality matching, lacking prefix-based search capabilities
  • In multi-replica deployments with database storage, indexes are only maintained in memory on the leader replica, causing query inconsistencies
  • The current index structure (map[idx_value][resource_key]) is too simple to support advanced query requirements

This enhancement will:

  • Enable more flexible and powerful search capabilities for users querying resources
  • Ensure data consistency and availability in distributed deployments
  • Improve the overall scalability and reliability of dubbo-admin in production environments

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions