-
Notifications
You must be signed in to change notification settings - Fork 15.4k
MINOR: add Kafka Streams upgrade notes for 2.3 release #6758
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
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -70,6 +70,48 @@ <h1>Upgrade Guide and API Changes</h1> | |||||
| More details about the new config <code>StreamsConfig#TOPOLOGY_OPTIMIZATION</code> can be found in <a href="https://cwiki.apache.org/confluence/display/KAFKA/KIP-295%3A+Add+Streams+Configuration+Allowing+for+Optional+Topology+Optimization">KIP-295</a>. | ||||||
| </p> | ||||||
|
|
||||||
| <h3><a id="streams_api_changes_230" href="#streams_api_changes_230">Streams API changes in 2.3.0</a></h3> | ||||||
| <p> | ||||||
| To improve operator semantics, new store types are added that allow storing an additional timestamp per key-value pair or window. | ||||||
| Some DSL operators (for example KTables) are using those new stores. | ||||||
| Hence, you can now receive the last update timestamp via Interactive Queries if you change the <code>QueryableStoreType</code>. | ||||||
| While this change is mainly transparent to the user, there are some corner cases that may require code changes: | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Maybe a nit, but I feel it's a bit strange to call someone "the user" when you're talking directly to them.
Suggested change
|
||||||
| <strong>Caution: If you receive an untyped store and use a cast, you might need to update your code to cast to the correct type.</strong> | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Maybe we can drop in the actual exception, to improve the time-to-discover the reason, if someone is just searching: |
||||||
| Additionally, <code>TopologyTestDriver#getStateStore()</code> only returns non-built-in stores and throws an exception if a built-in store is accessed. | ||||||
| For more details please read <a href="https://cwiki.apache.org/confluence/display/KAFKA/KIP-258%3A+Allow+to+Store+Record+Timestamps+in+RocksDB">KIP-258</a>. | ||||||
| </p> | ||||||
|
|
||||||
| <p> | ||||||
| To improve type safety, a new operator <code>KStream#flatTransformValues</code> is added. | ||||||
| For more details please read <a href="https://cwiki.apache.org/confluence/display/KAFKA/KIP-313%3A+Add+KStream.flatTransform+and+KStream.flatTransformValues">KIP-313</a>. | ||||||
| </p> | ||||||
|
|
||||||
| <p> | ||||||
| In previous release, Kafka Streams only shipped with a built-in in-memory key-value store. | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. These are mentioned again below (line 76), you should remove the other comment |
||||||
| In this release, in-memory window store (<a href="https://cwiki.apache.org/confluence/display/KAFKA/KIP-428%3A+Add+in-memory+window+store">KIP_428</a>) | ||||||
| and in-memory session store (<a href="https://cwiki.apache.org/confluence/display/KAFKA/KIP-445%3A+In-memory+Session+Store">KIP-445</a>) are added. | ||||||
| </p> | ||||||
|
|
||||||
| <p> | ||||||
| Kafka Streams used to set the configuration parameter <code>max.poll.interval.ms</code> to <code>Interger.MAX_VALUE</code>. | ||||||
| In default value is removed and Kafka Streams uses the consumer default value now. | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. nit: 'In |
||||||
| For more details please read <a href="https://cwiki.apache.org/confluence/display/KAFKA/KIP-442%3A+Return+to+default+max+poll+interval+in+Streams">KIP-442</a>. | ||||||
| </p> | ||||||
|
|
||||||
| <p> | ||||||
| Default configuration for repartition topic was changed: | ||||||
| The segment size for index files (<code>segment.index.bytes</code>) is no longer 50MB, but uses the cluster default. | ||||||
| Similarly, the configuration <code>segment.ms</code> in no longer 10 minutes, but uses the cluster default configuration. | ||||||
| Lastly, the retention period (<code>retention.ms</code>) is changed from <code>Long.MAX_VALUE</code> to <code>-1</code> (infinite). | ||||||
| For more details please read <a href="https://cwiki.apache.org/confluence/display/KAFKA/KIP-443%3A+Return+to+default+segment.ms+and+segment.index.bytes+in+Streams+repartition+topics">KIP-443</a>. | ||||||
| </p> | ||||||
|
|
||||||
| <p> | ||||||
| To avoid memory leaks, <code>RocksDBConfigSetter</code> has a new <code>close()</code> method that is called on shutdown. | ||||||
| Users should implement this method to release any memory used by RocksDB config objects, by closing those objects. | ||||||
| For more details please read <a href="https://cwiki.apache.org/confluence/display/KAFKA/KIP-453%3A+Add+close%28%29+method+to+RocksDBConfigSetter">KIP-453</a>. | ||||||
| </p> | ||||||
|
|
||||||
| <h3><a id="streams_api_changes_230" href="#streams_api_changes_230">Streams API changes in 2.3.0</a></h3> | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This was moved to above and should be deleted
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ups. Overlooked this. |
||||||
| <p>Version 2.3.0 adds the Suppress operator to the <code>kafka-streams-scala</code> Ktable API.</p> | ||||||
| <p> | ||||||
|
|
||||||
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.