You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "Matthias J. Sax (Jira)" <ji...@apache.org> on 2020/06/08 16:16:00 UTC
[jira] [Updated] (KAFKA-8372) Remove deprecated
RocksDB#compactRange API
[ https://issues.apache.org/jira/browse/KAFKA-8372?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Matthias J. Sax updated KAFKA-8372:
-----------------------------------
Affects Version/s: (was: 3.0.0)
> Remove deprecated RocksDB#compactRange API
> ------------------------------------------
>
> Key: KAFKA-8372
> URL: https://issues.apache.org/jira/browse/KAFKA-8372
> Project: Kafka
> Issue Type: Improvement
> Components: streams
> Reporter: Sophie Blee-Goldman
> Priority: Blocker
> Fix For: 3.0.0
>
>
> In upgrading Rocks from v5.15 to v5.18, several of the RocksDB#compactRange() methods were deprecated in favor of variations leveraging the new CompactRangeOptions object. However v5.18 left a gap in the API with no signature allowing you to pass in an options object without also passing it a start, end byte[] specifying a range to be compacted. Since we would like to compact the entire thing and not a subrange, while needing to specify several options, the deprecation warning was suppressed for now.
> In v6.0 this gap is closed as you can pass null in for start, end to specify that the entire range should be compacted.
> When upgrading Rocks to v6.0 or later, the deprecation suppressions should be removed from DualColumnFamilyAccessor#toggleDBForBulkLoading() (RocksDBTimestampedStore.java) and and SingleColumnFamilyAccessor#toggleDBForBulkLoading() (RocksDBStore.java) and the following replacement should be made:
>
> db.compactRange(columnFamily, true, 1, 0)
> -->
> db.compactRange(columnFamily, null, null, CompactRangeOptions);
>
> NOTE: CompactRangeOptions extend RocksObject and as such should be closed to avoid leaking memory!
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)