@@ -360,18 +360,17 @@ public Map<Long, Map<Long, ObPair<ObTableParam, List<ObPair<Integer, ObTableSing
360360 false , false , obTableClient .getRoute (false ));
361361 long lsId = tableObPair .getRight ().getLsId ();
362362
363- Map <Long , ObPair <ObTableParam , List <ObPair <Integer , ObTableSingleOp >>>> tabletOperations
363+ Map <Long , ObPair <ObTableParam , List <ObPair <Integer , ObTableSingleOp >>>> tabletOperations
364364 = lsOperationsMap .computeIfAbsent (lsId , k -> new HashMap <>());
365- // if ls id not exists
365+ // if ls id not exists
366366
367- ObPair <ObTableParam , List <ObPair <Integer , ObTableSingleOp >>> singleOperations =
367+ ObPair <ObTableParam , List <ObPair <Integer , ObTableSingleOp >>> singleOperations =
368368 tabletOperations .computeIfAbsent (tableObPair .getLeft (), k -> new ObPair <>(tableObPair .getRight (), new ArrayList <>()));
369- // if tablet id not exists
370-
371- singleOperations .getRight ().add (new ObPair <>(i , operation ));
372- }
369+ // if tablet id not exists
370+ singleOperations .getRight ().add (new ObPair <>(i , operation ));
371+ }
373372
374- return lsOperationsMap ;
373+ return lsOperationsMap ;
375374 }
376375
377376 public Map <Long , Map <Long , ObPair <ObTableParam , List <ObPair <Integer , ObTableSingleOp >>>>> partitionPrepare ()
@@ -447,7 +446,8 @@ public void partitionExecute(ObTableSingleOpResult[] results,
447446 long startExecute = System .currentTimeMillis ();
448447 Set <String > failedServerList = null ;
449448 ObServerRoute route = null ;
450-
449+ // maybe get real table name
450+ String realTableName = obTableClient .getPhyTableNameFromTableGroup (tableLsOpRequest .getEntityType (), tableName );
451451 while (true ) {
452452 obTableClient .checkStatus ();
453453 long currentExecute = System .currentTimeMillis ();
@@ -456,7 +456,7 @@ public void partitionExecute(ObTableSingleOpResult[] results,
456456 logger .error ("table name: {} ls id:{} it has tried " + tryTimes
457457 + " times and it has waited " + costMillis + " ms"
458458 + " which exceeds runtime max wait timeout "
459- + obTableClient .getRuntimeMaxWait () + " ms" , tableName , lsId );
459+ + obTableClient .getRuntimeMaxWait () + " ms" , realTableName , lsId );
460460 throw new ObTableTimeoutExcetion ("it has tried " + tryTimes
461461 + " times and it has waited " + costMillis
462462 + "ms which exceeds runtime max wait timeout "
@@ -474,15 +474,15 @@ public void partitionExecute(ObTableSingleOpResult[] results,
474474 if (failedServerList != null ) {
475475 route .setBlackList (failedServerList );
476476 }
477- subObTable = obTableClient .getTableWithPartId (tableName , originPartId , needRefreshTableEntry ,
477+ subObTable = obTableClient .getTableWithPartId (realTableName , originPartId , needRefreshTableEntry ,
478478 obTableClient .isTableEntryRefreshIntervalWait (), false , route ).
479479 getRight ().getObTable ();
480480 }
481481 }
482482 ObPayload result = subObTable .execute (tableLsOpRequest );
483483 if (result != null && result .getPcode () == Pcodes .OB_TABLE_API_MOVE ) {
484484 ObTableApiMove moveResponse = (ObTableApiMove ) result ;
485- obTableClient .getRouteTableRefresher ().addTableIfAbsent (tableName , true );
485+ obTableClient .getRouteTableRefresher ().addTableIfAbsent (realTableName , true );
486486 obTableClient .getRouteTableRefresher ().triggerRefreshTable ();
487487 subObTable = obTableClient .getTable (moveResponse );
488488 result = subObTable .execute (tableLsOpRequest );
@@ -494,17 +494,17 @@ public void partitionExecute(ObTableSingleOpResult[] results,
494494 }
495495 }
496496 subLSOpResult = (ObTableLSOpResult ) result ;
497- obTableClient .resetExecuteContinuousFailureCount (tableName );
497+ obTableClient .resetExecuteContinuousFailureCount (realTableName );
498498 break ;
499499 } catch (Exception ex ) {
500500 if (obTableClient .isOdpMode ()) {
501501 logger .warn ("meet exception when execute ls batch in odp mode." +
502- "tablename: {}, errMsg: {}" , tableName , ex .getMessage ());
502+ "tablename: {}, errMsg: {}" , realTableName , ex .getMessage ());
503503 throw ex ;
504504 } else if (ex instanceof ObTableReplicaNotReadableException ) {
505505 if ((tryTimes - 1 ) < obTableClient .getRuntimeRetryTimes ()) {
506506 logger .warn ("tablename:{} ls id:{} retry when replica not readable: {}" ,
507- tableName , lsId , ex .getMessage ());
507+ realTableName , lsId , ex .getMessage ());
508508 if (failedServerList == null ) {
509509 failedServerList = new HashSet <String >();
510510 }
@@ -517,23 +517,23 @@ public void partitionExecute(ObTableSingleOpResult[] results,
517517 && ((ObTableException ) ex ).isNeedRefreshTableEntry ()) {
518518 needRefreshTableEntry = true ;
519519 logger .warn ("tablename:{} ls id:{} batch ops refresh table while meet ObTableMasterChangeException, errorCode: {}" ,
520- tableName , lsId , ((ObTableException ) ex ).getErrorCode (), ex );
520+ realTableName , lsId , ((ObTableException ) ex ).getErrorCode (), ex );
521521 if (obTableClient .isRetryOnChangeMasterTimes ()
522522 && (tryTimes - 1 ) < obTableClient .getRuntimeRetryTimes ()) {
523523 logger .warn ("tablename:{} ls id:{} batch ops retry while meet ObTableMasterChangeException, errorCode: {} , retry times {}" ,
524- tableName , lsId , ((ObTableException ) ex ).getErrorCode (),
524+ realTableName , lsId , ((ObTableException ) ex ).getErrorCode (),
525525 tryTimes , ex );
526526 if (ex instanceof ObTableNeedFetchAllException ) {
527- obTableClient .getOrRefreshTableEntry (tableName , needRefreshTableEntry ,
527+ obTableClient .getOrRefreshTableEntry (realTableName , needRefreshTableEntry ,
528528 obTableClient .isTableEntryRefreshIntervalWait (), true );
529529 throw ex ;
530530 }
531531 } else {
532- obTableClient .calculateContinuousFailure (tableName , ex .getMessage ());
532+ obTableClient .calculateContinuousFailure (realTableName , ex .getMessage ());
533533 throw ex ;
534534 }
535535 } else {
536- obTableClient .calculateContinuousFailure (tableName , ex .getMessage ());
536+ obTableClient .calculateContinuousFailure (realTableName , ex .getMessage ());
537537 throw ex ;
538538 }
539539 }
@@ -544,7 +544,7 @@ public void partitionExecute(ObTableSingleOpResult[] results,
544544
545545 if (subLSOpResult == null ) {
546546 RUNTIME .error ("table name:{} ls id:{} check batch operation result error: client get unexpected NULL result" ,
547- tableName , lsId );
547+ realTableName , lsId );
548548 throw new ObTableUnexpectedException ("check batch operation result error: client get unexpected NULL result" );
549549 }
550550
@@ -607,7 +607,7 @@ public void partitionExecute(ObTableSingleOpResult[] results,
607607
608608
609609 String endpoint = subObTable .getIp () + ":" + subObTable .getPort ();
610- MonitorUtil .info (tableLsOpRequest , subObTable .getDatabase (), tableName ,
610+ MonitorUtil .info (tableLsOpRequest , subObTable .getDatabase (), realTableName ,
611611 "LS_BATCH-Execute-" , endpoint , tableLsOp ,
612612 affectedRows , endExecute - startExecute ,
613613 obTableClient .getslowQueryMonitorThreshold ());
@@ -745,7 +745,7 @@ public void doTask() {
745745 // Execute sub-batch operation one by one
746746 for (final Map .Entry <Long , Map <Long , ObPair <ObTableParam , List <ObPair <Integer , ObTableSingleOp >>>>> entry : lsOperations
747747 .entrySet ()) {
748- partitionExecute (obTableOperationResults , entry );
748+ executeWithRetries (obTableOperationResults , entry , maxRetries );
749749 }
750750 }
751751
0 commit comments