Hello RocksDB Community,
We have encountered a significant performance regression after upgrading our Java application's rocksdbjni dependency from version 9.0.1 to 9.1.0. The dependency is pulled from Maven Central. Our service runs on AMD EPYC servers.
Our workload is heavily dominated by random point lookups (db.get()) with a read volume of approximately 3 million ops/minute.
After the upgrade, our P99 read latency increased by over 1,200% (from ~150µs to ~2ms), while our read throughput dropped significantly. These are the config overrides.
I have basically hit a wall here. Please let me know if you need more info
Options baseOptions = new Options()
.setCreateIfMissing(true)
.setMaxOpenFiles(-1)
.setMaxBytesForLevelBase(160 * SizeUnit.MB)
.setMaxBytesForLevelMultiplier(10)
.setTargetFileSizeBase(64 * SizeUnit.MB)
.setAllowMmapReads(true)
.setMemTableConfig(new HashSkipListMemTableConfig())
.useFixedLengthPrefixExtractor(8)
.setAllowConcurrentMemtableWrite(false)
.setTableFormatConfig(new BlockBasedTableConfig().setBlockCache(new LRUCache(1024 * SizeUnit.MB)))