This is an automated email from the ASF dual-hosted git repository.

ethanfeng 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 3c7d179e0 [CELEBORN-636] Replace SimpleDateFormat with FastDateFormat
3c7d179e0 is described below

commit 3c7d179e051dce1dc4cf3a559a6761eadeccd9a6
Author: Cheng Pan <[email protected]>
AuthorDate: Tue Jun 6 12:59:32 2023 +0800

    [CELEBORN-636] Replace SimpleDateFormat with FastDateFormat
    
    ### What changes were proposed in this pull request?
    
    `SimpleDateFormat` is not thread-safe, replace it with a thread-safe 
`FastDateFormat`
    
    ### Why are the changes needed?
    
    `FastDateFormat` is a fast and thread-safe version of 
`java.text.SimpleDateFormat`.
    
    ### Does this PR introduce _any_ user-facing change?
    
    Yes, it's a bug fix.
    
    ### How was this patch tested?
    
    Manually review.
    
    Closes #1545 from pan3793/CELEBORN-636.
    
    Authored-by: Cheng Pan <[email protected]>
    Signed-off-by: Ethan Feng <[email protected]>
---
 .../scala/org/apache/celeborn/service/deploy/master/Master.scala    | 4 ++--
 .../main/scala/org/apache/celeborn/server/common/HttpService.scala  | 6 ++++--
 .../scala/org/apache/celeborn/service/deploy/worker/Worker.scala    | 2 +-
 3 files changed, 7 insertions(+), 5 deletions(-)

diff --git 
a/master/src/main/scala/org/apache/celeborn/service/deploy/master/Master.scala 
b/master/src/main/scala/org/apache/celeborn/service/deploy/master/Master.scala
index 4dc36b562..a137c6f0b 100644
--- 
a/master/src/main/scala/org/apache/celeborn/service/deploy/master/Master.scala
+++ 
b/master/src/main/scala/org/apache/celeborn/service/deploy/master/Master.scala
@@ -743,7 +743,7 @@ private[celeborn] class Master(
     val sb = new StringBuilder
     sb.append("======================= Lost Workers in Master 
========================\n")
     lostWorkersSnapshot.asScala.toSeq.sortBy(_._2).foreach { case (worker, 
time) =>
-      sb.append(s"${worker.toUniqueId().padTo(50, " 
").mkString}${simpleDateFormat.format(time)}\n")
+      sb.append(s"${worker.toUniqueId().padTo(50, " 
").mkString}${dateFmt.format(time)}\n")
     }
     sb.toString()
   }
@@ -786,7 +786,7 @@ private[celeborn] class Master(
     val sb = new StringBuilder
     sb.append("================= LifecycleManager Hostname List 
======================\n")
     statusSystem.appHeartbeatTime.asScala.toSeq.sortBy(_._2).foreach { case 
(appId, time) =>
-      sb.append(s"${appId.padTo(40, " 
").mkString}${simpleDateFormat.format(time)}\n")
+      sb.append(s"${appId.padTo(40, " ").mkString}${dateFmt.format(time)}\n")
     }
     sb.toString()
   }
diff --git 
a/service/src/main/scala/org/apache/celeborn/server/common/HttpService.scala 
b/service/src/main/scala/org/apache/celeborn/server/common/HttpService.scala
index bc075c531..47e2833cf 100644
--- a/service/src/main/scala/org/apache/celeborn/server/common/HttpService.scala
+++ b/service/src/main/scala/org/apache/celeborn/server/common/HttpService.scala
@@ -17,9 +17,10 @@
 
 package org.apache.celeborn.server.common
 
-import java.text.SimpleDateFormat
 import java.util.Locale
 
+import org.apache.commons.lang3.time.FastDateFormat
+
 import org.apache.celeborn.common.internal.Logging
 import org.apache.celeborn.server.common.http.{HttpRequestHandler, HttpServer, 
HttpServerInitializer}
 
@@ -27,7 +28,8 @@ abstract class HttpService extends Service with Logging {
 
   private var httpServer: HttpServer = _
 
-  protected val simpleDateFormat = new 
SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ", Locale.ROOT)
+  protected val dateFmt: FastDateFormat =
+    FastDateFormat.getInstance("yyyy-MM-dd'T'HH:mm:ss.SSSZ", Locale.ROOT)
 
   def getConf: String = {
     val sb = new StringBuilder
diff --git 
a/worker/src/main/scala/org/apache/celeborn/service/deploy/worker/Worker.scala 
b/worker/src/main/scala/org/apache/celeborn/service/deploy/worker/Worker.scala
index e62bf53da..c0a819d29 100644
--- 
a/worker/src/main/scala/org/apache/celeborn/service/deploy/worker/Worker.scala
+++ 
b/worker/src/main/scala/org/apache/celeborn/service/deploy/worker/Worker.scala
@@ -528,7 +528,7 @@ private[celeborn] class Worker(
     val sb = new StringBuilder
     sb.append("==================== Unavailable Peers of Worker 
=====================\n")
     unavailablePeers.asScala.foreach { case (peer, time) =>
-      sb.append(s"${peer.toUniqueId().padTo(50, " 
").mkString}${simpleDateFormat.format(time)}\n")
+      sb.append(s"${peer.toUniqueId().padTo(50, " 
").mkString}${dateFmt.format(time)}\n")
     }
     sb.toString()
   }

Reply via email to