smengcl commented on code in PR #4315:
URL: https://github.com/apache/ozone/pull/4315#discussion_r1129936935


##########
hadoop-hdds/rocks-native/pom.xml:
##########
@@ -0,0 +1,405 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License. See accompanying LICENSE file.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0";
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+    <parent>
+        <artifactId>hdds</artifactId>
+        <groupId>org.apache.ozone</groupId>
+        <version>1.4.0-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+    <name>Apache Ozone HDDS RocksDB Tools</name>
+    <artifactId>hdds-rocks-native</artifactId>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.ozone</groupId>
+            <artifactId>hdds-managed-rocksdb</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-io</artifactId>
+        </dependency>
+    </dependencies>
+    <properties>
+        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>8</maven.compiler.target>
+    </properties>
+
+    <profiles>
+        <profile>
+            <id>rocks_tools_native</id>
+            <activation>
+                <property>
+                    <name>rocks_tools_native</name>
+                </property>
+            </activation>
+            <properties>
+                <cmake.standards>23</cmake.standards>
+                <sstDump.include>true</sstDump.include>
+            </properties>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>com.googlecode.maven-download-plugin</groupId>
+                        <artifactId>download-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>rocksdb source download</id>
+                                <phase>generate-sources</phase>
+                                <goals>
+                                    <goal>wget</goal>
+                                </goals>
+                                <configuration>
+                                    
<url>https://github.com/facebook/rocksdb/archive/refs/tags/v${rocksdb.version}.tar.gz</url>
+                                    
<outputFileName>rocksdb-v${rocksdb.version}.tar.gz</outputFileName>
+                                    
<outputDirectory>${project.build.directory}/rocksdb</outputDirectory>
+                                </configuration>
+                            </execution>
+                            <execution>
+                                <id>zlib source download</id>
+                                <phase>generate-sources</phase>
+                                <goals>
+                                    <goal>wget</goal>
+                                </goals>
+                                <configuration>
+                                    
<url>https://zlib.net/zlib-${zlib.version}.tar.gz</url>
+                                    
<outputFileName>zlib-${zlib.version}.tar.gz</outputFileName>
+                                    
<outputDirectory>${project.build.directory}/zlib</outputDirectory>
+                                </configuration>
+                            </execution>
+                            <execution>
+                                <id>bzip2 source download</id>
+                                <phase>generate-sources</phase>
+                                <goals>
+                                    <goal>wget</goal>
+                                </goals>
+                                <configuration>
+                                    
<url>https://sourceware.org/pub/bzip2/bzip2-${bzip2.version}.tar.gz</url>
+                                    
<outputFileName>bzip2-v${bzip2.version}.tar.gz</outputFileName>
+                                    
<outputDirectory>${project.build.directory}/bzip2</outputDirectory>
+                                </configuration>
+                            </execution>
+                            <execution>
+                                <id>lz4 source download</id>
+                                <phase>generate-sources</phase>
+                                <goals>
+                                    <goal>wget</goal>
+                                </goals>
+                                <configuration>
+                                    
<url>https://github.com/lz4/lz4/archive/refs/tags/v${lz4.version}.tar.gz</url>
+                                    
<outputFileName>lz4-v${lz4.version}.tar.gz</outputFileName>
+                                    
<outputDirectory>${project.build.directory}/lz4</outputDirectory>
+                                </configuration>
+                            </execution>
+                            <execution>
+                                <id>snappy source download</id>
+                                <phase>generate-sources</phase>
+                                <goals>
+                                    <goal>wget</goal>
+                                </goals>
+                                <configuration>
+                                    
<url>https://github.com/google/snappy/archive/refs/tags/${snappy.version}.tar.gz</url>
+                                    
<outputFileName>snappy-v${snappy.version}.tar.gz</outputFileName>
+                                    
<outputDirectory>${project.build.directory}/snappy</outputDirectory>
+                                </configuration>
+                            </execution>
+                            <execution>
+                                <id>zstd source download</id>
+                                <phase>generate-sources</phase>
+                                <goals>
+                                    <goal>wget</goal>
+                                </goals>
+                                <configuration>
+                                    
<url>https://github.com/facebook/zstd/archive/refs/tags/v${zstd.version}.tar.gz</url>
+                                    
<outputFileName>zstd-v${zstd.version}.tar.gz</outputFileName>
+                                    
<outputDirectory>${project.build.directory}/zstd</outputDirectory>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-patch-plugin</artifactId>
+                        <version>1.1.1</version>
+                        <configuration>
+                            
<patchFile>${basedir}/src/main/patches/rocks-native.patch</patchFile>
+                            <strip>1</strip>
+                            
<targetDirectory>${project.build.directory}/rocksdb/rocksdb-${rocksdb.version}</targetDirectory>
+                        </configuration>
+                        <executions>
+                            <execution>
+                                <id>patch</id>
+                                <phase>process-sources</phase>
+                                <goals>
+                                    <goal>apply</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    <plugin>
+                        <artifactId>maven-antrun-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>unzip-artifact</id>
+                                <phase>generate-sources</phase>
+                                <configuration>
+                                    <tasks>
+                                        <untar 
src="${project.build.directory}/rocksdb/rocksdb-v${rocksdb.version}.tar.gz" 
compression="gzip" dest="${project.build.directory}/rocksdb/" />
+                                        <untar 
src="${project.build.directory}/zlib/zlib-${zlib.version}.tar.gz" 
compression="gzip" dest="${project.build.directory}/zlib/" />
+                                        <untar 
src="${project.build.directory}/bzip2/bzip2-v${bzip2.version}.tar.gz" 
compression="gzip" dest="${project.build.directory}/bzip2/" />
+                                        <untar 
src="${project.build.directory}/lz4/lz4-v${lz4.version}.tar.gz" 
compression="gzip" dest="${project.build.directory}/lz4/" />
+                                        <untar 
src="${project.build.directory}/snappy/snappy-v${snappy.version}.tar.gz" 
compression="gzip" dest="${project.build.directory}/snappy/" />
+                                        <untar 
src="${project.build.directory}/zstd/zstd-v${zstd.version}.tar.gz" 
compression="gzip" dest="${project.build.directory}/zstd/" />
+                                    </tasks>
+                                </configuration>
+                                <goals>
+                                    <goal>run</goal>
+                                </goals>
+                            </execution>
+                            <execution>
+                                <id>build-zlib</id>
+                                <phase>process-sources</phase>
+                                <configuration>
+                                    <tasks>
+                                        <chmod 
file="${project.build.directory}/zlib/zlib-${zlib.version}/configure" 
perm="775" />
+                                        <exec executable="./configure" 
dir="${project.build.directory}/zlib/zlib-${zlib.version}" failonerror="true">
+                                            <arg line="--static"/>
+                                            <env key="CFLAGS" value="-fPIC"/>
+                                        </exec>
+                                        <exec executable="make" 
dir="${project.build.directory}/zlib/zlib-${zlib.version}" failonerror="true"/>
+                                    </tasks>
+                                </configuration>
+                                <goals>
+                                    <goal>run</goal>
+                                </goals>
+                            </execution>
+                            <execution>
+                                <id>build-bzip2</id>
+                                <phase>process-sources</phase>
+                                <configuration>
+                                    <tasks>
+                                        <exec executable="make" 
dir="${project.build.directory}/bzip2/bzip2-${bzip2.version}" 
failonerror="true">
+                                            <arg line="CFLAGS='-fPIC'"/>
+                                        </exec>
+                                    </tasks>
+                                </configuration>
+                                <goals>
+                                    <goal>run</goal>
+                                </goals>
+                            </execution>
+                            <execution>
+                                <id>build-lz4</id>
+                                <phase>process-sources</phase>
+                                <configuration>
+                                    <tasks>
+                                        <exec executable="make" 
dir="${project.build.directory}/lz4/lz4-${lz4.version}" failonerror="true">
+                                            <arg line="CFLAGS='-fPIC'"/>
+                                        </exec>
+                                    </tasks>
+                                </configuration>
+                                <goals>
+                                    <goal>run</goal>
+                                </goals>
+                            </execution>
+                            <execution>
+                                <id>build-zstd</id>
+                                <phase>process-sources</phase>
+                                <configuration>
+                                    <tasks>
+                                        <exec executable="make" 
dir="${project.build.directory}/zstd/zstd-${zstd.version}" failonerror="true">
+                                            <arg line="CFLAGS='-fPIC'"/>
+                                        </exec>
+                                    </tasks>
+                                </configuration>
+                                <goals>
+                                    <goal>run</goal>
+                                </goals>
+                            </execution>
+                            <execution>
+                                <id>build-snappy</id>
+                                <phase>process-sources</phase>
+                                <configuration>
+                                    <tasks>
+                                        <mkdir 
dir="${project.build.directory}/snappy/lib"/>
+                                        <exec executable="cmake" 
failonerror="true" dir="${project.build.directory}/snappy/lib">
+                                            <arg 
line="${project.build.directory}/snappy/snappy-${snappy.version}"/>
+                                            <env key="CFLAGS" value="-fPIC"/>
+                                            <env key="CXXFLAGS" value="-fPIC"/>
+                                        </exec>
+                                        <exec executable="make" 
dir="${project.build.directory}/snappy/lib" failonerror="true"/>
+                                    </tasks>
+                                </configuration>
+                                <goals>
+                                    <goal>run</goal>
+                                </goals>
+                            </execution>
+                            <execution>
+                                <id>build-rocksjava</id>
+                                <phase>process-resources</phase>
+                                <configuration>
+                                    <tasks>
+                                        <exec executable="chmod" 
failonerror="true">
+                                            <arg line="-R"/>
+                                            <arg line="775"/>
+                                            <arg 
line="${project.build.directory}/rocksdb/rocksdb-${rocksdb.version}"/>
+                                        </exec>
+                                        <exec executable="make" 
dir="${project.build.directory}/rocksdb/rocksdb-${rocksdb.version}" 
failonerror="true">
+                                            <arg line="EXTRA_CXXFLAGS='-fPIC 
-I${project.build.directory}/snappy/lib 
-I${project.build.directory}/snappy/snappy-${snappy.version} 
-I${project.build.directory}/lz4/lz4-${lz4.version}/lib 
-I${project.build.directory}/zstd/zstd-${zstd.version}/lib 
-I${project.build.directory}/zstd/zstd-${zstd.version}/lib/dictBuilder 
-I${project.build.directory}/bzip2/bzip2-${bzip2.version} 
-I${project.build.directory}/zlib/zlib-${zlib.version}'"/>
+                                            <arg 
line="EXTRA_LDFLAGS='-L${project.build.directory}/snappy/lib 
-L${project.build.directory}/lz4/lz4-${lz4.version}/lib 
-L${project.build.directory}/zstd/zstd-${zstd.version}/lib 
-L${project.build.directory}/bzip2/bzip2-${bzip2.version} 
-L${project.build.directory}/zlib/zlib-${zlib.version}'"/>
+                                            <arg line="-j4"/>

Review Comment:
   Is this the fastest the Github worker can run at with [7GB RAM and 
2-core](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources)
 before OOM?
   Does `-j5` or `-j6` yield any build time reduction?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to