Skip to content

Commit

Permalink
KAFKA-15443 Upgrade RocksDB to 9.7.3
Browse files Browse the repository at this point in the history
  • Loading branch information
swikarpat committed Jan 2, 2025
1 parent c0974b2 commit f0dd7fd
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 16 deletions.
27 changes: 13 additions & 14 deletions docs/streams/upgrade-guide.html
Original file line number Diff line number Diff line change
Expand Up @@ -171,20 +171,19 @@ <h3 class="anchor-heading"><a id="streams_notable_changes" class="anchor-link"><
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_390">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.
* API Changes in the RocksDB class:
* Removed Class: The org.rocksdb.AccessHint class, along with its associated methods, has been removed.
* New Methods:
* org.rocksdb.Options.setMemtableMaxRangeDeletions(int p1): ColumnFamilyOptionsInterface has been added, providing control over the maximum number of range deletions in the memtable.
* org.rocksdb.Options.memtableMaxRangeDeletions(): int has been added, allowing retrieval of the configured maximum number of range deletions in the memtable.
* Modified Methods:
* The org.rocksdb.Options.setLogger() method now accepts a LoggerInterface as a parameter instead of the previous Logger.
* Removed Field: The NO_FILE_CLOSES field has been removed from the org.rocksdb.TickerTypeenum.
* Changes in data types: 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 rocksdb.config.setter, 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 AccessHintclass, the NO_FILE_CLOSES field from TickerType, or relying on the previous signature of setLogger() will need to update their implementations.
<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.
</p>

<h3><a id="streams_api_changes_390" href="#streams_api_changes_390">Streams API changes in 3.9.0</a></h3>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1136,7 +1136,6 @@ public Options setBloomLocality(final int bloomLocality) {
return this;
}


@Override
public long maxSuccessiveMerges() {
return columnFamilyOptions.maxSuccessiveMerges();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,6 @@ public void shouldOverwriteAllOptionsMethods() throws Exception {
}
}


@Test
public void shouldForwardAllDbOptionsCalls() throws Exception {
for (final Method method : Options.class.getMethods()) {
Expand Down

0 comments on commit f0dd7fd

Please sign in to comment.