KAFKA-9925: decorate pseudo-topics with app id#8574
KAFKA-9925: decorate pseudo-topics with app id#8574vvcephei merged 3 commits intoapache:trunkfrom vvcephei:kafka-9925-decorate-pseudo-topics
Conversation
| // the decoration can't be performed until we have the configuration available when the app runs, | ||
| // so we pass Suppliers into the components, which they can call at run time |
There was a problem hiding this comment.
Hopefully, this explains what's going on here.
| if (primaryKeySerializationPseudoTopic == null) { | ||
| primaryKeySerializationPseudoTopic = primaryKeySerializationPseudoTopicSupplier.get(); | ||
| } |
There was a problem hiding this comment.
This (and below) is a bit awkward.
Our requirement is not to call the supplier until after the app starts, but we can call it any time after the app starts.
The natural place would be in configure, but unfortunately, that method is basically useless for our internal serdes. The reason is that we previously decided that configure should be called externally to the DSL, but our internal serdes are constructed internal to the DSL. Plus, configure must be called at run time (when the config is available), but by run time, we can no longer tell whether our serde is "internal" or not. So, there's no good place where we can call configure for our internal serdes.
I'm side-stepping the problem here by just invoking the supplier when we first need to use it, which is also at run time.
| return decoratedTopics; | ||
| } | ||
|
|
||
| public String decoratePseudoTopic(final String topic) { |
There was a problem hiding this comment.
I'm adding a new public method for our specific use case here, to document that we should only need to invoke this method publicly for "pseudo" topics.
| // expected pseudo-topics | ||
| "KTABLE-FK-JOIN-SUBSCRIPTION-REGISTRATION-0000000006-topic-fk--key", | ||
| "KTABLE-FK-JOIN-SUBSCRIPTION-REGISTRATION-0000000006-topic-pk--key", | ||
| "KTABLE-FK-JOIN-SUBSCRIPTION-REGISTRATION-0000000006-topic-vh--value", | ||
| applicationId + "-KTABLE-FK-JOIN-SUBSCRIPTION-REGISTRATION-0000000006-topic-fk--key", | ||
| applicationId + "-KTABLE-FK-JOIN-SUBSCRIPTION-REGISTRATION-0000000006-topic-pk--key", | ||
| applicationId + "-KTABLE-FK-JOIN-SUBSCRIPTION-REGISTRATION-0000000006-topic-vh--value", |
There was a problem hiding this comment.
This verifies the fix: the pseudo topics should also be prefixed. I should have noticed before that they weren't.
arkins
left a comment
There was a problem hiding this comment.
Many thanks for the quick turn around for the fix, with application id appended at the front, the issue should be resolved.
|
Thanks, @arkins ! Shame is a powerful motivator :) |
| // the decoration can't be performed until we have the configuration available when the app runs, | ||
| // so we pass Suppliers into the components, which they can call at run time |
|
Thanks, all! I'll go ahead and merge this. |
Reviewers: Boyang Chen <boyang@confluent.io>, Kin Siu
|
cherry-picked to 2.5 |
Reviewers: Boyang Chen <boyang@confluent.io>, Kin Siu
|
cherry-picked to 2.4 |
…/master` * apache-github/trunk: (45 commits) MINOR: Fix broken JMX link in docs by adding missing starting double quote (apache#8587) KAFKA-9652: Fix throttle metric in RequestChannel and request log due to KIP-219 (apache#8567) KAFKA-9922: Update demo instructions in examples README (apache#8559) KAFKA-9830: Implement AutoCloseable in ErrorReporter and subclasses (apache#8442) KAFKA-9875: Make integration tests more resilient (apache#8578) KAFKA-9932: Don't load configs from ZK when the log has already been loaded (apache#8582) KAFKA-9925: decorate pseudo-topics with app id (apache#8574) KAFKA-9832: fix attempt to commit non-running tasks (apache#8580) KAFKA-9127: don't create StreamThreads for global-only topology (apache#8540) MINOR: add support for kafka 2.4 and 2.5 to downgrade test KAFKA-9176: Retry on getting local stores from KafkaStreams (apache#8568) KAFKA-9823: Follow-up, check state for handling commit error response (apache#8548) KAFKA-6145: KIP-441: Add TaskAssignor class config (apache#8541) MINOR: Fix partition numbering from 0 to P-1 instead of P in docs (apache#8572) KAFKA-9921: disable caching on stores configured to retain duplicates (apache#8564) Minor: remove redundant check in auto preferred leader election (apache#8566) MINOR: Update the link to the Raft paper in docs (apache#8560) MINOR: Fix typos in config properties in MM2 test (apache#8561) MINOR: Improve producer test BufferPoolTest#testCloseNotifyWaiters. (apache#7982) MINOR: document how to escape json parameters to ducktape tests (apache#8546) ...
There was a minor conflict in gradle.properties because the default Scala version changed upstream to Scala 2.13. I kept the upstream change. Related to this, I have updated Jenkinsfile to compile and validate with Scala 2.12 in a separate stage so that we ensure we maintain compatibility. Unlike Apache Kafka, we only run the tests with the default Scala version, which is now 2.13. * apache-github/trunk: (45 commits) MINOR: Fix broken JMX link in docs by adding missing starting double quote (apache#8587) KAFKA-9652: Fix throttle metric in RequestChannel and request log due to KIP-219 (apache#8567) KAFKA-9922: Update demo instructions in examples README (apache#8559) KAFKA-9830: Implement AutoCloseable in ErrorReporter and subclasses (apache#8442) KAFKA-9875: Make integration tests more resilient (apache#8578) KAFKA-9932: Don't load configs from ZK when the log has already been loaded (apache#8582) KAFKA-9925: decorate pseudo-topics with app id (apache#8574) KAFKA-9832: fix attempt to commit non-running tasks (apache#8580) KAFKA-9127: don't create StreamThreads for global-only topology (apache#8540) MINOR: add support for kafka 2.4 and 2.5 to downgrade test KAFKA-9176: Retry on getting local stores from KafkaStreams (apache#8568) KAFKA-9823: Follow-up, check state for handling commit error response (apache#8548) KAFKA-6145: KIP-441: Add TaskAssignor class config (apache#8541) MINOR: Fix partition numbering from 0 to P-1 instead of P in docs (apache#8572) KAFKA-9921: disable caching on stores configured to retain duplicates (apache#8564) Minor: remove redundant check in auto preferred leader election (apache#8566) MINOR: Update the link to the Raft paper in docs (apache#8560) MINOR: Fix typos in config properties in MM2 test (apache#8561) MINOR: Improve producer test BufferPoolTest#testCloseNotifyWaiters. (apache#7982) MINOR: document how to escape json parameters to ducktape tests (apache#8546) ...
Reviewers: Boyang Chen <boyang@confluent.io>, Kin Siu
Committer Checklist (excluded from commit message)