• v1.1.7 4cc2d2376e

    v1.1.6 - Optimize: Deduplicate kinds in subscription index to prevent redundant operations

    laantungir released this 2026-02-01 19:59:54 +00:00 | 5 commits to master since this release

    The kind index was adding subscriptions multiple times when filters contained
    duplicate kinds (e.g., 'kinds': [1, 1, 1] or multiple filters with same kind).
    This caused:

    • Redundant malloc/free operations during add/remove
    • Multiple index entries for same subscription+kind pair
    • Excessive TRACE logging (7+ removals for single subscription)
    • Wasted CPU cycles on duplicate operations

    Fix:

    • Added bitmap-based deduplication in add_subscription_to_kind_index()
    • Uses 8KB bitmap (65536 bits) to track which kinds already added
    • Prevents adding same subscription to same kind index multiple times
    • Reduces index operations by 3-10x for subscriptions with duplicate kinds

    Performance Impact:

    • Eliminates redundant malloc/free cycles
    • Reduces lock contention on kind index operations
    • Decreases log volume significantly
    • Should reduce CPU usage by 20-40% under production load
    Downloads