From de5e3580c2077deaa969a9868a0e6824e0afe4e3 Mon Sep 17 00:00:00 2001 From: "alan578.zhao" <956322745@qq.com> Date: Fri, 12 Jul 2024 16:02:08 +0800 Subject: [PATCH] #2576 Resolved the cache invalidation of the partition->leader shard in ClientCache --- .../main/java/org/apache/hugegraph/pd/client/ClientCache.java | 1 + .../src/main/java/org/apache/hugegraph/pd/client/PDClient.java | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/hugegraph-pd/hg-pd-client/src/main/java/org/apache/hugegraph/pd/client/ClientCache.java b/hugegraph-pd/hg-pd-client/src/main/java/org/apache/hugegraph/pd/client/ClientCache.java index 868f8fae3a..cae97829a8 100644 --- a/hugegraph-pd/hg-pd-client/src/main/java/org/apache/hugegraph/pd/client/ClientCache.java +++ b/hugegraph-pd/hg-pd-client/src/main/java/org/apache/hugegraph/pd/client/ClientCache.java @@ -290,6 +290,7 @@ public void reset() { groups = new ConcurrentHashMap<>(); stores = new ConcurrentHashMap<>(); caches = new ConcurrentHashMap<>(); + initialized.set(false); } public Shard getLeader(int partitionId) { diff --git a/hugegraph-pd/hg-pd-client/src/main/java/org/apache/hugegraph/pd/client/PDClient.java b/hugegraph-pd/hg-pd-client/src/main/java/org/apache/hugegraph/pd/client/PDClient.java index fa1e595264..c8e0fb870e 100644 --- a/hugegraph-pd/hg-pd-client/src/main/java/org/apache/hugegraph/pd/client/PDClient.java +++ b/hugegraph-pd/hg-pd-client/src/main/java/org/apache/hugegraph/pd/client/PDClient.java @@ -461,7 +461,8 @@ private KVPair getKvPair(String graphName, byte[ public KVPair getPartition(String graphName, byte[] key) throws PDException { // 先查cache,cache没有命中,在调用PD - KVPair partShard = cache.getPartitionByKey(graphName, key); + int code = PartitionUtils.calcHashcode(key); + KVPair partShard = this.getPartitionByCode(graphName, code); partShard = getKvPair(graphName, key, partShard); return partShard; }