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/celeborn.git


The following commit(s) were added to refs/heads/main by this push:
     new 8e66ac833 [CELEBORN-1994] Introduce disruptor dependency to support 
asynchronous logging of log4j2
8e66ac833 is described below

commit 8e66ac833aa4665d139775287d9b9b2c5ebf193d
Author: SteNicholas <[email protected]>
AuthorDate: Tue May 13 19:45:51 2025 +0800

    [CELEBORN-1994] Introduce disruptor dependency to support asynchronous 
logging of log4j2
    
    ### What changes were proposed in this pull request?
    
    Introduce disruptor dependency to support asynchronous logging of log4j2.
    
    ### Why are the changes needed?
    
    We add 
`-Dlog4j2.contextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector`
 in `CELEBORN_MASTER_JAVA_OPTS` and `CELEBORN_WOKRER_JAVA_OPTS` for production 
environment. `AsyncLoggerContextSelector` depends on disruptor dependency. 
Therefore, it's recommend to introduce disruptor dependency to support log4j2 
asynchronous loggers.
    
    ### Does this PR introduce _any_ user-facing change?
    
    No.
    
    ### How was this patch tested?
    
    Cluster test.
    
    Closes #3246 from SteNicholas/CELEBORN-1994.
    
    Authored-by: SteNicholas <[email protected]>
    Signed-off-by: mingji <[email protected]>
---
 LICENSE-binary               | 1 +
 dev/deps/dependencies-server | 1 +
 master/pom.xml               | 4 ++++
 pom.xml                      | 7 +++++++
 project/CelebornBuild.scala  | 4 ++++
 worker/pom.xml               | 4 ++++
 6 files changed, 21 insertions(+)

diff --git a/LICENSE-binary b/LICENSE-binary
index 20d746b1b..8228d461e 100644
--- a/LICENSE-binary
+++ b/LICENSE-binary
@@ -216,6 +216,7 @@ com.fasterxml.jackson.module:jackson-module-scala
 com.google.code.findbugs:jsr305
 com.google.guava:failureaccess
 com.google.guava:guava
+com.lmax:disruptor
 com.thoughtworks.paranamer:paranamer
 commons-cli:commons-cli
 commons-io:commons-io
diff --git a/dev/deps/dependencies-server b/dev/deps/dependencies-server
index 8f24085e3..eb08ed80f 100644
--- a/dev/deps/dependencies-server
+++ b/dev/deps/dependencies-server
@@ -25,6 +25,7 @@ commons-crypto/1.0.0//commons-crypto-1.0.0.jar
 commons-io/2.17.0//commons-io-2.17.0.jar
 commons-lang3/3.17.0//commons-lang3-3.17.0.jar
 commons-logging/1.1.3//commons-logging-1.1.3.jar
+disruptor/3.4.4//disruptor-3.4.4.jar
 failureaccess/1.0.2//failureaccess-1.0.2.jar
 guava/33.1.0-jre//guava-33.1.0-jre.jar
 hadoop-client-api/3.3.6//hadoop-client-api-3.3.6.jar
diff --git a/master/pom.xml b/master/pom.xml
index 94858ba63..b2b2b06cd 100644
--- a/master/pom.xml
+++ b/master/pom.xml
@@ -86,6 +86,10 @@
       <groupId>org.apache.logging.log4j</groupId>
       <artifactId>log4j-1.2-api</artifactId>
     </dependency>
+    <dependency>
+      <groupId>com.lmax</groupId>
+      <artifactId>disruptor</artifactId>
+    </dependency>
 
     <dependency>
       <groupId>org.apache.celeborn</groupId>
diff --git a/pom.xml b/pom.xml
index 0b7d37af0..31a38cda1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -90,6 +90,7 @@
     <junit.version>4.13.2</junit.version>
     <leveldb.version>1.8</leveldb.version>
     <log4j2.version>2.24.3</log4j2.version>
+    <disruptor.version>3.4.4</disruptor.version>
     <lz4-java.version>1.8.0</lz4-java.version>
     <mockito.version>4.11.0</mockito.version>
     <mockito-scalatest.version>1.17.14</mockito-scalatest.version>
@@ -245,6 +246,12 @@
         <artifactId>log4j-1.2-api</artifactId>
         <version>${log4j2.version}</version>
       </dependency>
+      <dependency>
+        <!-- log4j2 has an optional dependency on disruptor like 
AsyncLoggerContextSelector. -->
+        <groupId>com.lmax</groupId>
+        <artifactId>disruptor</artifactId>
+        <version>${disruptor.version}</version>
+      </dependency>
       <dependency>
         <groupId>io.dropwizard.metrics</groupId>
         <artifactId>metrics-core</artifactId>
diff --git a/project/CelebornBuild.scala b/project/CelebornBuild.scala
index e8818977f..ecd4fb4be 100644
--- a/project/CelebornBuild.scala
+++ b/project/CelebornBuild.scala
@@ -58,6 +58,7 @@ object Dependencies {
   val junitVersion = "4.13.2"
   val leveldbJniVersion = "1.8"
   val log4j2Version = "2.24.3"
+  val disruptorVersion = "3.4.4"
   val jdkToolsVersion = "0.1"
   val metricsVersion = "4.2.25"
   val mockitoVersion = "4.11.0"
@@ -148,6 +149,7 @@ object Dependencies {
   val log4jCore = "org.apache.logging.log4j" % "log4j-core" % log4j2Version
   val log4j12Api = "org.apache.logging.log4j" % "log4j-1.2-api" % log4j2Version
   val log4jSlf4jImpl = "org.apache.logging.log4j" % "log4j-slf4j-impl" % 
log4j2Version
+  val disruptor = "com.lmax" % "disruptor" % disruptorVersion
   val lz4Java = "org.lz4" % "lz4-java" % lz4JavaVersion
   val protobufJava = "com.google.protobuf" % "protobuf-java" % protoVersion
   val ratisClient = "org.apache.ratis" % "ratis-client" % ratisVersion
@@ -748,6 +750,7 @@ object CelebornMaster {
         Dependencies.hadoopClientApi,
         Dependencies.log4j12Api,
         Dependencies.log4jSlf4jImpl,
+        Dependencies.disruptor,
         Dependencies.ratisClient,
         Dependencies.ratisCommon,
         Dependencies.ratisGrpc,
@@ -783,6 +786,7 @@ object CelebornWorker {
         Dependencies.ioNetty,
         Dependencies.log4j12Api,
         Dependencies.log4jSlf4jImpl,
+        Dependencies.disruptor,
         Dependencies.leveldbJniAll,
         Dependencies.roaringBitmap,
         Dependencies.rocksdbJni,
diff --git a/worker/pom.xml b/worker/pom.xml
index 6d9c858a1..ad6b1156b 100644
--- a/worker/pom.xml
+++ b/worker/pom.xml
@@ -66,6 +66,10 @@
       <groupId>org.apache.logging.log4j</groupId>
       <artifactId>log4j-1.2-api</artifactId>
     </dependency>
+    <dependency>
+      <groupId>com.lmax</groupId>
+      <artifactId>disruptor</artifactId>
+    </dependency>
     <dependency>
       <groupId>org.rocksdb</groupId>
       <artifactId>rocksdbjni</artifactId>

Reply via email to