+1 (binding) Thanks, Yunze
On Tue, Feb 18, 2025 at 6:00 PM Lari Hotari <lhot...@apache.org> wrote: > > +1 (binding) > > -Lari > > On 2025/02/11 06:37:59 Tao Jiuming wrote: > > 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 > > > > Please help review the PIP and vote. > > > > Thanks, > > Tao Jiuming(dao-jun) > >