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

HADOOP-17628. Distcp contract test is really slow with ABFS and S3A; timing out. #3240

Merged

Conversation

steveloughran
Copy link
Contributor

Changes

  • subclass can declare whether or not -direct should be default
  • all tests then switch to that
  • major cut back on default depth/width of directories
  • if you set the file size of "scale.test.distcp.file.size.kb" to 0
    the large file test case is skipped.
  • aggressive cutback on all needless mkdir() calls.

S3A suite

  • declares -direct always

ABFS suites

  • deletes superfluous ITestAbfsFileSystemContractSecureDistCp
  • uses abfs scale test timeout
  • only runs with -Dscale

All these changes bring execution time down from 4 min to 2 min against each store.

@steveloughran
Copy link
Contributor Author

tested
abfs: azure cardiff
s3: aws london

…timing out.

Changes

* subclass can declare whether or not -direct should be default
* all tests then switch to that
* major cut back on default depth/width of directories
* if you set the file size of "scale.test.distcp.file.size.kb" to 0
  the large file test case is skipped.
* aggressive cutback on all needless mkdir() calls.

S3A suite
* declares -direct always

ABFS suites
* deletes superfluous ITestAbfsFileSystemContractSecureDistCp
* uses abfs scale test timeout
* only runs with -Dscale

All these changes bring execution time down from 4 min to 2 min against each store.

Change-Id: Ide8c369fb7b97b84c2099e36a8925e183901d9e1
Change-Id: I464f2071db2a0b17ac7589ea0ccb9b671d065c65
@steveloughran steveloughran force-pushed the abfs/HADOOP-17628-distcp-timeout branch from b7b11a0 to 8c9d528 Compare July 27, 2021 17:52
@steveloughran steveloughran added fs/azure changes related to azure; submitter must declare test endpoint fs/s3 changes related to hadoop-aws; submitter must declare test endpoint test test code changes labels Jul 27, 2021
@steveloughran
Copy link
Contributor Author

Reviews invited from all, including @mukund-thakur @mehakmeet @ayushtkn @sumangala-patki @bilaharith

@steveloughran
Copy link
Contributor Author

full azure test run with parallel dir patch against cardiff, -Dparallel-tests=abfs -DtestsThreadCount=8 -Dscale

This test is now a -Dscale option as even though its now a lot faster, it's still slow

Copy link
Member

@ayushtkn ayushtkn left a comment

Choose a reason for hiding this comment

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

Changes LGTM, thanx for fixing

Copy link
Contributor

@mukund-thakur mukund-thakur left a comment

Choose a reason for hiding this comment

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

Looks good.
One thing though since we have changed the base test class, have we verified if other distcp tests like hdfs and local are not getting impacted?

* false by default; enable for stores where rename is slow.
* @return true if direct write should be used in all tests.
*/
protected boolean directWriteAlways() {
Copy link
Contributor

Choose a reason for hiding this comment

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

nit: method name contains Always but default is false, a bit ambiguous no?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

changed to shouldUseDirectWrite

@@ -758,7 +828,7 @@ public void testDistCpWithUpdateExistFile() throws Exception {
verifyPathExists(remoteFS, "", source);
verifyPathExists(localFS, "", dest);
DistCpTestUtils.assertRunDistCp(DistCpConstants.SUCCESS, source.toString(),
dest.toString(), "-delete -update", conf);
dest.toString(), "-delete -update" + getDefaultCLIOptions(), conf);
Copy link
Contributor

Choose a reason for hiding this comment

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

nit : options can be refactored like it is done above.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

did think about it, but I also felt that it might be prudent to have tests with the CLI to parse, so make sure that -direct is handled there properly. We've been hit in the past by some failures with s3guard and the FS shell API because we were always working at the API level

@apache apache deleted a comment from hadoop-yetus Jul 28, 2021
@steveloughran
Copy link
Contributor Author

Will add to release notes the fact you can turn off the large file uploads through

 <property>
   <name>scale.test.distcp.file.size.kb</name>
   <value>0</value>
 </property>

This is useful for anyone doing testing from home on a network with slower upload speeds

@steveloughran
Copy link
Contributor Author

steveloughran commented Jul 28, 2021

optional OptionalTestHDFSContractDistCp runs fine from IDE'; 4 minutes.

All the performance issues of the HDFS contract are related to the large file tests at 2 minutes for one, 1:30 for the other. If those tests were turned off then they could always be run, which would give us better regression checks on the object store behaviours matching HDFS.

@apache apache deleted a comment from hadoop-yetus Jul 28, 2021
Copy link
Contributor

@mehakmeet mehakmeet left a comment

Choose a reason for hiding this comment

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

Tested on Central-India(ABFS) and ap-south-1(S3AFS).
+1, some nits.

int fileSizeKb = conf.getInt(SCALE_TEST_DISTCP_FILE_SIZE_KB,
DEFAULT_DISTCP_SIZE_KB);
if (fileSizeKb < 1) {
skip("File size in " + SCALE_TEST_DISTCP_FILE_SIZE_KB + " too small");
Copy link
Contributor

Choose a reason for hiding this comment

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

Nit: maybe, we should say to "make fileSize in SCALE_TEST_DISTCP_FILE_SIZE_KB be greater than or equal to 1" or "File Size in SCALE_TEST_DISTCP_FILE_SIZE_KB smaller than 1"

Copy link
Contributor Author

Choose a reason for hiding this comment

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

now

"File size in " + SCALE_TEST_DISTCP_FILE_SIZE_KB + " is zero

It's not bug, just a fact...for HDFS suite it'll be zero by default now

@@ -612,6 +634,9 @@ public void testDirectWrite() throws Exception {

@Test
public void testNonDirectWrite() throws Exception {
if (directWriteAlways()) {
skip("not needed");
Copy link
Contributor

Choose a reason for hiding this comment

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

Nit: maybe move below describe(), or mention in skip message what is being skipped.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

actually, it should be in the previous test. So moved up. thanks for drawing my attention to it.

* Address review comments
* log IOStats after each test case.
  Important: as the cached FS retains statistics, the numbers
  get bigger over time.
* HDFS test is now reinstated, as we've identified that most
  of its long execution time is from the large file upload/download
  suites. Disable them and its execution time drops from 4m to 30s,
  which means it can then be used to make sure the contract suite
  is consistent between HDFS and the object stores.

Change-Id: I6d1cf5bf42916035a806fa9e78c003074f8f12b9
@steveloughran
Copy link
Contributor Author

Latest release

  • Address review comments
  • log IOStats after each test case.
    Important: as the cached FS retains statistics, the numbers
    get bigger over time.
  • HDFS test is now reinstated, as we've identified that most
    of its long execution time is from the large file upload/download
    suites. Disable them and its execution time drops from 4m to 30s,
    which means it can then be used to make sure the contract suite
    is consistent between HDFS and the object stores.

IOStats of full suite against S3 london (1:43s)

2021-07-28 12:40:48,632 [setup] INFO  statistics.IOStatisticsLogging (IOStatisticsLogging.java:logIOStatisticsAtLevel(269)) - IOStatistics: counters=((action_executor_acquired=47)
(action_http_get_request=38)
(action_http_head_request=111)
(audit_request_execution=420)
(audit_span_creation=483)
(directories_created=38)
(directories_deleted=1)
(fake_directories_deleted=485)
(files_copied=2)
(files_copied_bytes=264)
(files_created=47)
(files_deleted=48)
(ignored_errors=14)
(object_bulk_delete_request=88)
(object_copy_requests=2)
(object_delete_objects=534)
(object_delete_request=5)
(object_list_request=89)
(object_metadata_request=111)
(object_put_bytes=18880752)
(object_put_request=85)
(object_put_request_completed=85)
(op_create=47)
(op_delete=14)
(op_exists=13)
(op_exists.failures=3)
(op_get_file_status=194)
(op_get_file_status.failures=44)
(op_glob_status=25)
(op_is_file=1)
(op_list_files=9)
(op_list_status=60)
(op_mkdirs=64)
(op_open=39)
(op_rename=2)
(s3guard_metadatastore_initialization=1)
(s3guard_metadatastore_put_path_request=103)
(s3guard_metadatastore_record_deletes=2)
(s3guard_metadatastore_record_reads=1473)
(s3guard_metadatastore_record_writes=350)
(store_io_request=422)
(stream_read_bytes=18878052)
(stream_read_close_operations=39)
(stream_read_closed=38)
(stream_read_opened=38)
(stream_read_operations=2742)
(stream_read_operations_incomplete=1639)
(stream_read_seek_policy_changed=39)
(stream_read_total_bytes=18878052)
(stream_write_block_uploads=47)
(stream_write_bytes=18880752)
(stream_write_total_data=37761504));

gauges=((stream_write_block_uploads_pending=47));

minimums=((action_executor_acquired.min=0)
(action_http_get_request.min=31)
(action_http_head_request.min=22)
(object_bulk_delete_request.min=45)
(object_delete_request.min=34)
(object_list_request.min=28)
(object_put_request.min=42)
(op_create.min=16)
(op_delete.min=53)
(op_exists.failures.min=16)
(op_exists.min=15)
(op_get_file_status.failures.min=16)
(op_get_file_status.min=15)
(op_glob_status.min=15)
(op_is_file.min=43)
(op_list_files.min=176)
(op_list_status.min=64)
(op_mkdirs.min=16)
(op_rename.min=967));

maximums=((action_executor_acquired.max=0)
(action_http_get_request.max=123)
(action_http_head_request.max=317)
(object_bulk_delete_request.max=384)
(object_delete_request.max=91)
(object_list_request.max=202)
(object_put_request.max=2083)
(op_create.max=129)
(op_delete.max=2196)
(op_exists.failures.max=45)
(op_exists.max=43)
(op_get_file_status.failures.max=29)
(op_get_file_status.max=341)
(op_glob_status.max=192)
(op_is_file.max=43)
(op_list_files.max=589)
(op_list_status.max=260)
(op_mkdirs.max=729)
(op_rename.max=1199));

means=((action_executor_acquired.mean=(samples=47, sum=0, mean=0.0000))
(action_http_get_request.mean=(samples=38, sum=1490, mean=39.2105))
(action_http_head_request.mean=(samples=111, sum=4311, mean=38.8378))
(object_bulk_delete_request.mean=(samples=88, sum=12810, mean=145.5682))
(object_delete_request.mean=(samples=5, sum=260, mean=52.0000))
(object_list_request.mean=(samples=89, sum=4988, mean=56.0449))
(object_put_request.mean=(samples=85, sum=17463, mean=205.4471))
(op_create.mean=(samples=47, sum=1160, mean=24.6809))
(op_delete.mean=(samples=14, sum=11257, mean=804.0714))
(op_exists.failures.mean=(samples=3, sum=80, mean=26.6667))
(op_exists.mean=(samples=10, sum=250, mean=25.0000))
(op_get_file_status.failures.mean=(samples=44, sum=876, mean=19.9091))
(op_get_file_status.mean=(samples=150, sum=6404, mean=42.6933))
(op_glob_status.mean=(samples=25, sum=1826, mean=73.0400))
(op_is_file.mean=(samples=1, sum=43, mean=43.0000))
(op_list_files.mean=(samples=9, sum=3218, mean=357.5556))
(op_list_status.mean=(samples=60, sum=7084, mean=118.0667))
(op_mkdirs.mean=(samples=64, sum=15375, mean=240.2344))
(op_rename.mean=(samples=2, sum=2166, mean=1083.0000)));

IOStats of full suite against AWS cardiff (1:28). That region is about 30 miles away from here, though I don't know how cables are routed across the Bristol Channel; it'll probably be a bit longer. In contrast, london will be 100-120 miles away, so latency always going to be a bit higher there.

2021-07-28 12:43:57,686 INFO  [setup]: statistics.IOStatisticsLogging (IOStatisticsLogging.java:logIOStatisticsAtLevel(269)) - IOStatistics: counters=((action_http_delete_request=48)
(action_http_delete_request.failures=34)
(action_http_get_request=161)
(action_http_head_request=333)
(action_http_head_request.failures=79)
(action_http_put_request=237)
(bytes_received=18878316)
(bytes_sent=18881016)
(connections_made=779)
(directories_created=71)
(files_created=49)
(get_responses=779)
(op_create=49)
(op_delete=48)
(op_exists=53)
(op_get_file_status=291)
(op_list_status=107)
(op_mkdirs=71)
(op_open=41)
(op_rename=22)
(send_requests=237));

gauges=();

minimums=((action_http_delete_request.failures.min=21)
(action_http_delete_request.min=31)
(action_http_get_request.min=21)
(action_http_head_request.failures.min=20)
(action_http_head_request.min=19)
(action_http_put_request.min=23));

maximums=((action_http_delete_request.failures.max=332)
(action_http_delete_request.max=146)
(action_http_get_request.max=2193)
(action_http_head_request.failures.max=262)
(action_http_head_request.max=822)
(action_http_put_request.max=3370));

means=((action_http_delete_request.failures.mean=(samples=34, sum=1901, mean=55.9118))
(action_http_delete_request.mean=(samples=14, sum=744, mean=53.1429))
(action_http_get_request.mean=(samples=161, sum=15025, mean=93.3230))
(action_http_head_request.failures.mean=(samples=79, sum=3668, mean=46.4304))
(action_http_head_request.mean=(samples=254, sum=9391, mean=36.9724))
(action_http_put_request.mean=(samples=237, sum=27099, mean=114.3418)));

ABFS is collecting many fewer stats, we really need

  • duration of all FS API calls
  • LIST performance numbers should be split from GET calls, which they currently aren't.

Really interesting there that HEAD -> 404 has a mean time of 46ms; HEAD to 200 of 36 millis.
There's always going to be some probes before creating files, dirs, so that negative cost
is going to be visible for those operations.

@hadoop-yetus
Copy link

🎊 +1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 1m 0s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 1s No case conflicting files found.
+0 🆗 codespell 0m 0s codespell was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 7 new or modified test files.
_ trunk Compile Tests _
+0 🆗 mvndep 12m 43s Maven dependency ordering for branch
+1 💚 mvninstall 22m 50s trunk passed
+1 💚 compile 24m 52s trunk passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04
+1 💚 compile 20m 53s trunk passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10
+1 💚 checkstyle 4m 8s trunk passed
+1 💚 mvnsite 4m 30s trunk passed
+1 💚 javadoc 3m 17s trunk passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04
+1 💚 javadoc 3m 56s trunk passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10
+1 💚 spotbugs 6m 18s trunk passed
+1 💚 shadedclient 16m 31s branch has no errors when building and testing our client artifacts.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 29s Maven dependency ordering for patch
+1 💚 mvninstall 2m 44s the patch passed
+1 💚 compile 23m 34s the patch passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04
+1 💚 javac 23m 34s the patch passed
+1 💚 compile 21m 7s the patch passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10
+1 💚 javac 21m 7s the patch passed
+1 💚 blanks 0m 0s The patch has no blanks issues.
+1 💚 checkstyle 3m 57s the patch passed
+1 💚 mvnsite 4m 12s the patch passed
+1 💚 javadoc 3m 5s the patch passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04
+1 💚 javadoc 3m 43s the patch passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10
+1 💚 spotbugs 7m 15s the patch passed
+1 💚 shadedclient 16m 41s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 unit 17m 13s hadoop-common in the patch passed.
+1 💚 unit 20m 1s hadoop-distcp in the patch passed.
+1 💚 unit 2m 30s hadoop-aws in the patch passed.
+1 💚 unit 2m 15s hadoop-azure in the patch passed.
+1 💚 asflicense 1m 1s The patch does not generate ASF License warnings.
254m 50s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3240/4/artifact/out/Dockerfile
GITHUB PR #3240
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell
uname Linux 572cbaae0ad3 4.15.0-60-generic #67-Ubuntu SMP Thu Aug 22 16:55:30 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / de1cfdb
Default Java Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10
Multi-JDK versions /usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3240/4/testReport/
Max. process+thread count 2341 (vs. ulimit of 5500)
modules C: hadoop-common-project/hadoop-common hadoop-tools/hadoop-distcp hadoop-tools/hadoop-aws hadoop-tools/hadoop-azure U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3240/4/console
versions git=2.25.1 maven=3.6.3 spotbugs=4.2.2
Powered by Apache Yetus 0.14.0-SNAPSHOT https://yetus.apache.org

This message was automatically generated.

Change-Id: Ie64af6e109935243cd4c65454cf8ee66ec6fbf58
@hadoop-yetus
Copy link

🎊 +1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 56s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 0s codespell was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 7 new or modified test files.
_ trunk Compile Tests _
+0 🆗 mvndep 12m 34s Maven dependency ordering for branch
+1 💚 mvninstall 23m 40s trunk passed
+1 💚 compile 27m 37s trunk passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04
+1 💚 compile 24m 10s trunk passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10
+1 💚 checkstyle 4m 57s trunk passed
+1 💚 mvnsite 4m 40s trunk passed
+1 💚 javadoc 3m 22s trunk passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04
+1 💚 javadoc 4m 4s trunk passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10
+1 💚 spotbugs 6m 51s trunk passed
+1 💚 shadedclient 19m 37s branch has no errors when building and testing our client artifacts.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 27s Maven dependency ordering for patch
+1 💚 mvninstall 3m 4s the patch passed
+1 💚 compile 28m 41s the patch passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04
+1 💚 javac 28m 41s the patch passed
+1 💚 compile 19m 29s the patch passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10
+1 💚 javac 19m 29s the patch passed
+1 💚 blanks 0m 1s The patch has no blanks issues.
+1 💚 checkstyle 3m 34s the patch passed
+1 💚 mvnsite 4m 19s the patch passed
+1 💚 javadoc 3m 19s the patch passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04
+1 💚 javadoc 3m 59s the patch passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10
+1 💚 spotbugs 6m 49s the patch passed
+1 💚 shadedclient 14m 58s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 unit 17m 9s hadoop-common in the patch passed.
+1 💚 unit 20m 16s hadoop-distcp in the patch passed.
+1 💚 unit 2m 23s hadoop-aws in the patch passed.
+1 💚 unit 2m 17s hadoop-azure in the patch passed.
+1 💚 asflicense 1m 1s The patch does not generate ASF License warnings.
268m 47s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3240/5/artifact/out/Dockerfile
GITHUB PR #3240
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell
uname Linux e83c31a8977e 4.15.0-60-generic #67-Ubuntu SMP Thu Aug 22 16:55:30 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / 6e0e4d9
Default Java Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10
Multi-JDK versions /usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3240/5/testReport/
Max. process+thread count 1559 (vs. ulimit of 5500)
modules C: hadoop-common-project/hadoop-common hadoop-tools/hadoop-distcp hadoop-tools/hadoop-aws hadoop-tools/hadoop-azure U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3240/5/console
versions git=2.25.1 maven=3.6.3 spotbugs=4.2.2
Powered by Apache Yetus 0.14.0-SNAPSHOT https://yetus.apache.org

This message was automatically generated.

Copy link
Contributor

@mukund-thakur mukund-thakur left a comment

Choose a reason for hiding this comment

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

LGTM +1

@steveloughran steveloughran merged commit ee466d4 into apache:trunk Aug 2, 2021
asfgit pushed a commit that referenced this pull request Aug 2, 2021
…timing out. (#3240)


This patch cuts down the size of directory trees used for
distcp contract tests against object stores, so making
them much faster against distant/slow stores.

On abfs, the test only runs with -Dscale (as was the case for s3a already),
and has the larger scale test timeout.

After every test case, the FileSystem IOStatistics are logged,
to provide information about what IO is taking place and
what it's performance is.

There are some test cases which upload files of 1+ MiB; you can
increase the size of the upload in the option
"scale.test.distcp.file.size.kb" 
Set it to zero and the large file tests are skipped.

Contributed by Steve Loughran.
kiran-maturi pushed a commit to kiran-maturi/hadoop that referenced this pull request Nov 24, 2021
…timing out. (apache#3240)


This patch cuts down the size of directory trees used for
distcp contract tests against object stores, so making
them much faster against distant/slow stores.

On abfs, the test only runs with -Dscale (as was the case for s3a already),
and has the larger scale test timeout.

After every test case, the FileSystem IOStatistics are logged,
to provide information about what IO is taking place and
what it's performance is.

There are some test cases which upload files of 1+ MiB; you can
increase the size of the upload in the option
"scale.test.distcp.file.size.kb" 
Set it to zero and the large file tests are skipped.

Contributed by Steve Loughran.
jojochuang pushed a commit to jojochuang/hadoop that referenced this pull request May 23, 2023
…le checking for file skip. (apache#5387)

Adding toggleable support for modification time during distcp -update between two stores with incompatible checksum comparison.

    Also Contains: "HADOOP-18633. fix test AbstractContractDistCpTest#testDistCpUpdateCheckFileSkip."
    Also Contains: "CDPD-28513. HADOOP-17628. Distcp contract test is really slow with ABFS and S3A; timing out. (apache#3240)" to ensure correctness in the tests.

Change-Id: I5ce8d630396c8ea525195841a5e3d3f6aaea7455
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
fs/azure changes related to azure; submitter must declare test endpoint fs/s3 changes related to hadoop-aws; submitter must declare test endpoint test test code changes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants