From 2af40bc65da93ba87312867c2c7995df3fb2befb Mon Sep 17 00:00:00 2001 From: GroundWu <1175416256@qq.com> Date: Tue, 12 Nov 2024 20:20:42 +0800 Subject: [PATCH 1/3] fix global index route refresh wrong when route need refresh --- .../payload/impl/execute/query/AbstractQueryStreamResult.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/alipay/oceanbase/rpc/protocol/payload/impl/execute/query/AbstractQueryStreamResult.java b/src/main/java/com/alipay/oceanbase/rpc/protocol/payload/impl/execute/query/AbstractQueryStreamResult.java index b4d2bc92..41aec267 100644 --- a/src/main/java/com/alipay/oceanbase/rpc/protocol/payload/impl/execute/query/AbstractQueryStreamResult.java +++ b/src/main/java/com/alipay/oceanbase/rpc/protocol/payload/impl/execute/query/AbstractQueryStreamResult.java @@ -258,7 +258,7 @@ protected ObPayload commonExecute(ObTableClient client, Logger logger, ((ObTableException) e).getErrorCode(), tryTimes, e); // tablet not exists, refresh table entry if (e instanceof ObTableNeedFetchAllException) { - client.getOrRefreshTableEntry(tableName, true, true, true); + client.getOrRefreshTableEntry(indexTableName, true, true, true); throw e; } } else { From d51acc5fd32bdabc9793e966cb3e8a76f60dd09a Mon Sep 17 00:00:00 2001 From: GroundWu <1175416256@qq.com> Date: Wed, 13 Nov 2024 17:45:45 +0800 Subject: [PATCH 2/3] fix global index route wrong --- .../impl/execute/query/AbstractQueryStreamResult.java | 6 +++--- .../rpc/stream/ObTableClientQueryAsyncStreamResult.java | 3 ++- .../alipay/oceanbase/rpc/table/ObTableClientQueryImpl.java | 2 -- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/alipay/oceanbase/rpc/protocol/payload/impl/execute/query/AbstractQueryStreamResult.java b/src/main/java/com/alipay/oceanbase/rpc/protocol/payload/impl/execute/query/AbstractQueryStreamResult.java index 41aec267..3ae581de 100644 --- a/src/main/java/com/alipay/oceanbase/rpc/protocol/payload/impl/execute/query/AbstractQueryStreamResult.java +++ b/src/main/java/com/alipay/oceanbase/rpc/protocol/payload/impl/execute/query/AbstractQueryStreamResult.java @@ -155,7 +155,7 @@ protected ObPayload commonExecute(ObTableClient client, Logger logger, result = subObTable.executeWithConnection(request, connectionRef); } else { result = subObTable.execute(request); - + System.err.println("indexTableName:" +indexTableName); if (result != null && result.getPcode() == Pcodes.OB_TABLE_API_MOVE) { ObTableApiMove moveResponse = (ObTableApiMove) result; client.getRouteTableRefresher().addTableIfAbsent(indexTableName, true); @@ -376,7 +376,6 @@ protected Map> buildPartitions(ObTableClient cl if (!client.isOdpMode()) { indexTableName = client.getIndexTableName(tableName, indexName, tableQuery.getScanRangeColumns(), false); } - for (ObNewRange range : tableQuery.getKeyRanges()) { ObRowKey startKey = range.getStartKey(); int startKeySize = startKey.getObjs().size(); @@ -576,7 +575,8 @@ public void init() throws Exception { RUNTIME.error("Fail to get refresh table entry response after {}", retryTimes); throw new ObTableRetryExhaustedException( - "Fail to get refresh table entry response after " + retryTimes); + "Fail to get refresh table entry response after " + retryTimes + + "errorCode:" + ((ObTableNeedFetchAllException) e).getErrorCode()); } } else { diff --git a/src/main/java/com/alipay/oceanbase/rpc/stream/ObTableClientQueryAsyncStreamResult.java b/src/main/java/com/alipay/oceanbase/rpc/stream/ObTableClientQueryAsyncStreamResult.java index e5b90458..fe6c9717 100644 --- a/src/main/java/com/alipay/oceanbase/rpc/stream/ObTableClientQueryAsyncStreamResult.java +++ b/src/main/java/com/alipay/oceanbase/rpc/stream/ObTableClientQueryAsyncStreamResult.java @@ -88,7 +88,8 @@ public void init() throws Exception { RUNTIME.error("Fail to get refresh table entry response after {}", retryTimes); throw new ObTableRetryExhaustedException( - "Fail to get refresh table entry response after " + retryTimes); + "Fail to get refresh table entry response after " + retryTimes + + "errorCode:" + ((ObTableNeedFetchAllException) e).getErrorCode()); } } else { diff --git a/src/main/java/com/alipay/oceanbase/rpc/table/ObTableClientQueryImpl.java b/src/main/java/com/alipay/oceanbase/rpc/table/ObTableClientQueryImpl.java index 7ff2a8c9..a4134b42 100644 --- a/src/main/java/com/alipay/oceanbase/rpc/table/ObTableClientQueryImpl.java +++ b/src/main/java/com/alipay/oceanbase/rpc/table/ObTableClientQueryImpl.java @@ -244,12 +244,10 @@ ObTableClientQueryAsyncStreamResult execute() throws Exception { public Map> initPartitions(ObTableQuery tableQuery, String tableName) throws Exception { Map> partitionObTables = new LinkedHashMap<>(); String indexName = tableQuery.getIndexName(); - String indexTableName = null; if (!this.obTableClient.isOdpMode()) { indexTableName = obTableClient.getIndexTableName(tableName, indexName, tableQuery.getScanRangeColumns(), false); } - for (ObNewRange range : tableQuery.getKeyRanges()) { ObRowKey startKey = range.getStartKey(); int startKeySize = startKey.getObjs().size(); From c70d6ccf32c5757f9973349acc64f0257f4793d1 Mon Sep 17 00:00:00 2001 From: GroundWu <1175416256@qq.com> Date: Wed, 13 Nov 2024 17:50:31 +0800 Subject: [PATCH 3/3] revert unused commit --- .../payload/impl/execute/query/AbstractQueryStreamResult.java | 2 +- .../com/alipay/oceanbase/rpc/table/ObTableClientQueryImpl.java | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/alipay/oceanbase/rpc/protocol/payload/impl/execute/query/AbstractQueryStreamResult.java b/src/main/java/com/alipay/oceanbase/rpc/protocol/payload/impl/execute/query/AbstractQueryStreamResult.java index 3ae581de..5c8a8676 100644 --- a/src/main/java/com/alipay/oceanbase/rpc/protocol/payload/impl/execute/query/AbstractQueryStreamResult.java +++ b/src/main/java/com/alipay/oceanbase/rpc/protocol/payload/impl/execute/query/AbstractQueryStreamResult.java @@ -155,7 +155,6 @@ protected ObPayload commonExecute(ObTableClient client, Logger logger, result = subObTable.executeWithConnection(request, connectionRef); } else { result = subObTable.execute(request); - System.err.println("indexTableName:" +indexTableName); if (result != null && result.getPcode() == Pcodes.OB_TABLE_API_MOVE) { ObTableApiMove moveResponse = (ObTableApiMove) result; client.getRouteTableRefresher().addTableIfAbsent(indexTableName, true); @@ -376,6 +375,7 @@ protected Map> buildPartitions(ObTableClient cl if (!client.isOdpMode()) { indexTableName = client.getIndexTableName(tableName, indexName, tableQuery.getScanRangeColumns(), false); } + for (ObNewRange range : tableQuery.getKeyRanges()) { ObRowKey startKey = range.getStartKey(); int startKeySize = startKey.getObjs().size(); diff --git a/src/main/java/com/alipay/oceanbase/rpc/table/ObTableClientQueryImpl.java b/src/main/java/com/alipay/oceanbase/rpc/table/ObTableClientQueryImpl.java index a4134b42..d460bde6 100644 --- a/src/main/java/com/alipay/oceanbase/rpc/table/ObTableClientQueryImpl.java +++ b/src/main/java/com/alipay/oceanbase/rpc/table/ObTableClientQueryImpl.java @@ -248,6 +248,7 @@ public Map> initPartitions(ObTableQuery tableQu if (!this.obTableClient.isOdpMode()) { indexTableName = obTableClient.getIndexTableName(tableName, indexName, tableQuery.getScanRangeColumns(), false); } + for (ObNewRange range : tableQuery.getKeyRanges()) { ObRowKey startKey = range.getStartKey(); int startKeySize = startKey.getObjs().size();