-
Notifications
You must be signed in to change notification settings - Fork 3.7k
[improve][pip] PIP-418: Determine the behaviors for components that rely on BookKeeper when BookKeeper is not used #24296
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
[improve][pip] PIP-418: Determine the behaviors for components that rely on BookKeeper when BookKeeper is not used #24296
Conversation
…ely on BookKeeper when BookKeeper is not used
| The following components leverages this factory to create their own `BookKeeper` instances: | ||
| - `BookkeeperSchemaStorageFactory`: The default schema registry storage configured by `schemaRegistryStorageClassName` | ||
| - `BookkeeperBucketSnapshotStorage`: A non-default built-in delayed delivery tracker configured by `delayedDeliveryTrackerFactoryClassName` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I’m not entirely sure why separate BookKeeper instances are used for these two cases. While this doesn’t directly affect the goal of the proposal, should we consider addressing or revisiting this as part of a broader cleanup?
| | Schema Registry | Fail fast | | ||
| | Delayed Delivery Tracker | Fail fast if it's `BucketDelayedDeliveryTrackerFactory` | | ||
| | Compaction Service | Fallback to a dummy implementation | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These three items refer to Pulsar’s default implementations, correct? If users have provided their own plugin implementations, they shouldn’t be affected — is that understanding accurate?
| ```java | ||
| public interface BookkeeperManagedLedgerStorageClass extends ManagedLedgerStorageClass { | ||
| /* ... */ | ||
| BookKeeperClientFactory getBookKeeperClientFactory(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it designed to be used by BookkeeperSchemaStorageFactory and BookkeeperBucketSnapshotStorage?
I mean, BookkeeperManagedLedgerStorageClass already has getBookKeeperClient, and should all Pulsar's internal implementations use the same bookkeeper client? Maybe I missed something.
Co-authored-by: Penghui Li <[email protected]>
Documentation
docdoc-requireddoc-not-neededdoc-completeMatching PR in forked repository
PR in forked repository: