Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

S3A S3Seekable stream refactor + move S3AInputStream creation to factory under S3AStore #7295

Open
wants to merge 13 commits into
base: feature-HADOOP-19363-analytics-accelerator-s3
Choose a base branch
from

Conversation

rajdchak
Copy link

@rajdchak rajdchak commented Jan 17, 2025

Description of PR

Move InputStreamCreation to the new Factory

How was this patch tested?

Tested using the integration tests

For code changes:

  • Does the title or this PR starts with the corresponding JIRA issue id (e.g. 'HADOOP-17799. Your PR title ...')?
  • Object storage: have the integration tests been executed and the endpoint declared according to the connector-specific documentation?
  • If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
  • If applicable, have you updated the LICENSE, LICENSE-binary, NOTICE-binary files?

fuatbasik and others added 8 commits December 18, 2024 10:06
First iteration
* Factory interface with a parameter object creation method
* Base class AbstractS3AInputStream for all streams to create
* S3AInputStream subclasses that and has a factory
* Production and test code to use it

Not done
* Input stream callbacks pushed down to S3Store
* S3Store to dynamically choose factory at startup, stop in close()
* S3Store to implement the factory interface, completing final binding
  operations (callbacks, stats)

Change-Id: I8d0f86ca1f3463d4987a43924f155ce0c0644180
Revision

API: Make clear this is part of the fundamental store Model:

* abstract stream class is now ObjectInputStream
* interface is ObjectInputStreamFactory
* move to package org.apache.hadoop.fs.s3a.impl.model

Implementation: Prefetching stream is created this way too;
adds one extra parameter.

Maybe we should pass conf down too

Change-Id: I5bbb5dfe585528b047a649b6c82a9d0318c7e91e
Change-Id: If42bdd0b227c4da07c62a410a998e6d8c35581f6
Moves all prefetching stream related options into the prefetching stream
factory; the standard ReadOpContext removes them, so
a new PrefetchingOptions is passed around.

Stream factories can now declare how many extra shared threads they
want and whether or not to create a future pool around the bounded pool.
This is used in S3AFileSystem when creating its thread pools -this class
no longer reads in any of the prefetching options.

All tests which enable/disable prefetching, or probe for its state,
now use S3ATestUtils methods for this.
This avoids them having to now explicitly unset two properties,
set the new input stream type, and any more complications in test
setup in future.

Everything under S3AStore is a service, so service lifecycle matches everywhere
-and store just adds to the list of managed services for start/stop/close
integration.

+ adjust assertions in ITestS3AInputStreamLeakage for prefetching
+ update the prefetching.md doc for factory changs
+ javadocs
+ add string values of type names to Constants

Once the analytics stream is in, a full doc on "stream performance"
will be needed.

package for this stuff is now impl.streams

Change-Id: Id6356d2ded2c477ba16cbb9027ac0cfbece2a542
Push factory construction into the enum itself

Store implements stream capabilities, which are then
relayed to the active factory. This avoids the FS having
to know what capabilities are available in the stream.

Abstract base class for stream factories.

Change-Id: Ib757e6696f29cc7e0e8edd1119e738c6adc6f98f
Change-Id: Id79f8aa019095c1601bb0b2a282c51bdb0b7b817
Conflicts:
  hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/S3AFileSystem.java

Change-Id: I1eddd195a9a3e3332bfaac2e225acf69774c3ce8
Copy link

@fuatbasik fuatbasik left a comment

Choose a reason for hiding this comment

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

Thanks a lot @rajdchak for this change. I put some minor comments.

@@ -230,7 +232,23 @@ public class S3AStoreImpl
@Override
protected void serviceInit(final Configuration conf) throws Exception {

objectInputStreamFactory = createStreamFactory(conf);
if(conf.getBoolean(ANALYTICS_ACCELERATOR_ENABLED_KEY, ANALYTICS_ACCELERATOR_ENABLED_DEFAULT)) {

Choose a reason for hiding this comment

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

are we still doing this or using the new StreamKind? See here:

Adds a new config, fs.s3a.input.stream.type. This can be set to classic, prefetch, analytics. Believe this is better than having multipleprefetch.enabled and analytics.enabled flags.

Copy link
Author

@rajdchak rajdchak Jan 20, 2025

Choose a reason for hiding this comment

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

Our S3SeekableInputStreamFactory requires s3AsyncClient to be passed in the constructor S3SeekableInputStreamFactory(S3AsyncClient s3AsyncClient) {
super("S3SeekableInputStreamFactory");
this.s3AsyncClient = s3AsyncClient;
}

I couldn't create that in the InputStreamType enum that Steve made, so kept it this way for now

Copy link
Contributor

Choose a reason for hiding this comment

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

Can you comment on this in that PR, ask for ClientManager to be passed in. This will have to come after serviceInit, as it won't exist until then.

Copy link
Contributor

Choose a reason for hiding this comment

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

this should go into the StreamIntegration.createStreamFactory() method in my opinion. And over there, you want to use the InputStreamType.Analytics in the conf check.

You can update the enum, so that the factory method takes parameters. Something like:

  public Function<Configuration, ObjectInputStreamFactory> factory(FactoryParameters factoryParameters) {
    return factory;
  }

In the createStreamFactory method, you can do:

    if (conf.getEnum(INPUT_STREAM_TYPE, defaultStream) == InputStreamType.Analytics) {
       new FactoryParameters.withS3Client()
    }

Let's discuss in case it's not clear!

Copy link
Author

Choose a reason for hiding this comment

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

@ahmarsuhail we need to create the async client and the method for that is in the S3AStoreImpl, I can may be move this if else statement to what Fuat is suggesting in the same class but a different method getOrCreateAsyncCRTClient, but cannot move this client creation to StreamIntegration.createStreamFactory()

Copy link
Author

Choose a reason for hiding this comment

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

done some modifications in the latest changes

LOG.info("Using S3SeekableInputStream");
if(analyticsAcceleratorCRTEnabled) {
LOG.info("Using S3 CRT client for analytics accelerator S3");
s3AsyncClient = S3CrtAsyncClient.builder().maxConcurrency(600).build();

Choose a reason for hiding this comment

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

similar to other shall we move this to a method getOrCreateAsyncCRTClient? or maybe even change the existing method to make a decision to use CRT or not?

Copy link
Contributor

Choose a reason for hiding this comment

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

OK for the WiP, but it will be culled later

Copy link
Contributor

Choose a reason for hiding this comment

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

Agree with Fuat, we can't merge with client creation here.

Copy link
Author

Choose a reason for hiding this comment

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

moved to a different method


import static org.apache.hadoop.fs.s3a.Constants.*;

public class S3SeekableInputStreamFactory extends AbstractObjectInputStreamFactory {

Choose a reason for hiding this comment

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

What about renaming this to S3ASeekableInputStreamFactory. This is inline with the S3ASeekableInputStream name and also we can get rid of full-path reference in the below lines

Copy link
Author

Choose a reason for hiding this comment

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

done

@hadoop-yetus
Copy link

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 31s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 2s No case conflicting files found.
+0 🆗 codespell 0m 0s codespell was not available.
+0 🆗 detsecrets 0m 0s detect-secrets was not available.
+0 🆗 xmllint 0m 0s xmllint was not available.
+0 🆗 markdownlint 0m 0s markdownlint was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 51 new or modified test files.
_ feature-HADOOP-19363-analytics-accelerator-s3 Compile Tests _
+0 🆗 mvndep 5m 57s Maven dependency ordering for branch
+1 💚 mvninstall 30m 13s feature-HADOOP-19363-analytics-accelerator-s3 passed
+1 💚 compile 16m 43s feature-HADOOP-19363-analytics-accelerator-s3 passed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04
+1 💚 compile 15m 45s feature-HADOOP-19363-analytics-accelerator-s3 passed with JDK Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga
+1 💚 checkstyle 4m 12s feature-HADOOP-19363-analytics-accelerator-s3 passed
+1 💚 mvnsite 1m 43s feature-HADOOP-19363-analytics-accelerator-s3 passed
+1 💚 javadoc 1m 38s feature-HADOOP-19363-analytics-accelerator-s3 passed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04
+1 💚 javadoc 1m 25s feature-HADOOP-19363-analytics-accelerator-s3 passed with JDK Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga
+1 💚 spotbugs 2m 40s feature-HADOOP-19363-analytics-accelerator-s3 passed
+1 💚 shadedclient 37m 38s branch has no errors when building and testing our client artifacts.
-0 ⚠️ patch 38m 4s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 33s Maven dependency ordering for patch
+1 💚 mvninstall 1m 3s the patch passed
+1 💚 compile 17m 26s the patch passed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04
+1 💚 javac 17m 26s the patch passed
+1 💚 compile 15m 7s the patch passed with JDK Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga
+1 💚 javac 15m 7s the patch passed
+1 💚 blanks 0m 0s The patch has no blanks issues.
-0 ⚠️ checkstyle 4m 10s /results-checkstyle-root.txt root: The patch generated 47 new + 34 unchanged - 6 fixed = 81 total (was 40)
+1 💚 mvnsite 1m 38s the patch passed
-1 ❌ javadoc 0m 47s /patch-javadoc-hadoop-tools_hadoop-aws-jdkUbuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04.txt hadoop-aws in the patch failed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04.
-1 ❌ javadoc 0m 44s /patch-javadoc-hadoop-tools_hadoop-aws-jdkPrivateBuild-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga.txt hadoop-aws in the patch failed with JDK Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga.
+1 💚 spotbugs 3m 11s the patch passed
+1 💚 shadedclient 37m 40s patch has no errors when building and testing our client artifacts.
_ Other Tests _
-1 ❌ unit 29m 49s /patch-unit-hadoop-hdfs-project_hadoop-hdfs-rbf.txt hadoop-hdfs-rbf in the patch passed.
+1 💚 unit 3m 0s hadoop-aws in the patch passed.
-1 ❌ asflicense 0m 57s /results-asflicense.txt The patch generated 1 ASF License warnings.
241m 21s
Reason Tests
Failed junit tests hadoop.hdfs.server.federation.router.TestRouterRpcMultiDestination
Subsystem Report/Notes
Docker ClientAPI=1.47 ServerAPI=1.47 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7295/1/artifact/out/Dockerfile
GITHUB PR #7295
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell detsecrets xmllint markdownlint
uname Linux 581ce05f3dd3 5.15.0-124-generic #134-Ubuntu SMP Fri Sep 27 20:20:17 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision feature-HADOOP-19363-analytics-accelerator-s3 / 26977dc
Default Java Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga
Multi-JDK versions /usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7295/1/testReport/
Max. process+thread count 3736 (vs. ulimit of 5500)
modules C: hadoop-hdfs-project/hadoop-hdfs-rbf hadoop-tools/hadoop-aws U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7295/1/console
versions git=2.25.1 maven=3.6.3 spotbugs=4.2.2
Powered by Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

@hadoop-yetus
Copy link

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 6m 22s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 1s No case conflicting files found.
+0 🆗 codespell 0m 0s codespell was not available.
+0 🆗 detsecrets 0m 0s detect-secrets was not available.
+0 🆗 xmllint 0m 0s xmllint was not available.
+0 🆗 markdownlint 0m 0s markdownlint was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 51 new or modified test files.
_ feature-HADOOP-19363-analytics-accelerator-s3 Compile Tests _
+0 🆗 mvndep 5m 39s Maven dependency ordering for branch
+1 💚 mvninstall 19m 17s feature-HADOOP-19363-analytics-accelerator-s3 passed
+1 💚 compile 9m 12s feature-HADOOP-19363-analytics-accelerator-s3 passed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04
+1 💚 compile 8m 34s feature-HADOOP-19363-analytics-accelerator-s3 passed with JDK Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga
+1 💚 checkstyle 1m 54s feature-HADOOP-19363-analytics-accelerator-s3 passed
+1 💚 mvnsite 1m 0s feature-HADOOP-19363-analytics-accelerator-s3 passed
+1 💚 javadoc 0m 57s feature-HADOOP-19363-analytics-accelerator-s3 passed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04
+1 💚 javadoc 0m 50s feature-HADOOP-19363-analytics-accelerator-s3 passed with JDK Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga
+1 💚 spotbugs 1m 30s feature-HADOOP-19363-analytics-accelerator-s3 passed
+1 💚 shadedclient 22m 7s branch has no errors when building and testing our client artifacts.
-0 ⚠️ patch 22m 24s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 20s Maven dependency ordering for patch
+1 💚 mvninstall 0m 43s the patch passed
+1 💚 compile 9m 59s the patch passed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04
+1 💚 javac 9m 59s the patch passed
+1 💚 compile 8m 38s the patch passed with JDK Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga
+1 💚 javac 8m 38s the patch passed
+1 💚 blanks 0m 0s The patch has no blanks issues.
-0 ⚠️ checkstyle 2m 1s /results-checkstyle-root.txt root: The patch generated 42 new + 34 unchanged - 6 fixed = 76 total (was 40)
+1 💚 mvnsite 1m 1s the patch passed
-1 ❌ javadoc 0m 28s /patch-javadoc-hadoop-tools_hadoop-aws-jdkUbuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04.txt hadoop-aws in the patch failed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04.
-1 ❌ javadoc 0m 32s /patch-javadoc-hadoop-tools_hadoop-aws-jdkPrivateBuild-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga.txt hadoop-aws in the patch failed with JDK Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga.
+1 💚 spotbugs 1m 59s the patch passed
+1 💚 shadedclient 22m 40s patch has no errors when building and testing our client artifacts.
_ Other Tests _
-1 ❌ unit 38m 54s /patch-unit-hadoop-hdfs-project_hadoop-hdfs-rbf.txt hadoop-hdfs-rbf in the patch passed.
+1 💚 unit 2m 24s hadoop-aws in the patch passed.
-1 ❌ asflicense 0m 42s /results-asflicense.txt The patch generated 1 ASF License warnings.
172m 16s
Reason Tests
Failed junit tests hadoop.fs.contract.router.TestRouterHDFSContractRootDirectorySecure
hadoop.fs.contract.router.TestRouterHDFSContractOpenSecure
hadoop.fs.contract.router.TestRouterHDFSContractSetTimes
hadoop.fs.contract.router.TestRouterHDFSContractConcatSecure
hadoop.fs.contract.router.TestRouterHDFSContractGetFileStatus
Subsystem Report/Notes
Docker ClientAPI=1.47 ServerAPI=1.47 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7295/3/artifact/out/Dockerfile
GITHUB PR #7295
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell detsecrets xmllint markdownlint
uname Linux 02891828666b 5.15.0-124-generic #134-Ubuntu SMP Fri Sep 27 20:20:17 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision feature-HADOOP-19363-analytics-accelerator-s3 / 6fc63b7
Default Java Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga
Multi-JDK versions /usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7295/3/testReport/
Max. process+thread count 3341 (vs. ulimit of 5500)
modules C: hadoop-hdfs-project/hadoop-hdfs-rbf hadoop-tools/hadoop-aws U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7295/3/console
versions git=2.25.1 maven=3.6.3 spotbugs=4.2.2
Powered by Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

@hadoop-yetus
Copy link

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 43s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 2s No case conflicting files found.
+0 🆗 codespell 0m 0s codespell was not available.
+0 🆗 detsecrets 0m 0s detect-secrets was not available.
+0 🆗 xmllint 0m 0s xmllint was not available.
+0 🆗 markdownlint 0m 0s markdownlint was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 51 new or modified test files.
_ feature-HADOOP-19363-analytics-accelerator-s3 Compile Tests _
+0 🆗 mvndep 5m 42s Maven dependency ordering for branch
+1 💚 mvninstall 33m 2s feature-HADOOP-19363-analytics-accelerator-s3 passed
+1 💚 compile 16m 28s feature-HADOOP-19363-analytics-accelerator-s3 passed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04
+1 💚 compile 15m 26s feature-HADOOP-19363-analytics-accelerator-s3 passed with JDK Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga
+1 💚 checkstyle 5m 11s feature-HADOOP-19363-analytics-accelerator-s3 passed
+1 💚 mvnsite 1m 45s feature-HADOOP-19363-analytics-accelerator-s3 passed
+1 💚 javadoc 1m 43s feature-HADOOP-19363-analytics-accelerator-s3 passed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04
+1 💚 javadoc 1m 28s feature-HADOOP-19363-analytics-accelerator-s3 passed with JDK Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga
+1 💚 spotbugs 2m 47s feature-HADOOP-19363-analytics-accelerator-s3 passed
+1 💚 shadedclient 36m 41s branch has no errors when building and testing our client artifacts.
-0 ⚠️ patch 37m 6s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 29s Maven dependency ordering for patch
+1 💚 mvninstall 1m 3s the patch passed
+1 💚 compile 15m 58s the patch passed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04
+1 💚 javac 15m 58s the patch passed
+1 💚 compile 15m 6s the patch passed with JDK Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga
+1 💚 javac 15m 6s the patch passed
+1 💚 blanks 0m 0s The patch has no blanks issues.
-0 ⚠️ checkstyle 4m 48s /results-checkstyle-root.txt root: The patch generated 47 new + 34 unchanged - 6 fixed = 81 total (was 40)
+1 💚 mvnsite 1m 41s the patch passed
-1 ❌ javadoc 0m 50s /patch-javadoc-hadoop-tools_hadoop-aws-jdkUbuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04.txt hadoop-aws in the patch failed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04.
-1 ❌ javadoc 0m 44s /patch-javadoc-hadoop-tools_hadoop-aws-jdkPrivateBuild-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga.txt hadoop-aws in the patch failed with JDK Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga.
+1 💚 spotbugs 3m 17s the patch passed
+1 💚 shadedclient 37m 47s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 unit 30m 10s hadoop-hdfs-rbf in the patch passed.
+1 💚 unit 3m 6s hadoop-aws in the patch passed.
-1 ❌ asflicense 1m 5s /results-asflicense.txt The patch generated 1 ASF License warnings.
244m 9s
Subsystem Report/Notes
Docker ClientAPI=1.47 ServerAPI=1.47 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7295/2/artifact/out/Dockerfile
GITHUB PR #7295
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell detsecrets xmllint markdownlint
uname Linux c3a3e3db058e 5.15.0-124-generic #134-Ubuntu SMP Fri Sep 27 20:20:17 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision feature-HADOOP-19363-analytics-accelerator-s3 / 98bc8f4
Default Java Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga
Multi-JDK versions /usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7295/2/testReport/
Max. process+thread count 3796 (vs. ulimit of 5500)
modules C: hadoop-hdfs-project/hadoop-hdfs-rbf hadoop-tools/hadoop-aws U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7295/2/console
versions git=2.25.1 maven=3.6.3 spotbugs=4.2.2
Powered by Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

@hadoop-yetus
Copy link

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 38s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 2s No case conflicting files found.
+0 🆗 codespell 0m 1s codespell was not available.
+0 🆗 detsecrets 0m 1s detect-secrets was not available.
+0 🆗 xmllint 0m 1s xmllint was not available.
+0 🆗 markdownlint 0m 1s markdownlint was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 52 new or modified test files.
_ feature-HADOOP-19363-analytics-accelerator-s3 Compile Tests _
+0 🆗 mvndep 6m 32s Maven dependency ordering for branch
+1 💚 mvninstall 30m 4s feature-HADOOP-19363-analytics-accelerator-s3 passed
+1 💚 compile 16m 25s feature-HADOOP-19363-analytics-accelerator-s3 passed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04
+1 💚 compile 14m 50s feature-HADOOP-19363-analytics-accelerator-s3 passed with JDK Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga
+1 💚 checkstyle 4m 14s feature-HADOOP-19363-analytics-accelerator-s3 passed
+1 💚 mvnsite 1m 49s feature-HADOOP-19363-analytics-accelerator-s3 passed
+1 💚 javadoc 1m 48s feature-HADOOP-19363-analytics-accelerator-s3 passed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04
+1 💚 javadoc 1m 29s feature-HADOOP-19363-analytics-accelerator-s3 passed with JDK Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga
+1 💚 spotbugs 2m 48s feature-HADOOP-19363-analytics-accelerator-s3 passed
+1 💚 shadedclient 34m 50s branch has no errors when building and testing our client artifacts.
-0 ⚠️ patch 35m 16s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 32s Maven dependency ordering for patch
+1 💚 mvninstall 0m 59s the patch passed
+1 💚 compile 15m 39s the patch passed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04
+1 💚 javac 15m 39s the patch passed
+1 💚 compile 14m 59s the patch passed with JDK Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga
+1 💚 javac 14m 59s the patch passed
+1 💚 blanks 0m 0s The patch has no blanks issues.
-0 ⚠️ checkstyle 4m 13s /results-checkstyle-root.txt root: The patch generated 40 new + 34 unchanged - 6 fixed = 74 total (was 40)
+1 💚 mvnsite 1m 48s the patch passed
-1 ❌ javadoc 0m 52s /patch-javadoc-hadoop-tools_hadoop-aws-jdkUbuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04.txt hadoop-aws in the patch failed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04.
-1 ❌ javadoc 0m 48s /patch-javadoc-hadoop-tools_hadoop-aws-jdkPrivateBuild-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga.txt hadoop-aws in the patch failed with JDK Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga.
+1 💚 spotbugs 3m 12s the patch passed
+1 💚 shadedclient 34m 1s patch has no errors when building and testing our client artifacts.
_ Other Tests _
-1 ❌ unit 30m 7s /patch-unit-hadoop-hdfs-project_hadoop-hdfs-rbf.txt hadoop-hdfs-rbf in the patch passed.
+1 💚 unit 3m 4s hadoop-aws in the patch passed.
-1 ❌ asflicense 1m 4s /results-asflicense.txt The patch generated 1 ASF License warnings.
234m 16s
Reason Tests
Failed junit tests hadoop.hdfs.server.federation.router.TestRouterClientRejectOverload
Subsystem Report/Notes
Docker ClientAPI=1.47 ServerAPI=1.47 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7295/4/artifact/out/Dockerfile
GITHUB PR #7295
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell detsecrets xmllint markdownlint
uname Linux 8328201f46da 5.15.0-130-generic #140-Ubuntu SMP Wed Dec 18 17:59:53 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision feature-HADOOP-19363-analytics-accelerator-s3 / b331063
Default Java Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga
Multi-JDK versions /usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7295/4/testReport/
Max. process+thread count 3649 (vs. ulimit of 5500)
modules C: hadoop-hdfs-project/hadoop-hdfs-rbf hadoop-tools/hadoop-aws U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7295/4/console
versions git=2.25.1 maven=3.6.3 spotbugs=4.2.2
Powered by Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

Copy link
Contributor

@ahmarsuhail ahmarsuhail left a comment

Choose a reason for hiding this comment

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

Suggested some changes to factory creation code

@@ -230,7 +232,23 @@ public class S3AStoreImpl
@Override
protected void serviceInit(final Configuration conf) throws Exception {

objectInputStreamFactory = createStreamFactory(conf);
if(conf.getBoolean(ANALYTICS_ACCELERATOR_ENABLED_KEY, ANALYTICS_ACCELERATOR_ENABLED_DEFAULT)) {
Copy link
Contributor

Choose a reason for hiding this comment

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

this should go into the StreamIntegration.createStreamFactory() method in my opinion. And over there, you want to use the InputStreamType.Analytics in the conf check.

You can update the enum, so that the factory method takes parameters. Something like:

  public Function<Configuration, ObjectInputStreamFactory> factory(FactoryParameters factoryParameters) {
    return factory;
  }

In the createStreamFactory method, you can do:

    if (conf.getEnum(INPUT_STREAM_TYPE, defaultStream) == InputStreamType.Analytics) {
       new FactoryParameters.withS3Client()
    }

Let's discuss in case it's not clear!

LOG.info("Using S3SeekableInputStream");
if(analyticsAcceleratorCRTEnabled) {
LOG.info("Using S3 CRT client for analytics accelerator S3");
s3AsyncClient = S3CrtAsyncClient.builder().maxConcurrency(600).build();
Copy link
Contributor

Choose a reason for hiding this comment

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

Agree with Fuat, we can't merge with client creation here.

Copy link
Contributor

@steveloughran steveloughran left a comment

Choose a reason for hiding this comment

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

Commented. Passing down the client factory will need work, so suggest changes in the initial review.

Is it essential to use the Crt client? If so, that needs to be configurable for the whole FS (Is it already? I don't remember) And it must go into DefaultS3ClientFactory.createS3AsyncClient(), using parameters built up in S3AFS.

  1. add any changes you need for the factory PR to it, clearly you do need to get ClientFactory passed in.
  2. And create a separate JIRA for supporting the CRT client for factories, if needed. That can go into trunk earlier.

Regarding the feature branch

  • no need to merge in trunk until new stuff is needed, and even then rebases are fine if choreographed with others.
  • put all the input stream factory stuff before the new work, so that things aren't mixed up.

@@ -24,28 +24,29 @@

import org.apache.hadoop.fs.FSExceptionMessages;
import org.apache.hadoop.fs.StreamCapabilities;
import org.apache.hadoop.fs.s3a.impl.streams.ObjectInputStream;
import org.apache.hadoop.fs.s3a.impl.streams.ObjectReadParameters;
import software.amazon.s3.analyticsaccelerator.S3SeekableInputStreamFactory;
Copy link
Contributor

Choose a reason for hiding this comment

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

keep in the "not apache, not java" imports. (there's often some hadoop precondition or org.apache.hadoop.thirdparty imports in that block -traces of the "get off guava" work)

LOG.info("Using S3SeekableInputStream");
if(analyticsAcceleratorCRTEnabled) {
LOG.info("Using S3 CRT client for analytics accelerator S3");
s3AsyncClient = S3CrtAsyncClient.builder().maxConcurrency(600).build();
Copy link
Contributor

Choose a reason for hiding this comment

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

OK for the WiP, but it will be culled later

@@ -230,7 +232,23 @@ public class S3AStoreImpl
@Override
protected void serviceInit(final Configuration conf) throws Exception {

objectInputStreamFactory = createStreamFactory(conf);
if(conf.getBoolean(ANALYTICS_ACCELERATOR_ENABLED_KEY, ANALYTICS_ACCELERATOR_ENABLED_DEFAULT)) {
Copy link
Contributor

Choose a reason for hiding this comment

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

Can you comment on this in that PR, ask for ClientManager to be passed in. This will have to come after serviceInit, as it won't exist until then.

@@ -123,7 +123,7 @@ public void testInvalidConfigurationThrows() {

ConnectorConfiguration connectorConfiguration =
new ConnectorConfiguration(conf, ANALYTICS_ACCELERATOR_CONFIGURATION_PREFIX);
assertThrows("S3ASeekableStream illegal configuration does not throw",
assertThrows("S3ASeekableInputStream illegal configuration does not throw",
Copy link
Contributor

Choose a reason for hiding this comment

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

use LambdaTestUtils.intercept(), here with the closure

  • closing any stream created -so if it didn't throw, we clean up
  • return stream.toString()

the return value of the closure is used in the exception text...it is where diagnostics should go

Copy link
Author

Choose a reason for hiding this comment

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

we are not actually creating any stream in this test

Renamed some files

Addressed comments
@hadoop-yetus
Copy link

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 7m 22s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 1s No case conflicting files found.
+0 🆗 codespell 0m 1s codespell was not available.
+0 🆗 detsecrets 0m 1s detect-secrets was not available.
+0 🆗 xmllint 0m 1s xmllint was not available.
+0 🆗 markdownlint 0m 1s markdownlint was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 52 new or modified test files.
_ feature-HADOOP-19363-analytics-accelerator-s3 Compile Tests _
+0 🆗 mvndep 5m 49s Maven dependency ordering for branch
+1 💚 mvninstall 23m 43s feature-HADOOP-19363-analytics-accelerator-s3 passed
+1 💚 compile 10m 42s feature-HADOOP-19363-analytics-accelerator-s3 passed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04
-1 ❌ compile 1m 27s /branch-compile-root-jdkPrivateBuild-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga.txt root in feature-HADOOP-19363-analytics-accelerator-s3 failed with JDK Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga.
+1 💚 checkstyle 2m 18s feature-HADOOP-19363-analytics-accelerator-s3 passed
-1 ❌ mvnsite 0m 29s /branch-mvnsite-hadoop-hdfs-project_hadoop-hdfs-rbf.txt hadoop-hdfs-rbf in feature-HADOOP-19363-analytics-accelerator-s3 failed.
-1 ❌ mvnsite 0m 29s /branch-mvnsite-hadoop-tools_hadoop-aws.txt hadoop-aws in feature-HADOOP-19363-analytics-accelerator-s3 failed.
-1 ❌ javadoc 0m 25s /branch-javadoc-hadoop-hdfs-project_hadoop-hdfs-rbf-jdkUbuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04.txt hadoop-hdfs-rbf in feature-HADOOP-19363-analytics-accelerator-s3 failed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04.
-1 ❌ javadoc 0m 18s /branch-javadoc-hadoop-tools_hadoop-aws-jdkPrivateBuild-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga.txt hadoop-aws in feature-HADOOP-19363-analytics-accelerator-s3 failed with JDK Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga.
-1 ❌ spotbugs 0m 14s /branch-spotbugs-hadoop-hdfs-project_hadoop-hdfs-rbf.txt hadoop-hdfs-rbf in feature-HADOOP-19363-analytics-accelerator-s3 failed.
-1 ❌ shadedclient 22m 20s branch has errors when building and testing our client artifacts.
-0 ⚠️ patch 22m 36s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 17s Maven dependency ordering for patch
-1 ❌ mvninstall 0m 22s /patch-mvninstall-hadoop-hdfs-project_hadoop-hdfs-rbf.txt hadoop-hdfs-rbf in the patch failed.
-1 ❌ mvninstall 0m 22s /patch-mvninstall-hadoop-tools_hadoop-aws.txt hadoop-aws in the patch failed.
-1 ❌ compile 0m 22s /patch-compile-root-jdkUbuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04.txt root in the patch failed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04.
-1 ❌ javac 0m 22s /patch-compile-root-jdkUbuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04.txt root in the patch failed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04.
-1 ❌ compile 0m 8s /patch-compile-root-jdkPrivateBuild-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga.txt root in the patch failed with JDK Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga.
-1 ❌ javac 0m 8s /patch-compile-root-jdkPrivateBuild-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga.txt root in the patch failed with JDK Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga.
+1 💚 blanks 0m 0s The patch has no blanks issues.
-0 ⚠️ checkstyle 0m 5s /buildtool-patch-checkstyle-root.txt The patch fails to run checkstyle in root
-1 ❌ mvnsite 0m 22s /patch-mvnsite-hadoop-hdfs-project_hadoop-hdfs-rbf.txt hadoop-hdfs-rbf in the patch failed.
-1 ❌ mvnsite 0m 22s /patch-mvnsite-hadoop-tools_hadoop-aws.txt hadoop-aws in the patch failed.
-1 ❌ javadoc 0m 22s /patch-javadoc-hadoop-hdfs-project_hadoop-hdfs-rbf-jdkUbuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04.txt hadoop-hdfs-rbf in the patch failed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04.
-1 ❌ javadoc 0m 22s /patch-javadoc-hadoop-tools_hadoop-aws-jdkUbuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04.txt hadoop-aws in the patch failed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04.
-1 ❌ javadoc 0m 22s /patch-javadoc-hadoop-hdfs-project_hadoop-hdfs-rbf-jdkPrivateBuild-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga.txt hadoop-hdfs-rbf in the patch failed with JDK Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga.
-1 ❌ javadoc 0m 21s /patch-javadoc-hadoop-tools_hadoop-aws-jdkPrivateBuild-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga.txt hadoop-aws in the patch failed with JDK Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga.
-1 ❌ spotbugs 0m 22s /patch-spotbugs-hadoop-hdfs-project_hadoop-hdfs-rbf.txt hadoop-hdfs-rbf in the patch failed.
-1 ❌ spotbugs 0m 22s /patch-spotbugs-hadoop-tools_hadoop-aws.txt hadoop-aws in the patch failed.
+1 💚 shadedclient 7m 12s patch has no errors when building and testing our client artifacts.
_ Other Tests _
-1 ❌ unit 0m 22s /patch-unit-hadoop-hdfs-project_hadoop-hdfs-rbf.txt hadoop-hdfs-rbf in the patch failed.
-1 ❌ unit 0m 22s /patch-unit-hadoop-tools_hadoop-aws.txt hadoop-aws in the patch failed.
+0 🆗 asflicense 0m 22s ASF License check generated no output?
86m 34s
Subsystem Report/Notes
Docker ClientAPI=1.47 ServerAPI=1.47 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7295/7/artifact/out/Dockerfile
GITHUB PR #7295
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell detsecrets xmllint markdownlint
uname Linux 9137f2459328 5.15.0-130-generic #140-Ubuntu SMP Wed Dec 18 17:59:53 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision feature-HADOOP-19363-analytics-accelerator-s3 / 9b19f24
Default Java Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga
Multi-JDK versions /usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7295/7/testReport/
Max. process+thread count 263 (vs. ulimit of 5500)
modules C: hadoop-hdfs-project/hadoop-hdfs-rbf hadoop-tools/hadoop-aws U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7295/7/console
versions git=2.25.1 maven=3.6.3 spotbugs=4.2.2
Powered by Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

@hadoop-yetus
Copy link

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 1m 2s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 2s No case conflicting files found.
+0 🆗 codespell 0m 0s codespell was not available.
+0 🆗 detsecrets 0m 0s detect-secrets was not available.
+0 🆗 xmllint 0m 0s xmllint was not available.
+0 🆗 markdownlint 0m 0s markdownlint was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 52 new or modified test files.
_ feature-HADOOP-19363-analytics-accelerator-s3 Compile Tests _
+0 🆗 mvndep 6m 19s Maven dependency ordering for branch
+1 💚 mvninstall 30m 9s feature-HADOOP-19363-analytics-accelerator-s3 passed
+1 💚 compile 18m 22s feature-HADOOP-19363-analytics-accelerator-s3 passed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04
+1 💚 compile 16m 54s feature-HADOOP-19363-analytics-accelerator-s3 passed with JDK Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga
+1 💚 checkstyle 4m 20s feature-HADOOP-19363-analytics-accelerator-s3 passed
+1 💚 mvnsite 1m 42s feature-HADOOP-19363-analytics-accelerator-s3 passed
+1 💚 javadoc 1m 36s feature-HADOOP-19363-analytics-accelerator-s3 passed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04
+1 💚 javadoc 1m 22s feature-HADOOP-19363-analytics-accelerator-s3 passed with JDK Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga
+1 💚 spotbugs 2m 47s feature-HADOOP-19363-analytics-accelerator-s3 passed
+1 💚 shadedclient 34m 1s branch has no errors when building and testing our client artifacts.
-0 ⚠️ patch 34m 26s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 29s Maven dependency ordering for patch
+1 💚 mvninstall 0m 57s the patch passed
+1 💚 compile 17m 27s the patch passed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04
+1 💚 javac 17m 27s the patch passed
+1 💚 compile 16m 52s the patch passed with JDK Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga
+1 💚 javac 16m 52s the patch passed
+1 💚 blanks 0m 0s The patch has no blanks issues.
-0 ⚠️ checkstyle 4m 21s /results-checkstyle-root.txt root: The patch generated 42 new + 34 unchanged - 6 fixed = 76 total (was 40)
+1 💚 mvnsite 1m 47s the patch passed
-1 ❌ javadoc 0m 48s /patch-javadoc-hadoop-tools_hadoop-aws-jdkUbuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04.txt hadoop-aws in the patch failed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04.
-1 ❌ javadoc 0m 40s /patch-javadoc-hadoop-tools_hadoop-aws-jdkPrivateBuild-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga.txt hadoop-aws in the patch failed with JDK Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga.
+1 💚 spotbugs 3m 7s the patch passed
+1 💚 shadedclient 34m 25s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 unit 27m 51s hadoop-hdfs-rbf in the patch passed.
+1 💚 unit 3m 18s hadoop-aws in the patch passed.
+1 💚 asflicense 1m 1s The patch does not generate ASF License warnings.
238m 36s
Subsystem Report/Notes
Docker ClientAPI=1.47 ServerAPI=1.47 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7295/5/artifact/out/Dockerfile
GITHUB PR #7295
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell detsecrets xmllint markdownlint
uname Linux 3162798790b5 5.15.0-130-generic #140-Ubuntu SMP Wed Dec 18 17:59:53 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision feature-HADOOP-19363-analytics-accelerator-s3 / ca74969
Default Java Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga
Multi-JDK versions /usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7295/5/testReport/
Max. process+thread count 3412 (vs. ulimit of 5500)
modules C: hadoop-hdfs-project/hadoop-hdfs-rbf hadoop-tools/hadoop-aws U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7295/5/console
versions git=2.25.1 maven=3.6.3 spotbugs=4.2.2
Powered by Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

@hadoop-yetus
Copy link

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 34s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 2s No case conflicting files found.
+0 🆗 codespell 0m 0s codespell was not available.
+0 🆗 detsecrets 0m 0s detect-secrets was not available.
+0 🆗 xmllint 0m 0s xmllint was not available.
+0 🆗 markdownlint 0m 0s markdownlint was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 52 new or modified test files.
_ feature-HADOOP-19363-analytics-accelerator-s3 Compile Tests _
+0 🆗 mvndep 6m 17s Maven dependency ordering for branch
+1 💚 mvninstall 30m 15s feature-HADOOP-19363-analytics-accelerator-s3 passed
+1 💚 compile 18m 43s feature-HADOOP-19363-analytics-accelerator-s3 passed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04
+1 💚 compile 16m 51s feature-HADOOP-19363-analytics-accelerator-s3 passed with JDK Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga
+1 💚 checkstyle 4m 29s feature-HADOOP-19363-analytics-accelerator-s3 passed
+1 💚 mvnsite 1m 42s feature-HADOOP-19363-analytics-accelerator-s3 passed
+1 💚 javadoc 1m 34s feature-HADOOP-19363-analytics-accelerator-s3 passed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04
+1 💚 javadoc 1m 20s feature-HADOOP-19363-analytics-accelerator-s3 passed with JDK Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga
+1 💚 spotbugs 2m 48s feature-HADOOP-19363-analytics-accelerator-s3 passed
+1 💚 shadedclient 34m 1s branch has no errors when building and testing our client artifacts.
-0 ⚠️ patch 34m 27s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 30s Maven dependency ordering for patch
+1 💚 mvninstall 1m 0s the patch passed
+1 💚 compile 17m 42s the patch passed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04
+1 💚 javac 17m 42s the patch passed
+1 💚 compile 17m 4s the patch passed with JDK Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga
+1 💚 javac 17m 4s the patch passed
+1 💚 blanks 0m 0s The patch has no blanks issues.
-0 ⚠️ checkstyle 4m 31s /results-checkstyle-root.txt root: The patch generated 42 new + 34 unchanged - 6 fixed = 76 total (was 40)
+1 💚 mvnsite 1m 36s the patch passed
-1 ❌ javadoc 0m 46s /patch-javadoc-hadoop-tools_hadoop-aws-jdkUbuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04.txt hadoop-aws in the patch failed with JDK Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04.
-1 ❌ javadoc 0m 42s /patch-javadoc-hadoop-tools_hadoop-aws-jdkPrivateBuild-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga.txt hadoop-aws in the patch failed with JDK Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga.
+1 💚 spotbugs 3m 10s the patch passed
+1 💚 shadedclient 34m 19s patch has no errors when building and testing our client artifacts.
_ Other Tests _
-1 ❌ unit 26m 43s /patch-unit-hadoop-hdfs-project_hadoop-hdfs-rbf.txt hadoop-hdfs-rbf in the patch passed.
+1 💚 unit 3m 16s hadoop-aws in the patch passed.
+1 💚 asflicense 0m 59s The patch does not generate ASF License warnings.
237m 44s
Reason Tests
Failed junit tests hadoop.hdfs.server.federation.router.TestRouterRpc
Subsystem Report/Notes
Docker ClientAPI=1.47 ServerAPI=1.47 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7295/6/artifact/out/Dockerfile
GITHUB PR #7295
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell detsecrets xmllint markdownlint
uname Linux ffadce2b7576 5.15.0-130-generic #140-Ubuntu SMP Wed Dec 18 17:59:53 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision feature-HADOOP-19363-analytics-accelerator-s3 / ca74969
Default Java Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga
Multi-JDK versions /usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.25+9-post-Ubuntu-1ubuntu120.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_432-8u432-gaus1-0ubuntu220.04-ga
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7295/6/testReport/
Max. process+thread count 3351 (vs. ulimit of 5500)
modules C: hadoop-hdfs-project/hadoop-hdfs-rbf hadoop-tools/hadoop-aws U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7295/6/console
versions git=2.25.1 maven=3.6.3 spotbugs=4.2.2
Powered by Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

Copy link
Contributor

@ahmarsuhail ahmarsuhail left a comment

Choose a reason for hiding this comment

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

thanks, no blocking comments. Still not sure what the best way to pass in the way to the factory is, we can look at that in the orginal PR.

final S3AsyncClient s3AsyncClient;
boolean analyticsAcceleratorCRTEnabled = conf.getBoolean(ANALYTICS_ACCELERATOR_CRT_ENABLED,
ANALYTICS_ACCELERATOR_CRT_ENABLED_DEFAULT);
LOG.info("Using S3SeekableInputStream");
Copy link
Contributor

Choose a reason for hiding this comment

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

nit: let's remove this log as this method could be used by something that is not using analytics accelerator

ANALYTICS_ACCELERATOR_CRT_ENABLED_DEFAULT);
LOG.info("Using S3SeekableInputStream");
if(analyticsAcceleratorCRTEnabled) {
LOG.info("Using S3 CRT client for analytics accelerator S3");
Copy link
Contributor

Choose a reason for hiding this comment

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

downgrade to level: debug

@ahmarsuhail
Copy link
Contributor

@steveloughran wanted to clarify a few things:

  • And create a separate JIRA for supporting the CRT client for factories, if needed. That can go into trunk earlier.

Do you mean create a new JIRA to add in CRT creation into ClientManager and S3ClientFactory? This can be done now, independent of this PR.

  • put all the input stream factory stuff before the new work, so that things aren't mixed up.

Do you mean in the feature branch:
1/ first merge in your changes from #7214
2/ Then merge changes to add in analytics stream support (last couple of commits from this PR)

@steveloughran
Copy link
Contributor

Do you mean create a new JIRA to add in CRT creation into ClientManager and S3ClientFactory? This can be done now, independent of this PR.

exactly! It can go into trunk.

In #7214 There's a callback to ask for the async client, where the stream can explicitly request the CRT client. This will raise an exception if not present. we could tune the behaviour, but I do want to push the checks into that ClientManager class for any required use elsewhere.

Do you mean in the feature branch:
1/ first merge in your changes from #7214
2/ Then merge changes to add in analytics stream support (last couple of commits from this PR)

yes -and make sure that #7214 satisfies all your needs

- Add callbacks from stream factories to creator.
- Initial operation is to ask for an async client.
- Callbacks and wiring up done in S3AStoreImpl.

Change-Id: I544f05da15e3b57e9a538d337b972e4e07dc8877
@hadoop-yetus
Copy link

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 0s Docker mode activated.
-1 ❌ patch 0m 21s #7295 does not apply to feature-HADOOP-19363-analytics-accelerator-s3. Rebase required? Wrong Branch? See https://cwiki.apache.org/confluence/display/HADOOP/How+To+Contribute for help.
Subsystem Report/Notes
GITHUB PR #7295
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7295/8/console
versions git=2.34.1
Powered by Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

@hadoop-yetus
Copy link

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 0s Docker mode activated.
-1 ❌ patch 0m 21s #7295 does not apply to feature-HADOOP-19363-analytics-accelerator-s3. Rebase required? Wrong Branch? See https://cwiki.apache.org/confluence/display/HADOOP/How+To+Contribute for help.
Subsystem Report/Notes
GITHUB PR #7295
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7295/9/console
versions git=2.34.1
Powered by Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

@ahmarsuhail ahmarsuhail force-pushed the feature-HADOOP-19363-analytics-accelerator-s3 branch from 3d8f4a4 to e18d0a4 Compare January 24, 2025 14:29
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