Skip to content

Conversation

@zhongjiajie
Copy link
Member

the reason can see in https://lists.apache.org/thread/rmp7fghlj0n7h9y2v3p8gkw9f9qbo6qt

the major change in this patch is:

  • Add module dolphinscheduler-task-all-prune only contain artifactId starting with dolphinscheduler-task- to reduce the third part library from task plugin, cause service api-server and master-server only need dolphinscheduler-task- to verify parameter(api-server), get local parameter and resource(master-server), so it does not need others third-party dependence
  • Remove some not use dependencies in api-server and master-server.
  • Module tools dynamic load libs from other servers in binary tarball.

the binary tarball size is reduced to ASF limit 950MB

- -rw-r--r-- 1.2G apache-dolphinscheduler-dev-SNAPSHOT-bin.tar.gz
+ -rw-r--r-- 860M apache-dolphinscheduler-dev-SNAPSHOT-bin.tar.gz

<version>dev-SNAPSHOT</version>
</parent>

<artifactId>dolphinscheduler-task-all-prune</artifactId>
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not sure whether exists a better way to do that or not

        <dependency>
             <groupId>org.apache.dolphinscheduler</groupId>
             <artifactId>dolphinscheduler-task-dataquality</artifactId>
             <version>${project.version}</version>
             <exclusions>
                 <exclusion>
                     <groupId>*</groupId>
                     <artifactId>*</artifactId>
                 </exclusion>
             </exclusions>
         </dependency>

we exclude all libs but only keep dolphinscheduler-task-* themself

import lombok.experimental.UtilityClass;

import com.facebook.presto.jdbc.internal.guava.collect.ImmutableSet;
import com.google.common.collect.ImmutableSet;
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove dependence module dolphinscheduler-task-all and some of lib not exists anymore. so we have to change some code

Comment on lines +71 to +86
<exclude>libs/</exclude>
<exclude>bin/</exclude>
<exclude>dist-bin/</exclude>
</excludes>
</fileSet>

<fileSet>
<directory>${basedir}/../dolphinscheduler-dist/target/dolphinscheduler-dist-${project.version}</directory>
<outputDirectory>.</outputDirectory>
<directory>${basedir}/../dolphinscheduler-tools/target/tools/libs</directory>
<outputDirectory>tools/libs</outputDirectory>
<includes>
<include>dolphinscheduler-*.jar</include>
<include>spring-*.jar</include>
</includes>
</fileSet>
<fileSet>
<directory>${basedir}/../dolphinscheduler-tools/target/tools/dist-bin</directory>
<outputDirectory>tools/bin</outputDirectory>
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In binary package module tools, we only need some spring jar and use dir dist-bin to load libs from others server

Comment on lines +90 to +91
<directory>${basedir}/../dolphinscheduler-dist/target/dolphinscheduler-dist-${project.version}</directory>
<outputDirectory>.</outputDirectory>
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove ui directory in the root level of package, cause we already have the most use one under api-server


<dependency>
<groupId>org.apache.dolphinscheduler</groupId>
<artifactId>dolphinscheduler-storage-all</artifactId>
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

master do not need storage module

Comment on lines +29 to +37
CP=$DOLPHINSCHEDULER_HOME/tools/libs/*
for d in api-server; do
for f in $DOLPHINSCHEDULER_HOME/$d/libs/*.jar; do
JAR_FILE_NAME=${f##*/}
if [[ ! $CP =~ $JAR_FILE_NAME ]] && [[ ! $JAR_FILE_NAME =~ "dolphinscheduler-" ]] && [[ ! $JAR_FILE_NAME == "spring"* ]]; then
CP=$CP:$f
fi
done
done
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

load all libs in api-server exclusion dolphinscheduler-* and ^spring* to avoid launch service from api-server

@codecov-commenter
Copy link

codecov-commenter commented Oct 10, 2023

Codecov Report

❗ No coverage uploaded for pull request base (3.2.0-release@ab306ce). Click here to learn what that means.
The diff coverage is n/a.

❗ Current head 27c9d15 differs from pull request most recent head 4dfdb0d. Consider uploading reports for the commit 4dfdb0d to get more accurate results

@@               Coverage Diff                @@
##             3.2.0-release   #15004   +/-   ##
================================================
  Coverage                 ?   38.84%           
  Complexity               ?     4683           
================================================
  Files                    ?     1289           
  Lines                    ?    44345           
  Branches                 ?     4885           
================================================
  Hits                     ?    17225           
  Misses                   ?    25218           
  Partials                 ?     1902           

📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more

Copy link
Contributor

@caishunfeng caishunfeng left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@caishunfeng
Copy link
Contributor

Need to check docker and k8s way.

Copy link
Member

@SbloodyS SbloodyS left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's cool~

@ruanwenjun
Copy link
Member

We need to modify the license file.

@zhongjiajie
Copy link
Member Author

Need to check docker and k8s way.

@caishunfeng could you help check k8s?

@zhongjiajie
Copy link
Member Author

Need to check docker and k8s way.

Seems we already have K8S test in our CI

@github-actions github-actions bot added the test label Oct 11, 2023
@zhongjiajie zhongjiajie added this to the 3.2.0 milestone Oct 11, 2023
@zhongjiajie zhongjiajie merged commit 6d7dbe6 into apache:3.2.0-release Oct 11, 2023
@zhongjiajie zhongjiajie deleted the reduce-tarball-size branch October 11, 2023 08:19
@sonarqubecloud
Copy link

SonarCloud Quality Gate failed.    Quality Gate failed

Bug C 8 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot E 1 Security Hotspot
Code Smell A 111 Code Smells

22.9% 22.9% Coverage
1.3% 1.3% Duplication

idea Catch issues before they fail your Quality Gate with our IDE extension sonarlint SonarLint

zhongjiajie added a commit to zhongjiajie/dolphinscheduler that referenced this pull request Jan 31, 2024
zhongjiajie added a commit to zhongjiajie/dolphinscheduler that referenced this pull request Jan 31, 2024
wangxj3 pushed a commit to wangxj3/dolphinscheduler that referenced this pull request May 21, 2024
wangxj3 added a commit that referenced this pull request May 25, 2024
…ASF release (#16042)

* add version of 3.2.2

* Fix rpc channel leak due to concurrent operation (#16021)

* Fix rpc channel leak due to concurrent operation

* Throw channel create failed exception

---------

Co-authored-by: Rick Cheng <[email protected]>

* Fix WorkerTaskExecutorThreadPool#isOverload is incorrect (#16027)

* cp: Reduce the size of tarball to continue ASF release (#15004) (#15540)

* Reduce the size of tarball to continue ASF release

for more detail you can see https://lists.apache.org/thread/rmp7fghlj0n7h9y2v3p8gkw9f9qbo6qt
# Conflicts:
#	tools/dependencies/known-dependencies.txt

* Increase block-until-connected in ZookeeperRegistryTestCase (#16041)

* [Fix][CI] fix the ci error of Values.datasource.profile (#16031)

Co-authored-by: Eric Gao <[email protected]>

* Correction of Typos in the Chinese Document Appendix for Task Parameters (#16033)

Co-authored-by: Rick Cheng <[email protected]>

* [DSIP-39][parameter] Improvement startup parameters/global parameters/project parameters data type (#15967)

* [Improvement][parameter] New data types and type filtering

* [Improvement][parameter] Improvement startup parameters/global parameters data type

* fix api interfaces compatible

* add project parameter data type default value

* [Improvement][parameter] New data types and type filtering

* [Improvement][parameter] Improvement startup parameters/global parameters data type

* fix api interfaces compatible

* add project parameter data type default value

* improvement project code

* remove useless imports

* remove method onClearSearchTaskType

* add parameter doc

* optimisation logic

* code conflict resolution

* code conflict resolution

* [Improvement][Monitor] Show master && worker Busy Or Normal Status and Show Commands table list (#15978)

* update

* test

* add monitor enhance ui

* update

* update

* update doc

* fix spotless

* update

* update

* Update dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/DataAnalysisController.java

Co-authored-by: Wenjun Ruan <[email protected]>

* Update dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/DataAnalysisController.java

Co-authored-by: Wenjun Ruan <[email protected]>

* Update dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/ErrorCommandMapper.java

Co-authored-by: Wenjun Ruan <[email protected]>

* Update dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ErrorCommandMapper.xml

Co-authored-by: Wenjun Ruan <[email protected]>

* Update dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/CommandMapper.java

Co-authored-by: Wenjun Ruan <[email protected]>

* Update dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ErrorCommandMapper.xml

Co-authored-by: Wenjun Ruan <[email protected]>

* update

* fix spotless

* update

---------

Co-authored-by: Wenjun Ruan <[email protected]>

* [Improvement][Monitor] Add UT for montor (#15998)

* formatting Code

* add pom

* Fix NettyRemotingClient might throw IllegalMonitorStateException (#16038)

* Removed unused StateEventHandleFailure (#16052)

* Remove OmitStackTraceInFastThrow in start.sh (#16054)

* Update Chart.yaml Rollback APPversion

* modify log msg (#16062)

Co-authored-by: xiangzihao <[email protected]>

* [DS-16046][fix] Set PreparedStatement parameter type (#16050)

Fix the PreparedStatement parameter is TIME, set it to java.sql.Time

Co-authored-by: Aaron Wang <[email protected]>
Co-authored-by: Rick Cheng <[email protected]>

* Update pom.xml

* [DSIP-42] Add dolphinscheduler-aws-authentication module  (#16043)

---------

Co-authored-by: wangxj <wangxj31>
Co-authored-by: Wenjun Ruan <[email protected]>
Co-authored-by: Rick Cheng <[email protected]>
Co-authored-by: Eric Gao <[email protected]>
Co-authored-by: TianXinCoord <[email protected]>
Co-authored-by: 小可耐 <[email protected]>
Co-authored-by: sleo <[email protected]>
Co-authored-by: xiangzihao <[email protected]>
Co-authored-by: yinxiaolog <[email protected]>
Co-authored-by: Aaron Wang <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants