This is an automated email from the ASF dual-hosted git repository.
angerszhuuuu pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-celeborn.git
The following commit(s) were added to refs/heads/main by this push:
new 81f7ffd7 [CELEBORN-332] Unify the log of ShuffleClientImpl (#1267)
81f7ffd7 is described below
commit 81f7ffd76739b3a42b44905abae1338dda4b8e96
Author: Angerszhuuuu <[email protected]>
AuthorDate: Fri Feb 24 14:07:25 2023 +0800
[CELEBORN-332] Unify the log of ShuffleClientImpl (#1267)
* [CELEBORN-332] Unify the log of ShuffleClientImpl
---
.../apache/celeborn/client/ShuffleClientImpl.java | 324 ++++++++++++++-------
1 file changed, 213 insertions(+), 111 deletions(-)
diff --git
a/client/src/main/java/org/apache/celeborn/client/ShuffleClientImpl.java
b/client/src/main/java/org/apache/celeborn/client/ShuffleClientImpl.java
index 5b71e2f3..d485e8c4 100644
--- a/client/src/main/java/org/apache/celeborn/client/ShuffleClientImpl.java
+++ b/client/src/main/java/org/apache/celeborn/client/ShuffleClientImpl.java
@@ -187,11 +187,23 @@ public class ShuffleClientImpl extends ShuffleClient {
new CelebornIOException("Revive Failed, remain revive times " +
remainReviveTimes));
} else if (mapperEnded(shuffleId, mapId, attemptId)) {
logger.debug(
- "Retrying push data, but the mapper(map {} attempt {}) has ended.",
mapId, attemptId);
+ "Revive for push data success, but the mapper already ended for
shuffle {} map {} attempt {} partition {} batch {}.",
+ shuffleId,
+ mapId,
+ attemptId,
+ partitionId,
+ batchId);
pushState.removeBatch(batchId, loc.hostAndPushPort());
} else {
PartitionLocation newLoc =
reducePartitionMap.get(shuffleId).get(partitionId);
- logger.info("Revive success, new location for reduce {} is {}.",
partitionId, newLoc);
+ logger.info(
+ "Revive for push data success, new location for shuffle {} map {}
attempt {} partition {} batch {} is location {}.",
+ shuffleId,
+ mapId,
+ attemptId,
+ partitionId,
+ batchId,
+ newLoc);
try {
if (!testRetryRevive || remainReviveTimes < 1) {
TransportClient client =
@@ -207,12 +219,14 @@ public class ShuffleClientImpl extends ShuffleClient {
"Mock push data submit retry failed. remainReviveTimes = " +
remainReviveTimes + ".");
}
} catch (Exception e) {
- logger.warn(
- "Exception raised while pushing data for shuffle {} map {} attempt
{}" + " batch {}.",
+ logger.error(
+ "Exception raised while pushing data for shuffle {} map {} attempt
{} partition {} batch {} location {}.",
shuffleId,
mapId,
attemptId,
+ partitionId,
batchId,
+ newLoc,
e);
wrappedCallback.onFailure(
new Exception(
@@ -260,10 +274,22 @@ public class ShuffleClientImpl extends ShuffleClient {
}
} else if (mapperEnded(shuffleId, mapId, attemptId)) {
logger.debug(
- "Retrying push data, but the mapper(map {} attempt {}) has
ended.", mapId, attemptId);
+ "Revive for push merged data success, but the mapper already ended
for shuffle {} map {} attempt {} partition {} batch {}.",
+ shuffleId,
+ mapId,
+ attemptId,
+ partitionId,
+ oldGroupedBatchId);
} else {
PartitionLocation newLoc =
reducePartitionMap.get(shuffleId).get(partitionId);
- logger.info("Revive success, new location for reduce {} is {}.",
partitionId, newLoc);
+ logger.info(
+ "Revive for push merged data success, new location for shuffle {}
map {} attempt {} partition {} batch {} is location {}.",
+ shuffleId,
+ mapId,
+ attemptId,
+ partitionId,
+ oldGroupedBatchId,
+ newLoc);
DataBatches newDataBatches =
newDataBatchesMap.computeIfAbsent(genAddressPair(newLoc), (s) ->
new DataBatches());
newDataBatches.addDataBatch(newLoc, batch.batchId, batch.body);
@@ -330,10 +356,12 @@ public class ShuffleClientImpl extends ShuffleClient {
String appId, int shuffleId, int numMappers, int mapId, int attemptId)
throws IOException {
int partitionId = PackedPartitionId.packedPartitionId(mapId, attemptId);
logger.info(
- "register mapPartitionTask, mapId: {}, attemptId: {}, partitionId: {}",
+ "Register MapPartition task for shuffle {} map {} attempt {} partition
{} with {} mapper.",
+ shuffleId,
mapId,
attemptId,
- partitionId);
+ partitionId,
+ numMappers);
ConcurrentHashMap<Integer, PartitionLocation> partitionLocationMap =
registerShuffleInternal(
shuffleId,
@@ -386,17 +414,17 @@ public class ShuffleClientImpl extends ShuffleClient {
return result;
} else if (StatusCode.SLOT_NOT_AVAILABLE.equals(respStatus)) {
logger.error(
- "LifecycleManager request slots return {}, retry again, remain
retry times {}",
+ "LifecycleManager request slots return {}, retry again, remain
retry times {}.",
StatusCode.SLOT_NOT_AVAILABLE,
numRetries - 1);
} else if (StatusCode.RESERVE_SLOTS_FAILED.equals(respStatus)) {
logger.error(
- "LifecycleManager request slots return {}, retry again, remain
retry times {}",
+ "LifecycleManager request slots return {}, retry again, remain
retry times {}.",
StatusCode.RESERVE_SLOTS_FAILED,
numRetries - 1);
} else {
logger.error(
- "LifecycleManager request slots return {}, retry again, remain
retry times {}",
+ "LifecycleManager request slots return {}, retry again, remain
retry times {}.",
StatusCode.REQUEST_FAILED,
numRetries - 1);
}
@@ -426,7 +454,8 @@ public class ShuffleClientImpl extends ShuffleClient {
boolean reachLimit = pushState.limitMaxInFlight(hostAndPushPort);
if (reachLimit) {
- throw new CelebornIOException("wait timeout for task " + mapKey,
pushState.exception.get());
+ throw new CelebornIOException(
+ "Waiting timeout for task " + mapKey, pushState.exception.get());
}
}
@@ -434,7 +463,8 @@ public class ShuffleClientImpl extends ShuffleClient {
boolean reachLimit = pushState.limitZeroInFlight();
if (reachLimit) {
- throw new CelebornIOException("wait timeout for task " + mapKey,
pushState.exception.get());
+ throw new CelebornIOException(
+ "Waiting timeout for task " + mapKey, pushState.exception.get());
}
}
@@ -450,7 +480,7 @@ public class ShuffleClientImpl extends ShuffleClient {
try {
TimeUnit.MILLISECONDS.sleep(sleepTimeMs);
} catch (InterruptedException e) {
- logger.warn("Wait revived location interrupted", e);
+ logger.error("Waiting revived location was interrupted.", e);
Thread.currentThread().interrupt();
}
}
@@ -471,10 +501,10 @@ public class ShuffleClientImpl extends ShuffleClient {
ConcurrentHashMap<Integer, PartitionLocation> map =
reducePartitionMap.get(shuffleId);
if (waitRevivedLocation(map, partitionId, epoch)) {
logger.debug(
- "Has already revived for shuffle {} map {} reduce {} epoch {},"
- + " just return(Assume revive successfully).",
+ "Revive already success for shuffle {} map {} attempt {} partition
{} epoch {}, just return true(Assume revive successfully).",
shuffleId,
mapId,
+ attemptId,
partitionId,
epoch);
return true;
@@ -482,10 +512,11 @@ public class ShuffleClientImpl extends ShuffleClient {
String mapKey = Utils.makeMapKey(shuffleId, mapId, attemptId);
if (mapperEnded(shuffleId, mapId, attemptId)) {
logger.debug(
- "The mapper(shuffle {} map {}) has already ended, just return(Assume"
- + " revive successfully).",
+ "Revive success, but the mapper ended for shuffle {} map {} attempt
{} partition {}, just return true(Assume revive successfully).",
shuffleId,
- mapId);
+ mapId,
+ attemptId,
+ partitionId);
return true;
}
@@ -509,6 +540,12 @@ public class ShuffleClientImpl extends ShuffleClient {
map.put(partitionId,
PbSerDeUtils.fromPbPartitionLocation(response.getLocation()));
return true;
} else if (StatusCode.MAP_ENDED.equals(respStatus)) {
+ logger.debug(
+ "Revive success, but the mapper ended for shuffle {} map {}
attempt {} partition {}, just return true(Assume revive successfully).",
+ shuffleId,
+ mapId,
+ attemptId,
+ partitionId);
mapperEndMap.computeIfAbsent(shuffleId, (id) ->
ConcurrentHashMap.newKeySet()).add(mapKey);
return true;
} else {
@@ -516,8 +553,10 @@ public class ShuffleClientImpl extends ShuffleClient {
}
} catch (Exception e) {
logger.error(
- "Exception raised while reviving for shuffle {} reduce {} epoch {}.",
+ "Exception raised while reviving for shuffle {} map {} attempt {}
partition {} epoch {}.",
shuffleId,
+ mapId,
+ attemptId,
partitionId,
epoch,
e);
@@ -544,10 +583,11 @@ public class ShuffleClientImpl extends ShuffleClient {
// return if shuffle stage already ended
if (mapperEnded(shuffleId, mapId, attemptId)) {
logger.debug(
- "The mapper(shuffle {} map {} attempt {}) has already ended while" +
" pushing data.",
+ "Push or merge data ignored because mapper already ended for shuffle
{} map {} attempt {} partition {}.",
shuffleId,
mapId,
- attemptId);
+ attemptId,
+ partitionId);
PushState pushState = pushStates.get(mapKey);
if (pushState != null) {
pushState.cleanup();
@@ -559,7 +599,7 @@ public class ShuffleClientImpl extends ShuffleClient {
getPartitionLocation(applicationId, shuffleId, numMappers,
numPartitions);
if (map == null) {
- throw new CelebornIOException("Register shuffle failed for shuffle " +
shuffleKey);
+ throw new CelebornIOException("Register shuffle failed for shuffle " +
shuffleKey + ".");
}
// get location
@@ -575,16 +615,17 @@ public class ShuffleClientImpl extends ShuffleClient {
null,
StatusCode.PUSH_DATA_FAIL_NON_CRITICAL_CAUSE)) {
throw new CelebornIOException(
- "Revive for shuffle " + shuffleKey + " partitionId " + partitionId
+ " failed.");
+ "Revive for shuffle " + shuffleKey + " partition " + partitionId +
" failed.");
}
}
if (mapperEnded(shuffleId, mapId, attemptId)) {
logger.debug(
- "The mapper(shuffle {} map {} attempt {}) has already ended while" +
" pushing data.",
+ "Push or merge data ignored because mapper already ended for shuffle
{} map {} attempt {} partition {}.",
shuffleId,
mapId,
- attemptId);
+ attemptId,
+ partitionId);
PushState pushState = pushStates.get(mapKey);
if (pushState != null) {
pushState.cleanup();
@@ -622,14 +663,6 @@ public class ShuffleClientImpl extends ShuffleClient {
compressor.getCompressedBuffer(), 0, body, BATCH_HEADER_SIZE,
compressedTotalSize);
if (doPush) {
- logger.debug(
- "Do push data for app {} shuffle {} map {} attempt {} reduce {}
batch {}.",
- applicationId,
- shuffleId,
- mapId,
- attemptId,
- partitionId,
- nextBatchId);
// check limit
limitMaxInFlight(mapKey, pushState, loc.hostAndPushPort());
@@ -654,11 +687,12 @@ public class ShuffleClientImpl extends ShuffleClient {
.add(mapKey);
}
logger.debug(
- "Push data to {}:{} success for map {} attempt {} batch {}.",
- loc.getHost(),
- loc.getPushPort(),
+ "Push data to {} success for shuffle {} map {} attempt {}
partition {} batch {}.",
+ loc.hostAndPushPort(),
+ shuffleId,
mapId,
attemptId,
+ partitionId,
nextBatchId);
}
@@ -667,11 +701,12 @@ public class ShuffleClientImpl extends ShuffleClient {
pushState.exception.compareAndSet(
null, new CelebornIOException("Revived PushData failed!",
e));
logger.error(
- "Push data to {}:{} failed for map {} attempt {} batch {}.",
- loc.getHost(),
- loc.getPushPort(),
+ "Push data to {} failed for shuffle {} map {} attempt {}
partition {} batch {}.",
+ loc.hostAndPushPort(),
+ shuffleId,
mapId,
attemptId,
+ partitionId,
nextBatchId,
e);
}
@@ -687,18 +722,24 @@ public class ShuffleClientImpl extends ShuffleClient {
byte reason = response.get();
if (reason == StatusCode.SOFT_SPLIT.getValue()) {
logger.debug(
- "Push data split required for map {} attempt {} batch
{}",
+ "Push data to {} soft split required for shuffle {} map
{} attempt {} partition {} batch {}.",
+ loc.hostAndPushPort(),
+ shuffleId,
mapId,
attemptId,
+ partitionId,
nextBatchId);
splitPartition(shuffleId, partitionId, applicationId, loc);
pushState.onSuccess(loc.hostAndPushPort());
callback.onSuccess(response);
} else if (reason == StatusCode.HARD_SPLIT.getValue()) {
logger.debug(
- "Push data split for map {} attempt {} batch {}.",
+ "Push data to {} hard split required for shuffle {} map
{} attempt {} partition {} batch {}.",
+ loc.hostAndPushPort(),
+ shuffleId,
mapId,
attemptId,
+ partitionId,
nextBatchId);
pushDataRetryPool.submit(
() ->
@@ -716,17 +757,23 @@ public class ShuffleClientImpl extends ShuffleClient {
remainReviveTimes));
} else if (reason ==
StatusCode.PUSH_DATA_SUCCESS_MASTER_CONGESTED.getValue()) {
logger.debug(
- "Push data split for map {} attempt {} batch {} return
master congested.",
+ "Push data to {} master congestion required for shuffle
{} map {} attempt {} partition {} batch {}.",
+ loc.hostAndPushPort(),
+ shuffleId,
mapId,
attemptId,
+ partitionId,
nextBatchId);
pushState.onCongestControl(loc.hostAndPushPort());
callback.onSuccess(response);
} else if (reason ==
StatusCode.PUSH_DATA_SUCCESS_SLAVE_CONGESTED.getValue()) {
logger.debug(
- "Push data split for map {} attempt {} batch {} return
slave congested.",
+ "Push data to {} slave congestion required for shuffle
{} map {} attempt {} partition {} batch {}.",
+ loc.hostAndPushPort(),
+ shuffleId,
mapId,
attemptId,
+ partitionId,
nextBatchId);
pushState.onCongestControl(loc.hostAndPushPort());
callback.onSuccess(response);
@@ -763,11 +810,12 @@ public class ShuffleClientImpl extends ShuffleClient {
}
logger.error(
- "Push data to {}:{} failed for map {} attempt {} batch {}.",
- loc.getHost(),
- loc.getPushPort(),
+ "Push data to {} failed for shuffle {} map {} attempt {}
partition {} batch {}.",
+ loc.hostAndPushPort(),
+ shuffleId,
mapId,
attemptId,
+ partitionId,
nextBatchId,
e);
// async retry push data
@@ -790,10 +838,12 @@ public class ShuffleClientImpl extends ShuffleClient {
} else {
pushState.removeBatch(nextBatchId, loc.hostAndPushPort());
logger.info(
- "Mapper shuffleId:{} mapId:{} attempt:{} already ended,
remove batchId:{}.",
+ "Push data to {} failed but mapper already ended for
shuffle {} map {} attempt {} partition {} batch {}.",
+ loc.hostAndPushPort(),
shuffleId,
mapId,
attemptId,
+ partitionId,
nextBatchId);
}
}
@@ -812,7 +862,15 @@ public class ShuffleClientImpl extends ShuffleClient {
new RuntimeException("Mock push data first time failed.")));
}
} catch (Exception e) {
- logger.warn("PushData failed", e);
+ logger.error(
+ "Exception raised while pushing data for shuffle {} map {} attempt
{} partition {} batch {} location {}.",
+ shuffleId,
+ mapId,
+ attemptId,
+ partitionId,
+ nextBatchId,
+ loc,
+ e);
wrappedCallback.onFailure(
new Exception(
StatusCode.PUSH_DATA_CREATE_CONNECTION_FAIL_MASTER.getMessage()
@@ -852,7 +910,7 @@ public class ShuffleClientImpl extends ShuffleClient {
synchronized (splittingSet) {
if (splittingSet.contains(partitionId)) {
logger.debug(
- "shuffle {} partitionId {} is splitting, skip split request ",
shuffleId, partitionId);
+ "Splitting for shuffle {} partition {}, skip split request.",
shuffleId, partitionId);
return;
}
splittingSet.add(partitionId);
@@ -981,6 +1039,7 @@ public class ShuffleClientImpl extends ShuffleClient {
pushState.addBatch(groupedBatchId, hostPort);
final int numBatches = batches.size();
+ final Integer[] partitionIds = new Integer[numBatches];
final String[] partitionUniqueIds = new String[numBatches];
final int[] offsets = new int[numBatches];
final int[] batchIds = new int[numBatches];
@@ -988,6 +1047,7 @@ public class ShuffleClientImpl extends ShuffleClient {
CompositeByteBuf byteBuf = Unpooled.compositeBuffer();
for (int i = 0; i < numBatches; i++) {
DataBatches.DataBatch batch = batches.get(i);
+ partitionIds[i] = batch.loc.getId();
partitionUniqueIds[i] = batch.loc.getUniqueId();
offsets[i] = currentSize;
batchIds[i] = batch.batchId;
@@ -1004,10 +1064,14 @@ public class ShuffleClientImpl extends ShuffleClient {
@Override
public void onSuccess(ByteBuffer response) {
logger.debug(
- "Push data success for map {} attempt {} grouped batch {}.",
+ "Push merged data to {} success for shuffle {} map {} attempt
{} partition {} groupedBatch {} batch {}.",
+ hostPort,
+ shuffleId,
mapId,
attemptId,
- groupedBatchId);
+ Arrays.toString(partitionIds),
+ groupedBatchId,
+ Arrays.toString(batchIds));
pushState.removeBatch(groupedBatchId, hostPort);
// TODO Need to adjust maxReqsInFlight if server response is
congested, see CELEBORN-62
if (response.remaining() > 0 && response.get() ==
StatusCode.STAGE_ENDED.getValue()) {
@@ -1022,21 +1086,30 @@ public class ShuffleClientImpl extends ShuffleClient {
String errorMsg =
(remainReviveTimes < maxReviveTimes ? "Revived push" : "Push")
+ " merged data to "
- + host
- + ":"
- + port
+ + hostPort
+ " failed for map "
+ mapId
+ " attempt "
+ attemptId
- + " batches "
+ + " partition "
+ + Arrays.toString(partitionIds)
+ + " groupedBatch "
+ + groupedBatchId
+ + " batch "
+ Arrays.toString(batchIds)
+ ".";
pushState.exception.compareAndSet(null, new
CelebornIOException(errorMsg, e));
if (logger.isDebugEnabled()) {
- for (int batchId : batchIds) {
+ for (int i = 0; i < numBatches; i++) {
logger.debug(
- "Push data failed for map {} attempt {} batch {}.", mapId,
attemptId, batchId);
+ "Push merged data to {} failed for shuffle {} map {}
attempt {} partition {} groupedBatch {} batch {}.",
+ hostPort,
+ shuffleId,
+ mapId,
+ attemptId,
+ partitionIds[i],
+ groupedBatchId,
+ batchIds[i]);
}
}
}
@@ -1050,13 +1123,14 @@ public class ShuffleClientImpl extends ShuffleClient {
byte reason = response.get();
if (reason == StatusCode.HARD_SPLIT.getValue()) {
logger.info(
- "Push merged data return hard split for map "
- + mapId
- + " attempt "
- + attemptId
- + " batches "
- + Arrays.toString(batchIds)
- + ".");
+ "Push merged data to {} hard split required for shuffle {}
map {} attempt {} partition {} groupedBatch {} batch {}.",
+ hostPort,
+ shuffleId,
+ mapId,
+ attemptId,
+ Arrays.toString(partitionIds),
+ groupedBatchId,
+ Arrays.toString(batchIds));
pushDataRetryPool.submit(
() ->
submitRetryPushMergedData(
@@ -1071,24 +1145,32 @@ public class ShuffleClientImpl extends ShuffleClient {
remainReviveTimes));
} else if (reason ==
StatusCode.PUSH_DATA_SUCCESS_MASTER_CONGESTED.getValue()) {
logger.debug(
- "Push data split for map {} attempt {} batchs {} return
master congested.",
+ "Push merged data to {} master congestion required for
shuffle {} map {} attempt {} partition {} groupedBatch {} batch {}.",
+ hostPort,
+ shuffleId,
mapId,
attemptId,
+ Arrays.toString(partitionIds),
+ groupedBatchId,
Arrays.toString(batchIds));
pushState.onCongestControl(hostPort);
callback.onSuccess(response);
} else if (reason ==
StatusCode.PUSH_DATA_SUCCESS_SLAVE_CONGESTED.getValue()) {
logger.debug(
- "Push data split for map {} attempt {} batchs {} return
slave congested.",
+ "Push merged data to {} slave congestion required for
shuffle {} map {} attempt {} partition {} groupedBatch {} batch {}.",
+ hostPort,
+ shuffleId,
mapId,
attemptId,
+ Arrays.toString(partitionIds),
+ groupedBatchId,
Arrays.toString(batchIds));
pushState.onCongestControl(hostPort);
callback.onSuccess(response);
} else {
// Should not happen in current architecture.
response.rewind();
- logger.error("Push merged data should not receive this
response");
+ logger.error("Push merged data should not receive this
response.");
pushState.onSuccess(hostPort);
callback.onSuccess(response);
}
@@ -1116,17 +1198,14 @@ public class ShuffleClientImpl extends ShuffleClient {
return;
}
logger.error(
- "Push merged data to "
- + host
- + ":"
- + port
- + " failed for map "
- + mapId
- + " attempt "
- + attemptId
- + " batches "
- + Arrays.toString(batchIds)
- + ".",
+ "Push merged data to {} failed for shuffle {} map {} attempt
{} partition {} groupedBatch {} batch {}.",
+ hostPort,
+ shuffleId,
+ mapId,
+ attemptId,
+ Arrays.toString(partitionIds),
+ groupedBatchId,
+ Arrays.toString(batchIds),
e);
if (!mapperEnded(shuffleId, mapId, attemptId)) {
pushDataRetryPool.submit(
@@ -1157,7 +1236,16 @@ public class ShuffleClientImpl extends ShuffleClient {
new RuntimeException("Mock push merge data failed.")));
}
} catch (Exception e) {
- logger.warn("PushMergedData failed", e);
+ logger.error(
+ "Exception raised while pushing merged data for shuffle {} map {}
attempt {} partition {} groupedBatch {} batch {} location {}.",
+ shuffleId,
+ mapId,
+ attemptId,
+ Arrays.toString(partitionIds),
+ groupedBatchId,
+ Arrays.toString(batchIds),
+ hostPort,
+ e);
wrappedCallback.onFailure(
new Exception(
StatusCode.PUSH_DATA_CREATE_CONNECTION_FAIL_MASTER.getMessage()
@@ -1236,7 +1324,7 @@ public class ShuffleClientImpl extends ShuffleClient {
} catch (Exception e) {
// If some exceptions need to be ignored, they shouldn't be logged as
error-level,
// otherwise it will mislead users.
- logger.warn("Send UnregisterShuffle failed, ignore.", e);
+ logger.error("Send UnregisterShuffle failed, ignore.", e);
}
}
@@ -1277,26 +1365,26 @@ public class ShuffleClientImpl extends ShuffleClient {
if (response.status() == StatusCode.SUCCESS) {
logger.info(
- "Shuffle {} request reducer file group success using time:{} ms,
result partition ids: {}",
+ "Shuffle {} request reducer file group success using {} ms,
result partition ids {}.",
shuffleId,
(System.nanoTime() - getReducerFileGroupStartTime) / 1000_000,
response.fileGroup().keySet());
return new ReduceFileGroups(response.fileGroup(),
response.attempts());
} else if (response.status() == StatusCode.STAGE_END_TIME_OUT) {
logger.warn(
- "Request {} return {} for {}",
+ "Request {} return {} for {}.",
getReducerFileGroup,
StatusCode.STAGE_END_TIME_OUT.toString(),
shuffleKey);
} else if (response.status() == StatusCode.SHUFFLE_DATA_LOST) {
logger.warn(
- "Request {} return {} for {}",
+ "Request {} return {} for {}.",
getReducerFileGroup,
StatusCode.SHUFFLE_DATA_LOST.toString(),
shuffleKey);
}
} catch (Exception e) {
- logger.error("Exception raised while call GetReducerFileGroup for " +
shuffleKey + ".", e);
+ logger.error("Exception raised while call GetReducerFileGroup for
{}.", shuffleKey, e);
}
return null;
}
@@ -1312,7 +1400,8 @@ public class ShuffleClientImpl extends ShuffleClient {
String applicationId, String shuffleKey, int shuffleId, int partitionId)
throws IOException {
ReduceFileGroups reduceFileGroups = updateFileGroup(applicationId,
shuffleKey, shuffleId);
if (reduceFileGroups == null) {
- String msg = "Shuffle data lost for shuffle " + shuffleId + " reduce " +
partitionId + "!";
+ String msg =
+ "Shuffle data lost for shuffle " + shuffleId + " partitionId " +
partitionId + "!";
logger.error(msg);
throw new CelebornIOException(msg);
}
@@ -1333,7 +1422,7 @@ public class ShuffleClientImpl extends ShuffleClient {
if (fileGroups.partitionGroups.size() == 0
|| !fileGroups.partitionGroups.containsKey(partitionId)) {
- logger.warn("Shuffle data is empty for shuffle {} partitionId {}.",
shuffleId, partitionId);
+ logger.warn("Shuffle data is empty for shuffle {} partition {}.",
shuffleId, partitionId);
return RssInputStream.empty();
} else {
return RssInputStream.create(
@@ -1390,7 +1479,7 @@ public class ShuffleClientImpl extends ShuffleClient {
}
private StatusCode getPushDataFailCause(String message) {
- logger.info("[getPushDataFailCause] message: " + message);
+ logger.debug("Push data failed cause message: " + message);
StatusCode cause;
if (message.startsWith(StatusCode.PUSH_DATA_FAIL_SLAVE.getMessage())) {
cause = StatusCode.PUSH_DATA_FAIL_SLAVE;
@@ -1439,9 +1528,9 @@ public class ShuffleClientImpl extends ShuffleClient {
final String shuffleKey = Utils.makeShuffleKey(applicationId, shuffleId);
// return if shuffle stage already ended
if (mapperEnded(shuffleId, mapId, attemptId)) {
- logger.debug(
- "The mapper(shuffle {} map {} attempt {}) has already ended while"
- + " pushing data byteBuf.",
+ logger.info(
+ "Push data byteBuf to location {} ignored because mapper already
ended for shuffle {} map {} attempt {}.",
+ location.hostAndPushPort(),
shuffleId,
mapId,
attemptId);
@@ -1498,9 +1587,9 @@ public class ShuffleClientImpl extends ShuffleClient {
}
}
logger.debug(
- "Push data byteBuf to {}:{} success for map {} attempt {}
batch {}.",
- location.getHost(),
- location.getPushPort(),
+ "Push data byteBuf to {} success for shuffle {} map {}
attemptId {} batch {}.",
+ location.hostAndPushPort(),
+ shuffleId,
mapId,
attemptId,
nextBatchId);
@@ -1516,16 +1605,17 @@ public class ShuffleClientImpl extends ShuffleClient {
pushState.exception.compareAndSet(
null, new CelebornIOException("PushData byteBuf failed!",
e));
logger.error(
- "Push data byteBuf to {}:{} failed for map {} attempt {}
batch {}.",
- location.getHost(),
- location.getPushPort(),
+ "Push data byteBuf to {} failed for shuffle {} map {}
attempt {} batch {}.",
+ location.hostAndPushPort(),
+ shuffleId,
mapId,
attemptId,
nextBatchId,
e);
} else {
logger.warn(
- "Mapper shuffleId:{} mapId:{} attempt:{} already ended,
remove batchId:{}.",
+ "Push data to {} failed but mapper already ended for shuffle
{} map {} attempt {} batch {}.",
+ location.hostAndPushPort(),
shuffleId,
mapId,
attemptId,
@@ -1538,7 +1628,15 @@ public class ShuffleClientImpl extends ShuffleClient {
TransportClient client = createClientWaitingInFlightRequest(location,
mapKey, pushState);
client.pushData(pushData, pushDataTimeout, callback, closeCallBack);
} catch (Exception e) {
- logger.warn("PushData byteBuf failed", e);
+ logger.error(
+ "Exception raised while pushing data byteBuf for shuffle {} map {}
attempt {} partitionId {} batch {} location {}.",
+ shuffleId,
+ mapId,
+ attemptId,
+ partitionId,
+ nextBatchId,
+ location,
+ e);
callback.onFailure(
new Exception(
StatusCode.PUSH_DATA_CREATE_CONNECTION_FAIL_MASTER.getMessage()
@@ -1588,11 +1686,11 @@ public class ShuffleClientImpl extends ShuffleClient {
() -> {
String shuffleKey = Utils.makeShuffleKey(applicationId, shuffleId);
logger.info(
- "pushDataHandShake shuffleKey:{}, attemptId:{}, locationId:{}",
+ "PushDataHandShake shuffleKey {} attemptId {} locationId {}",
shuffleKey,
attemptId,
location.getUniqueId());
- logger.debug("pushDataHandShake location:{}", location.toString());
+ logger.debug("PushDataHandShake location {}", location.toString());
TransportClient client =
createClientWaitingInFlightRequest(location, mapKey, pushState);
PushDataHandShake handShake =
new PushDataHandShake(
@@ -1628,12 +1726,12 @@ public class ShuffleClientImpl extends ShuffleClient {
() -> {
String shuffleKey = Utils.makeShuffleKey(applicationId, shuffleId);
logger.info(
- "regionStart regionId:{}, shuffleKey:{}, attemptId:{},
locationId:{}",
+ "RegionStart for shuffle {} regionId {} attemptId {} locationId
{}.",
+ shuffleId,
currentRegionIdx,
- shuffleKey,
attemptId,
location.getUniqueId());
- logger.debug("regionStart location:{}", location.toString());
+ logger.debug("RegionStart for location {}.", location.toString());
TransportClient client =
createClientWaitingInFlightRequest(location, mapKey, pushState);
RegionStart regionStart =
new RegionStart(
@@ -1673,11 +1771,13 @@ public class ShuffleClientImpl extends ShuffleClient {
} else {
// throw exception
logger.error(
- "Exception raised while reviving for shuffle {} reduce {}
epoch {}.",
+ "Exception raised while reviving for shuffle {} map {}
attemptId {} partition {} epoch {}.",
shuffleId,
+ mapId,
+ attemptId,
location.getId(),
location.getEpoch());
- throw new CelebornIOException("regiontstart revive failed");
+ throw new CelebornIOException("RegionStart revive failed");
}
}
return Optional.empty();
@@ -1699,11 +1799,12 @@ public class ShuffleClientImpl extends ShuffleClient {
() -> {
final String shuffleKey = Utils.makeShuffleKey(applicationId,
shuffleId);
logger.info(
- "regionFinish shuffleKey:{}, attemptId:{}, locationId:{}",
- shuffleKey,
+ "RegionFinish for shuffle {} map {} attemptId {} locationId {}.",
+ shuffleId,
+ mapId,
attemptId,
location.getUniqueId());
- logger.debug("regionFinish location:{}", location.toString());
+ logger.debug("RegionFinish for location {}.", location.toString());
TransportClient client =
createClientWaitingInFlightRequest(location, mapKey, pushState);
RegionFinish regionFinish =
new RegionFinish(MASTER_MODE, shuffleKey,
location.getUniqueId(), attemptId);
@@ -1727,7 +1828,8 @@ public class ShuffleClientImpl extends ShuffleClient {
// return if shuffle stage already ended
if (mapperEnded(shuffleId, mapId, attemptId)) {
logger.debug(
- "The mapper(shuffle {} map {} attempt {}) has already ended while"
+ " pushing data.",
+ "Send message to {} ignored because mapper already ended for
shuffle {} map {} attempt {}.",
+ location.hostAndPushPort(),
shuffleId,
mapId,
attemptId);
@@ -1763,7 +1865,7 @@ public class ShuffleClientImpl extends ShuffleClient {
while (!Thread.currentThread().isInterrupted()
&& !isSuccess
&& retryTimes <
conf.networkIoMaxRetries(TransportModuleConstants.PUSH_MODULE)) {
- logger.debug("retrySendMessage times: {}", retryTimes);
+ logger.debug("RetrySendMessage retry times {}.", retryTimes);
try {
result = supplier.get();
isSuccess = true;