bump Tao Jiuming <dao...@apache.org> 于2025年1月15日周三 15:57写道:
> Hi all, > > I open PIP-404 to introduce per ledger properties, which will add a > `properties` field to `LedgerInfo` to store extra properties for every > `Ledger`. > > # Background knowledge > As we don't have a secondary index on the Bookkeeper, so we can't query > entries by message metadata efficiently. > The `ManagedCursor` provides a method `asyncFindNewestMatching` to find > the newest entry that matches the given > predicate by binary search(See `OpFindNewest.java`). > In https://github.com/apache/pulsar/pull/22792, we optimized `seeking by > timestamp` by calculating > the range of ledgers that may contain the target timestamp by > `LedgerInfo#timestamp` and we don't need to scan all > ledgers. > However, when we enabled `AppendIndexMetadataInterceptor` and we want to > query entries by `BrokerEntryMetadata#index`, > there is no more efficient way, > we have to scan all ledgers by binary search to find the target entry. > > # Motivation > Introduce per-ledger properties and we can store the extra per-ledger > properties in the `LedgerInfo`, > so we can query entries by `incremental index` more efficiently, say, > `BrokerEntryMetadata#index`. > > > PR link: https://github.com/apache/pulsar/pull/23837/files > > Thanks, > Tao Jiuming(dao-jun) > >