Skip to content
Merged
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,12 @@ public void setReturnOneResult(boolean returnOneResult) {
tableBatchOps.setReturnOneResult(returnOneResult);
}

@Override
public void setIsWeakRead(boolean isWeakRead) {
super.setIsWeakRead(isWeakRead);
tableBatchOps.setIsWeakRead(isWeakRead);
}

void preCheck() {
List<ObTableOperation> operations = this.tableBatchOps.getObTableBatchOperation()
.getTableOperations();
Expand Down
21 changes: 21 additions & 0 deletions src/main/java/com/alipay/oceanbase/rpc/ObClusterTableQuery.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import com.alipay.oceanbase.rpc.location.model.partition.Partition;
import com.alipay.oceanbase.rpc.mutation.Row;
import com.alipay.oceanbase.rpc.protocol.payload.impl.ObObj;
import com.alipay.oceanbase.rpc.protocol.payload.impl.execute.ObReadConsistency;
import com.alipay.oceanbase.rpc.protocol.payload.impl.execute.ObTableEntityType;
import com.alipay.oceanbase.rpc.protocol.payload.impl.execute.aggregation.ObTableAggregationType;
import com.alipay.oceanbase.rpc.protocol.payload.impl.execute.query.ObHTableFilter;
Expand Down Expand Up @@ -271,6 +272,26 @@ public TableQuery setSearchText(String searchText) {
return this;
}

@Override
public TableQuery setReadConsistency(ObReadConsistency readConsistency) {
// 同时设置父类和内部 tableClientQuery 的 readConsistency
super.setReadConsistency(readConsistency);
tableClientQuery.setReadConsistency(readConsistency);
return this;
}

@Override
public ObReadConsistency getReadConsistency() {
// 返回内部 tableClientQuery 的 readConsistency
return tableClientQuery.getReadConsistency();
}

@Override
public TableQuery setScanRangeColumns(String... columns) {
tableClientQuery.setScanRangeColumns(columns);
return this;
}

public void setAllowDistributeScan(boolean allowDistributeScan) {
tableClientQuery.setAllowDistributeScan(allowDistributeScan);
}
Expand Down
327 changes: 98 additions & 229 deletions src/main/java/com/alipay/oceanbase/rpc/ObTableClient.java

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@

package com.alipay.oceanbase.rpc.bolt.protocol;

import com.alipay.oceanbase.rpc.exception.ObTableRoutingWrongException;
import com.alipay.oceanbase.rpc.meta.ObTableMetaRequest;
import com.alipay.oceanbase.rpc.meta.ObTableMetaResponse;
import com.alipay.oceanbase.rpc.protocol.packet.ObRpcPacketHeader;
import com.alipay.oceanbase.rpc.protocol.payload.ObPayload;
Expand All @@ -36,9 +34,6 @@
import com.alipay.oceanbase.rpc.protocol.payload.impl.login.ObTableLoginResult;
import com.alipay.remoting.CommandCode;

import static com.alipay.oceanbase.rpc.protocol.payload.Pcodes.OB_TABLE_API_HBASE_EXECUTE;
import static com.alipay.oceanbase.rpc.protocol.payload.Pcodes.OB_TABLE_API_META_INFO_EXECUTE;

public enum ObTablePacketCode implements CommandCode {

OB_TABLE_API_LOGIN(Pcodes.OB_TABLE_API_LOGIN) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
import com.alipay.remoting.InvokeContext;
import com.alipay.remoting.InvokeFuture;
import com.alipay.remoting.RemotingCommand;
import com.alipay.oceanbase.rpc.exception.ObTableTimeoutExcetion;
import io.netty.util.Timeout;

import java.net.InetSocketAddress;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,8 @@ private boolean connect() throws Exception {

if (tries >= maxTryTimes) {
if (!obTable.isOdpMode()) {
RouteTableRefresher.SuspectObServer suspectAddr = new RouteTableRefresher.SuspectObServer(obTable.getObServerAddr());
RouteTableRefresher.SuspectObServer suspectAddr = new RouteTableRefresher.SuspectObServer(
obTable.getObServerAddr());
RouteTableRefresher.addIntoSuspectIPs(suspectAddr);
}
LOGGER.warn("connect failed after max " + maxTryTimes + " tries "
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,20 @@
/*-
* #%L
* com.oceanbase:obkv-table-client
* %%
* Copyright (C) 2021 - 2025 OceanBase
* %%
* OBKV Table Client Framework is licensed under Mulan PSL v2.
* You can use this software according to the terms and conditions of the Mulan PSL v2.
* You may obtain a copy of Mulan PSL v2 at:
* http://license.coscl.org.cn/MulanPSL2
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
* See the Mulan PSL v2 for more details.
* #L%
*/

package com.alipay.oceanbase.rpc.exception;

public class ObTableSessionNotExistException extends ObTableException {
Expand Down
30 changes: 21 additions & 9 deletions src/main/java/com/alipay/oceanbase/rpc/get/Get.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,21 +20,24 @@
import com.alipay.oceanbase.rpc.ObTableClient;
import com.alipay.oceanbase.rpc.mutation.ColumnValue;
import com.alipay.oceanbase.rpc.mutation.Row;
import com.alipay.oceanbase.rpc.protocol.payload.impl.execute.ObReadConsistency;
import com.alipay.oceanbase.rpc.table.api.Table;

import java.util.Map;

public class Get {
private Table client;
private String tableName;
protected Row rowKey;
protected String[] selectColumns;
private Table client = null;
private String tableName = null;
private Row rowKey = null;
private String[] selectColumns = null;
private ObReadConsistency readConsistency = null;

public Get() {
tableName = null;
client = null;
rowKey = null;
selectColumns = null;
this.client = null;
this.tableName = null;
this.rowKey = null;
this.selectColumns = null;
this.readConsistency = null;
}

public Get(Table client, String tableName) {
Expand Down Expand Up @@ -67,6 +70,15 @@ public Get select(String... columns) {
return this;
}

public Get setReadConsistency(ObReadConsistency readConsistency) {
this.readConsistency = readConsistency;
return this;
}

public ObReadConsistency getReadConsistency() {
return readConsistency;
}

public String[] getSelectColumns() {
return selectColumns;
}
Expand All @@ -75,6 +87,6 @@ public Map<String, Object> execute() throws Exception {
if (client == null) {
throw new IllegalArgumentException("client is null");
}
return ((ObTableClient) client).get(tableName, rowKey, selectColumns);
return ((ObTableClient) client).get(tableName, rowKey, selectColumns, readConsistency);
}
}
Loading