Skip to content

Backport HADOOP-16830 to branch-3.3 #2616

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

Conversation

steveloughran
Copy link
Contributor

@steveloughran steveloughran commented Jan 12, 2021

This a backport of the HADOOP-16830 chain of commits; getting yetus to do the some of the testing. Once I'm happy I'll merge this branch in locally

This is the API and implementation classes of HADOOP-16830,
which allows callers to query IO object instances
(filesystems, streams, remote iterators, ...) and other classes
for statistics on their I/O Usage: operation count and min/max/mean
durations.

New Packages

org.apache.hadoop.fs.statistics.
  Public API, including:
    IOStatisticsSource
    IOStatistics
    IOStatisticsSnapshot (seralizable to java objects and json)
    +helper classes for logging and integration
    BufferedIOStatisticsInputStream
       implements IOStatisticsSource and StreamCapabilities
     BufferedIOStatisticsOutputStream
       implements IOStatisticsSource, Syncable and StreamCapabilities

org.apache.hadoop.fs.statistics.impl
  Implementation classes for internal use.

org.apache.hadoop.util.functional
  functional programming support for RemoteIterators and
  other operations which raise IOEs; all wrapper classes
  implement and propagate IOStatisticsSource

Contributed by Steve Loughran.

Change-Id: If56e8db2981613ff689c39239135e44feb25f78e
@steveloughran steveloughran changed the base branch from trunk to branch-3.3 January 12, 2021 17:41
@steveloughran steveloughran changed the title Backport HADOP Backport HADOOP-16830 to branch-3.3 Jan 12, 2021
@steveloughran steveloughran marked this pull request as draft January 12, 2021 17:44
@steveloughran
Copy link
Contributor Author

OK, patch #1 is in; this only has yetus tests

…ics. (apache#2579)

Part of the HADOOP-16830 IOStatistics API feature.

If the source FileSystem's listing RemoteIterators
implement IOStatisticsSource, these are collected and served through
the IOStatisticsSource API. If they are not: getIOStatistics() returns
null.

Only the listing statistics are collected; FileSystem.globStatus() doesn't
provide any, so IO use there is not included in the aggregate results.

Contributed by Steve Loughran.

Change-Id: Iff1485297c2c7e181b54eaf1d2c4f80faeee7cfa
@steveloughran
Copy link
Contributor Author

Local test runs of the last two patch

@steveloughran
Copy link
Contributor Author

Test s3 london with -Dparallel-tests -DtestsThreadCount=6 -Dscale -Dmarkers=keep -Ds3guard -Ddynamo -Dscale

all good apart from that unbuffer intermittent failures, which I think are network related

[ERROR] testUnbufferBeforeRead(org.apache.hadoop.fs.contract.s3a.ITestS3AContractUnbuffer)  Time elapsed: 3.277 s  <<< FAILURE!
java.lang.AssertionError: failed to read expected number of bytes from stream. This may be transient expected:<1024> but was:<515>
	at org.junit.Assert.fail(Assert.java:88)
	at org.junit.Assert.failNotEquals(Assert.java:834)
	at org.junit.Assert.assertEquals(Assert.java:645)

Unless yetus blows up, I will merge as is

@steveloughran
Copy link
Contributor Author

build will fail until I commit a change that I had locally but not pushed up. hold on

S3A connector to support the IOStatistics API of HADOOP-16830,

This is a major rework of the S3A Statistics collection to

* Embrace the IOStatistics APIs
* Move from direct references of S3AInstrumention statistics
  collectors to interface/implementation classes in new packages.
* Ubiquitous support of IOStatistics, including:
  S3AFileSystem, input and output streams, RemoteIterator instances
  provided in list calls.
* Adoption of new statistic names from hadoop-common

Regarding statistic collection, as well as all existing
statistics, the connector now records min/max/mean durations
of HTTP GET and HEAD requests, and those of LIST operations.

Contributed by Steve Loughran.

Change-Id: I182d34b6ac39e017a8b4a221dad8e930882b39cf
Caused by HADOOP-16830 and HADOOP-17271.

Fixes tests which fail intermittently based on configs and
in the case of the HugeFile tests, bulk runs with existing
FS instances meant statistic probes sometimes ended up probing those
of a previous FS.

Contributed by Steve Loughran.

Change-Id: I65ba3f44444e59d298df25ac5c8dc5a8781dfb7d
@steveloughran steveloughran force-pushed the s3/HADOOP-16380-iostats-branch-3.3 branch from a4cfa0b to fd83274 Compare January 13, 2021 15:51
@hadoop-yetus
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 45s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 6s No case conflicting files found.
+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 55 new or modified test files.
_ branch-3.3 Compile Tests _
+0 🆗 mvndep 3m 59s Maven dependency ordering for branch
+1 💚 mvninstall 28m 56s branch-3.3 passed
+1 💚 compile 15m 46s branch-3.3 passed
+1 💚 checkstyle 2m 45s branch-3.3 passed
+1 💚 mvnsite 3m 18s branch-3.3 passed
+1 💚 shadedclient 22m 35s branch has no errors when building and testing our client artifacts.
+1 💚 javadoc 2m 9s branch-3.3 passed
+0 🆗 spotbugs 1m 15s Used deprecated FindBugs config; considering switching to SpotBugs.
+1 💚 findbugs 4m 40s branch-3.3 passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 24s Maven dependency ordering for patch
-1 ❌ mvninstall 0m 20s hadoop-aws in the patch failed.
-1 ❌ compile 16m 18s root in the patch failed.
-1 ❌ javac 16m 18s root in the patch failed.
-0 ⚠️ checkstyle 3m 15s root: The patch generated 5 new + 271 unchanged - 26 fixed = 276 total (was 297)
-1 ❌ mvnsite 0m 35s hadoop-aws in the patch failed.
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 xml 0m 3s The patch has no ill-formed XML file.
+1 💚 shadedclient 17m 43s patch has no errors when building and testing our client artifacts.
+1 💚 javadoc 2m 1s the patch passed
-1 ❌ findbugs 0m 33s hadoop-aws in the patch failed.
_ Other Tests _
+1 💚 unit 10m 14s hadoop-common in the patch passed.
+1 💚 unit 6m 5s hadoop-mapreduce-client-core in the patch passed.
-1 ❌ unit 0m 33s hadoop-aws in the patch failed.
+1 💚 asflicense 0m 45s The patch does not generate ASF License warnings.
151m 24s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2616/3/artifact/out/Dockerfile
GITHUB PR #2616
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle markdownlint xml
uname Linux 31f9cad42156 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision branch-3.3 / 75f34a1
Default Java Private Build-1.8.0_275-8u275-b01-0ubuntu1~16.04-b01
mvninstall https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2616/3/artifact/out/patch-mvninstall-hadoop-tools_hadoop-aws.txt
compile https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2616/3/artifact/out/patch-compile-root.txt
javac https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2616/3/artifact/out/patch-compile-root.txt
checkstyle https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2616/3/artifact/out/diff-checkstyle-root.txt
mvnsite https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2616/3/artifact/out/patch-mvnsite-hadoop-tools_hadoop-aws.txt
findbugs https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2616/3/artifact/out/patch-findbugs-hadoop-tools_hadoop-aws.txt
unit https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2616/3/artifact/out/patch-unit-hadoop-tools_hadoop-aws.txt
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2616/3/testReport/
Max. process+thread count 2057 (vs. ulimit of 5500)
modules C: hadoop-common-project/hadoop-common hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core hadoop-tools/hadoop-aws U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2616/3/console
versions git=2.7.4 maven=3.3.9 findbugs=3.1.0-RC1
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@steveloughran steveloughran marked this pull request as ready for review January 13, 2021 16:33
@apache apache deleted a comment from hadoop-yetus Jan 13, 2021
@apache apache deleted a comment from hadoop-yetus Jan 13, 2021
@hadoop-yetus
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 17s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 6s No case conflicting files found.
+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 55 new or modified test files.
_ branch-3.3 Compile Tests _
+0 🆗 mvndep 3m 59s Maven dependency ordering for branch
+1 💚 mvninstall 29m 48s branch-3.3 passed
+1 💚 compile 16m 7s branch-3.3 passed
+1 💚 checkstyle 2m 41s branch-3.3 passed
+1 💚 mvnsite 3m 2s branch-3.3 passed
+1 💚 shadedclient 22m 0s branch has no errors when building and testing our client artifacts.
+1 💚 javadoc 2m 1s branch-3.3 passed
+0 🆗 spotbugs 1m 11s Used deprecated FindBugs config; considering switching to SpotBugs.
+1 💚 findbugs 4m 32s branch-3.3 passed
_ Patch Compile Tests _
+0 🆗 mvndep 0m 27s Maven dependency ordering for patch
+1 💚 mvninstall 1m 59s the patch passed
+1 💚 compile 15m 23s the patch passed
+1 💚 javac 15m 23s root generated 0 new + 1870 unchanged - 1 fixed = 1870 total (was 1871)
-0 ⚠️ checkstyle 2m 43s root: The patch generated 5 new + 271 unchanged - 26 fixed = 276 total (was 297)
+1 💚 mvnsite 2m 57s the patch passed
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 xml 0m 2s The patch has no ill-formed XML file.
+1 💚 shadedclient 15m 33s patch has no errors when building and testing our client artifacts.
+1 💚 javadoc 2m 0s the patch passed
+1 💚 findbugs 5m 2s the patch passed
_ Other Tests _
+1 💚 unit 10m 11s hadoop-common in the patch passed.
+1 💚 unit 5m 51s hadoop-mapreduce-client-core in the patch passed.
+1 💚 unit 1m 43s hadoop-aws in the patch passed.
+1 💚 asflicense 0m 55s The patch does not generate ASF License warnings.
150m 33s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2616/4/artifact/out/Dockerfile
GITHUB PR #2616
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle markdownlint xml
uname Linux 1d9a9b45b56d 4.15.0-112-generic #113-Ubuntu SMP Thu Jul 9 23:41:39 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision branch-3.3 / 75f34a1
Default Java Private Build-1.8.0_275-8u275-b01-0ubuntu1~16.04-b01
checkstyle https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2616/4/artifact/out/diff-checkstyle-root.txt
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2616/4/testReport/
Max. process+thread count 1519 (vs. ulimit of 5500)
modules C: hadoop-common-project/hadoop-common hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core hadoop-tools/hadoop-aws U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2616/4/console
versions git=2.7.4 maven=3.3.9 findbugs=3.1.0-RC1
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@steveloughran
Copy link
Contributor Author

manually merged each commit one by one, signing, pushed up.

@steveloughran steveloughran deleted the s3/HADOOP-16380-iostats-branch-3.3 branch January 14, 2021 19:11
@steveloughran
Copy link
Contributor Author

so somehow we are missing changes to SemaphoredDelegatingExecutor which were in the base patch. joy

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants