cadonna commented on code in PR #18275: URL: https://github.com/apache/kafka/pull/18275#discussion_r1903971813
########## docs/streams/upgrade-guide.html: ########## @@ -173,6 +171,21 @@ <h3><a id="streams_api_changes_400" href="#streams_api_changes_400">Streams API See <a href="https://cwiki.apache.org/confluence/x/TZCMEw">KIP-1112</a> for more details. </p> + <h3><a id="streams_api_changes_400" href="#streams_api_changes_400">Streams API changes in 4.0.0</a></h3> + + <p> + Upgraded RocksDB dependency to version 9.7.3 (from 7.9.2). This upgrade incorporates various improvements and optimizations within RocksDB. However, it also introduces some API changes. + The <code>org.rocksdb.AccessHint</code> class, along with its associated methods, has been removed. + + <code>org.rocksdb.Options.setMemtableMaxRangeDeletions(int p1): ColumnFamilyOptionsInterface</code> has been added, providing control over the maximum number of range deletions in the memtable. + <code>org.rocksdb.Options.memtableMaxRangeDeletions(): int</code> has been added, allowing retrieval of the configured maximum number of range deletions in the memtable. + + The <code>org.rocksdb.Options.setLogger()</code> method now accepts a <code>LoggerInterface</code> as a parameter instead of the previous <code>Logger</code>. + The <code>NO_FILE_CLOSES</code> field has been removed from the <code>org.rocksdb.TickerTypeenum</code>. Review Comment: Could you please mention that since this field is removed, the `number-open-files` metrics does not work as expected? ########## docs/streams/upgrade-guide.html: ########## @@ -173,6 +171,21 @@ <h3><a id="streams_api_changes_400" href="#streams_api_changes_400">Streams API See <a href="https://cwiki.apache.org/confluence/x/TZCMEw">KIP-1112</a> for more details. </p> + <h3><a id="streams_api_changes_400" href="#streams_api_changes_400">Streams API changes in 4.0.0</a></h3> + + <p> + Upgraded RocksDB dependency to version 9.7.3 (from 7.9.2). This upgrade incorporates various improvements and optimizations within RocksDB. However, it also introduces some API changes. + The <code>org.rocksdb.AccessHint</code> class, along with its associated methods, has been removed. + + <code>org.rocksdb.Options.setMemtableMaxRangeDeletions(int p1): ColumnFamilyOptionsInterface</code> has been added, providing control over the maximum number of range deletions in the memtable. + <code>org.rocksdb.Options.memtableMaxRangeDeletions(): int</code> has been added, allowing retrieval of the configured maximum number of range deletions in the memtable. Review Comment: I would only add statements about stuff that was removed because that breaks the users' applications. ########## docs/streams/upgrade-guide.html: ########## @@ -173,6 +171,21 @@ <h3><a id="streams_api_changes_400" href="#streams_api_changes_400">Streams API See <a href="https://cwiki.apache.org/confluence/x/TZCMEw">KIP-1112</a> for more details. </p> + <h3><a id="streams_api_changes_400" href="#streams_api_changes_400">Streams API changes in 4.0.0</a></h3> + + <p> + Upgraded RocksDB dependency to version 9.7.3 (from 7.9.2). This upgrade incorporates various improvements and optimizations within RocksDB. However, it also introduces some API changes. + The <code>org.rocksdb.AccessHint</code> class, along with its associated methods, has been removed. + + <code>org.rocksdb.Options.setMemtableMaxRangeDeletions(int p1): ColumnFamilyOptionsInterface</code> has been added, providing control over the maximum number of range deletions in the memtable. + <code>org.rocksdb.Options.memtableMaxRangeDeletions(): int</code> has been added, allowing retrieval of the configured maximum number of range deletions in the memtable. + + The <code>org.rocksdb.Options.setLogger()</code> method now accepts a <code>LoggerInterface</code> as a parameter instead of the previous <code>Logger</code>. + The <code>NO_FILE_CLOSES</code> field has been removed from the <code>org.rocksdb.TickerTypeenum</code>. + Some data types used in RocksDB's Java API have been modified. These changes, along with the removed class, field, and new methods, are primarily relevant to users implementing custom RocksDB configurations. + These changes are expected to be largely transparent to most Kafka Streams users. However, those employing advanced RocksDB customizations within their Streams applications, particularly through the <code>rocksdb.config.setter</code>, are advised to consult the detailed RocksDB 9.7.3 changelog to ensure a smooth transition and adapt their configurations as needed. Specifically, users leveraging the removed <code>AccessHintclass</code>, the <code>NO_FILE_CLOSES</code> field from <code>TickerType</code>, or relying on the previous signature of <code>setLogger()</code> will need to update their implementations. Review Comment: The compatibility report also lists the removal of methods of `BlockBasedTableConfig` which might be important here. ########## streams/src/main/java/org/apache/kafka/streams/state/internals/RocksDBGenericOptionsToDbOptionsColumnFamilyOptionsAdapter.java: ########## Review Comment: There are a couple of deprecated methods in this file that can be completely removed since 4.0 is a major release. For example `baseBackgroundCompactions()`. ########## docs/ops.html: ########## @@ -3473,11 +3473,6 @@ <h5 class="anchor-heading"><a id="kafka_streams_rocksdb_monitoring" class="ancho <td>The maximum duration in ms of disc compactions.</td> <td>kafka.streams:type=stream-state-metrics,thread-id=([-.\w]+),task-id=([-.\w]+),[store-scope]-id=([-.\w]+)</td> </tr> - <tr> - <td>number-open-files</td> - <td>The number of current open files.</td> - <td>kafka.streams:type=stream-state-metrics,thread-id=([-.\w]+),task-id=([-.\w]+),[store-scope]-id=([-.\w]+)</td> - </tr> Review Comment: Instead of removing this row, could you add a comment that the metric will return constant `-1` and why it returns that? In the end the metric is still exposed, it just returns a useless constant value. If you want, you are welcome to create a KIP to remove this metric from Streams. Once that KIP is accepted, we can remove the metric from in the next major release. ########## docs/streams/upgrade-guide.html: ########## @@ -139,8 +139,6 @@ <h3 class="anchor-heading"><a id="streams_notable_changes" class="anchor-link">< More details about the new config <code>StreamsConfig#TOPOLOGY_OPTIMIZATION_CONFIG</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_400" href="#streams_api_changes_400">Streams API changes in 4.0.0</a></h3> Review Comment: Still not clear why this line was moved. -- 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: jira-unsubscr...@kafka.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org