Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions src/main/java/com/alipay/oceanbase/rpc/ObGlobal.java
Original file line number Diff line number Diff line change
Expand Up @@ -132,12 +132,26 @@ public static boolean isDistributeNeedTabletIdSupport() {

/*-------------------------------------------- OB_VERSION --------------------------------------------*/

public static final long OB_VERSION_4_2_1_0 = calcVersion(4, (short) 2, (byte) 1, (byte) 0);

public static final long OB_VERSION_4_2_1_7 = calcVersion(4, (short) 2, (byte) 1, (byte) 7);

public static final long OB_VERSION_4_2_2_0 = calcVersion(4, (short) 2, (byte) 2, (byte) 0);

public static final long OB_VERSION_4_2_3_0 = calcVersion(4, (short) 2, (byte) 3, (byte) 0);

public static final long OB_VERSION_4_2_4_0 = calcVersion(4, (short) 2, (byte) 4, (byte) 0);

public static final long OB_VERSION_4_2_5_2 = calcVersion(4, (short) 2, (byte) 5, (byte) 2);

public static final long OB_VERSION_4_2_5_3 = calcVersion(4, (short) 2, (byte) 5, (byte) 3);

public static final long OB_VERSION_4_3_0_0 = calcVersion(4, (short) 3, (byte) 0, (byte) 0);

public static final long OB_VERSION_4_3_0_1 = calcVersion(4, (short) 3, (byte) 0, (byte) 1);

public static final long OB_VERSION_4_3_2_0 = calcVersion(4, (short) 3, (byte) 2, (byte) 0);

public static final long OB_VERSION_4_3_4_0 = calcVersion(4, (short) 3, (byte) 4, (byte) 0);

public static final long OB_VERSION_4_3_5_0 = calcVersion(4, (short) 3, (byte) 5, (byte) 0);
Expand All @@ -154,6 +168,10 @@ public static boolean isDistributeNeedTabletIdSupport() {

public static final long OB_VERSION_4_4_1_0 = calcVersion(4, (short) 4, (byte) 1, (byte) 0);

public static final long OB_VERSION_4_4_2_0 = calcVersion(4, (short) 4, (byte) 2, (byte) 0);

public static final long OB_VERSION_4_5_0_0 = calcVersion(4, (short) 5, (byte) 0, (byte) 0);

public static long OB_VERSION = calcVersion(0, (short) 0, (byte) 0, (byte) 0);

/*-------------------------------------------- OB_PROXY_VERSION --------------------------------------------*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,40 +25,18 @@

public class ObDirectLoadProtocolFactory {

private static final ObDirectLoadLogger logger = ObDirectLoadLogger.getLogger();

// 起始版本
// 4_2_1_release
public static final long OB_VERSION_4_2_1_0 = ObGlobal.calcVersion(4, (short) 2,
(byte) 1, (byte) 0);
// 4_2_x_release
public static final long OB_VERSION_4_2_2_0 = ObGlobal.calcVersion(4, (short) 2,
(byte) 2, (byte) 0);
// master
public static final long OB_VERSION_4_3_0_0 = ObGlobal.calcVersion(4, (short) 3,
(byte) 0, (byte) 0);

// 最低支持版本
// 4_2_1_release
public static final long OB_VERSION_4_2_1_7 = ObGlobal.calcVersion(4, (short) 2,
(byte) 1, (byte) 7);
// 4_2_x_release
public static final long OB_VERSION_4_2_4_0 = ObGlobal.calcVersion(4, (short) 2,
(byte) 4, (byte) 0);
// master
public static final long OB_VERSION_4_3_0_1 = ObGlobal.calcVersion(4, (short) 3,
(byte) 0, (byte) 1);
private static final ObDirectLoadLogger logger = ObDirectLoadLogger.getLogger();

public static long getSupportedMinimumObVersion(long obVersion) {
long minimumObVersion = 0;
if (obVersion < OB_VERSION_4_2_1_0) { // < 421
minimumObVersion = OB_VERSION_4_2_1_7;
} else if (obVersion < OB_VERSION_4_2_2_0) { // 421
minimumObVersion = OB_VERSION_4_2_1_7;
} else if (obVersion < OB_VERSION_4_3_0_0) { // 42x
minimumObVersion = OB_VERSION_4_2_4_0;
if (obVersion < ObGlobal.OB_VERSION_4_2_1_0) { // < 421
minimumObVersion = ObGlobal.OB_VERSION_4_2_1_7;
} else if (obVersion < ObGlobal.OB_VERSION_4_2_2_0) { // 421
minimumObVersion = ObGlobal.OB_VERSION_4_2_1_7;
} else if (obVersion < ObGlobal.OB_VERSION_4_3_0_0) { // 42x
minimumObVersion = ObGlobal.OB_VERSION_4_2_4_0;
} else { // master
minimumObVersion = OB_VERSION_4_3_0_1;
minimumObVersion = ObGlobal.OB_VERSION_4_3_0_1;
}
return minimumObVersion;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,17 +28,7 @@

public class ObDirectLoadProtocolV0 implements ObDirectLoadProtocol {

public static final long OB_VERSION_4_2_5_3 = ObGlobal.calcVersion(4, (short) 2,
(byte) 5, (byte) 3);
public static final long OB_VERSION_4_3_0_0 = ObGlobal.calcVersion(4, (short) 3,
(byte) 0, (byte) 0);

public static final long OB_VERSION_4_3_2_0 = ObGlobal.calcVersion(4, (short) 3,
(byte) 2, (byte) 0);
public static final long OB_VERSION_4_3_5_0 = ObGlobal.calcVersion(4, (short) 3,
(byte) 5, (byte) 0);

private static final int PROTOCOL_VERSION = 0;
private static final int PROTOCOL_VERSION = 0;
private final ObDirectLoadLogger logger;
private final long obVersion;

Expand All @@ -58,26 +48,27 @@ public int getProtocolVersion() {

@Override
public void checkIsSupported(ObDirectLoadStatement statement) throws ObDirectLoadException {
if (obVersion < OB_VERSION_4_3_2_0) {
if (obVersion < ObGlobal.OB_VERSION_4_3_2_0) {
// 432以下不支持inc|inc_replace
String loadMethod = statement.getLoadMethod();
if (!loadMethod.isEmpty() && !loadMethod.equalsIgnoreCase("full")) {
logger.warn("load method in ob version " + ObGlobal.getObVsnString(obVersion)
+ "is not supported, minimum version required is "
+ ObGlobal.getObVsnString(OB_VERSION_4_3_2_0));
+ ObGlobal.getObVsnString(ObGlobal.OB_VERSION_4_3_2_0));
throw new ObDirectLoadNotSupportedException(
"load method in ob version " + ObGlobal.getObVsnString(obVersion)
+ " is not supported, minimum version required is "
+ ObGlobal.getObVsnString(OB_VERSION_4_3_2_0));
+ ObGlobal.getObVsnString(ObGlobal.OB_VERSION_4_3_2_0));
}
} else if (obVersion < OB_VERSION_4_3_5_0 && statement.getPartitionNames().length > 0) {
} else if (obVersion < ObGlobal.OB_VERSION_4_3_5_0
&& statement.getPartitionNames().length > 0) {
logger.warn("partition names in ob version " + ObGlobal.getObVsnString(obVersion)
+ "is not supported, minimum version required is "
+ ObGlobal.getObVsnString(OB_VERSION_4_3_5_0));
+ ObGlobal.getObVsnString(ObGlobal.OB_VERSION_4_3_5_0));
throw new ObDirectLoadNotSupportedException(
"partition names in ob version " + ObGlobal.getObVsnString(obVersion)
+ " is not supported, minimum version required is "
+ ObGlobal.getObVsnString(OB_VERSION_4_3_5_0));
+ ObGlobal.getObVsnString(ObGlobal.OB_VERSION_4_3_5_0));
}
}

Expand Down Expand Up @@ -114,15 +105,25 @@ public ObDirectLoadHeartBeatRpc getHeartBeatRpc(ObDirectLoadTraceId traceId) {
@Override
public ObDirectLoadDetachRpc getDetachRpc(ObDirectLoadTraceId traceId)
throws ObDirectLoadException {
if (obVersion < OB_VERSION_4_3_0_0) {
if (obVersion < OB_VERSION_4_2_5_3) {
if (obVersion < ObGlobal.OB_VERSION_4_3_0_0) {
if (obVersion < ObGlobal.OB_VERSION_4_2_5_3) {
logger.warn("detach in ob version " + ObGlobal.getObVsnString(obVersion)
+ "is not supported, minimum version required is "
+ ObGlobal.getObVsnString(ObGlobal.OB_VERSION_4_2_5_3));
throw new ObDirectLoadNotSupportedException(
"detach in ob version " + ObGlobal.getObVsnString(obVersion)
+ " is not supported, minimum version required is "
+ ObGlobal.getObVsnString(ObGlobal.OB_VERSION_4_2_5_3));
}
} else if (obVersion < ObGlobal.OB_VERSION_4_5_0_0) {
if (obVersion < ObGlobal.OB_VERSION_4_4_2_0) {
logger.warn("detach in ob version " + ObGlobal.getObVsnString(obVersion)
+ "is not supported, minimum version required is "
+ ObGlobal.getObVsnString(OB_VERSION_4_2_5_3));
+ ObGlobal.getObVsnString(ObGlobal.OB_VERSION_4_4_2_0));
throw new ObDirectLoadNotSupportedException(
"detach in ob version " + ObGlobal.getObVsnString(obVersion)
+ " is not supported, minimum version required is "
+ ObGlobal.getObVsnString(OB_VERSION_4_2_5_3));
+ ObGlobal.getObVsnString(ObGlobal.OB_VERSION_4_4_2_0));
}
} else {
logger.warn("detach in ob version " + ObGlobal.getObVsnString(obVersion)
Expand Down