Skip to content

RocksDBStore.openDB performance degradation after version 6.27.3 on Mac #11035

Description

@conan-goldsmith

Note: Please use Issues only for bug reports. For questions, discussions, feature requests, etc. post to dev group: https://groups.google.com/forum/#!forum/rocksdb or https://www.facebook.com/groups/rocksdb.dev

Expected behavior

The openDB method is expected to have consistent timings across versions for all platforms.

Actual behavior

When testing performance between 6.27.3 and 6.29.4.1 the performance has been observed to consistently have a ~6X increase in operation time when running on a Mac.
This behavior, from testing, is isolated only to Mac computers. Windows and Linux hosts do not observe this increase in operation time.

Steps to reproduce the behavior

This was reproduced using Kafka Streams and analyzing the time simple tests require to compute and operate against rocksDB.
This was initially identified due to the rocksDB version being upgraded from version 3.1.2 and 3.3.1 of Kafka Streams, the reproduction is based on changing these version and the tested output references these versions.

By creating a simple KStreams operation that produces random data, or performs any stateful operation the rocksDB times are seen to increase dramatically when using the newer rocksDB version due to the openDB method.
For example, here are some KStream applications for testing, the only change needed between tests is altering the version used from Maven to recreate the behavior. https://docs.confluent.io/platform/current/streams/code-examples.html

In testing performed, the increase is a few seconds to 20+. This was reproduced on several Mac, Linux, and Windows machines. Here are some of the example output times recorded on the simple KStreams app we were using as a baseline.

Kafka  | OS             | Arch   | Java      | Duration (s)
3.1.2  | Mac OS X 10.16 | x86_64 | 1.8.0_311 | 3
3.3.1  | Mac OS X 10.16 | x86_64 | 1.8.0_311 | 22
3.1.2  | Mac OS X 12.6  | x86_64 | 11.0.16.1 | 4
3.3.1  | Mac OS X 12.6  | x86_64 | 11.0.16.1 | 27
3.1.2  | Windows 10 10.0  | amd64  | 16.0.2  | 5 
3.3.1  | Windows 10 10.0  | amd64  | 16.0.2  | 5
3.1.2  | Linux 5.10.102.1-microsoft-standard-WSL2  | amd64  | 1.8.0342  | 7
3.3.1  | Linux 5.10.102.1-microsoft-standard-WSL2  | amd64  | 1.8.0342  | 8
3.3.1  | Mac OS X 10.16  | x86_64  | 1.8.0_231  | 21
3.3.1  | Mac OS X 10.16  | x86_64  | 1.8.0_231  | 22
3.3.1  | Mac OS X 10.16  | x86_64  | 1.8.0_231  | 22
3.3.1  | Mac OS X 10.16  | x86_64  | 1.8.0_231  | 21
3.3.1  | Mac OS X 10.16  | x86_64  | 1.8.0_231  | 21
3.1.2  | Mac OS X 10.16  | x86_64  | 1.8.0_231  | 1
3.1.2  | Mac OS X 10.16  | x86_64  | 1.8.0_231  | 14
3.1.2  | Mac OS X 10.16  | x86_64  | 1.8.0_231  | 1
3.1.2  | Mac OS X 10.16  | x86_64  | 1.8.0_231  | 2

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions