nicktelford opened a new pull request, #22323: URL: https://github.com/apache/kafka/pull/22323
Introduces the core building blocks for transactional state stores: TransactionBuffer, AbstractTransactionBuffer, and StagedMergeIterator. TransactionBuffer defines the staging interface for buffering writes before a transaction commits. AbstractTransactionBuffer provides a ConcurrentSkipListMap-backed implementation. Reads on the owner thread (the stream thread driving the task) take a lock-free fast path directly against the staged map; reads on non-owner threads, such as interactive query, snapshot the staged entries at iteration start for a consistent view without blocking writers. StagedMergeIterator is a ManagedKeyValueIterator that merges the staged overlay with a base store iterator, respecting point-delete tombstones for entries deleted within the transaction. It registers with the store's open-iterator tracking so RocksDB can defer compactions while it is live. The abstract base is tombstone-agnostic: point deletes are handled uniformly by all implementations. All types are generic over the key type so that window and session stores can reuse the same framework with composite keys. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
