From 5ba6d4a24f374d050cd3ed7c8849ed3c917152b3 Mon Sep 17 00:00:00 2001 From: Loki Date: Sun, 29 Mar 2026 22:41:53 +0800 Subject: [PATCH] optimize: Optimize RocksDB batch query performance --- .../apache/hugegraph/backend/store/rocksdb/RocksDBTable.java | 3 ++- .../apache/hugegraph/backend/store/rocksdb/RocksDBTables.java | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/hugegraph-server/hugegraph-rocksdb/src/main/java/org/apache/hugegraph/backend/store/rocksdb/RocksDBTable.java b/hugegraph-server/hugegraph-rocksdb/src/main/java/org/apache/hugegraph/backend/store/rocksdb/RocksDBTable.java index 824986d22c..98ae3a14e7 100644 --- a/hugegraph-server/hugegraph-rocksdb/src/main/java/org/apache/hugegraph/backend/store/rocksdb/RocksDBTable.java +++ b/hugegraph-server/hugegraph-rocksdb/src/main/java/org/apache/hugegraph/backend/store/rocksdb/RocksDBTable.java @@ -20,6 +20,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; +import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Set; @@ -180,7 +181,7 @@ protected BackendColumnIterator queryBy(RocksDBSessions.Session session, Query q // Query by id if (query.conditionsSize() == 0) { assert query.idsSize() > 0; - return this.queryByIds(session, query.ids()); + return this.getByIds(session, new HashSet<>(query.ids())); } // Query by condition (or condition + id) diff --git a/hugegraph-server/hugegraph-rocksdb/src/main/java/org/apache/hugegraph/backend/store/rocksdb/RocksDBTables.java b/hugegraph-server/hugegraph-rocksdb/src/main/java/org/apache/hugegraph/backend/store/rocksdb/RocksDBTables.java index 37cc2f151c..e8dd2df8b0 100644 --- a/hugegraph-server/hugegraph-rocksdb/src/main/java/org/apache/hugegraph/backend/store/rocksdb/RocksDBTables.java +++ b/hugegraph-server/hugegraph-rocksdb/src/main/java/org/apache/hugegraph/backend/store/rocksdb/RocksDBTables.java @@ -20,6 +20,7 @@ import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.util.Collection; +import java.util.HashSet; import java.util.List; import org.apache.hugegraph.backend.id.Id; @@ -182,8 +183,7 @@ protected BackendColumnIterator queryById(RocksDBSessions.Session session, Id id @Override protected BackendColumnIterator queryByIds(RocksDBSessions.Session session, Collection ids) { - // TODO: use getByIds() after batch version multi-get is ready - return super.queryByIds(session, ids); + return this.getByIds(session, new HashSet<>(ids)); } }