Implement the in-memory index using roaring bitmaps: a concurrent map of 16-byte term key → roaring bitmap pointer, protected by a read-write lock. Includes:
- Term key computation:
hash(value bytes || field byte) → 16 bytes
Add(termKey, eventID) for ingestion
Lookup(termKey) → bitmap for queries
Out of scope:
- AND/OR intersection across multiple bitmaps
- Ledger range trimming using the ledger offset array
- Ascending and descending iteration over matching event IDs
Implement the in-memory index using roaring bitmaps: a concurrent map of 16-byte term key → roaring bitmap pointer, protected by a read-write lock. Includes:
hash(value bytes || field byte)→ 16 bytesAdd(termKey, eventID)for ingestionLookup(termKey)→ bitmap for queriesOut of scope: