Skip to content
This repository was archived by the owner on May 12, 2021. It is now read-only.

TAJO-2069: Implement finding the total size of all objects in a bucket with AWS SDK. - #953

Closed
blrunner wants to merge 0 commit into
apache:masterfrom
blrunner:TAJO-2069
Closed

TAJO-2069: Implement finding the total size of all objects in a bucket with AWS SDK.#953
blrunner wants to merge 0 commit into
apache:masterfrom
blrunner:TAJO-2069

Conversation

@blrunner

Copy link
Copy Markdown
Contributor

Not yet implemented unit test cases and it depends on TAJO-2063 (#952).

@blrunnerblrunner changed the title TAJO-2069: Remove getContentsSummary in TableSpace and Query.TAJO-2069: Implement finding the total size of all objects in a bucket with AWS SDK.Feb 3, 2016
@blrunner

Copy link
Copy Markdown
ContributorAuthor

Here is my benchmark results as follows.

Configuration

  • EC2 instance type : c3.xlarge
  • Tajo version : 0.12.0-SNAPSHOT
  • Cluster: 1 master, 1 worker

Contents summary time

#of directoriesS3AFileSystem::getContentsSummaryS3FileTableSpace::getTotalSizeImprovement
51372 ms17 ms80.7x
36555447 ms120 ms462.0x
730110245 ms101 ms1091.5x
1095164812 ms222 ms742.4x
1460221492 ms217 ms1020.7x

@blrunner

Copy link
Copy Markdown
ContributorAuthor

Removed TAJO-2063(#952) dependency.

@jihoonson

Copy link
Copy Markdown
Contributor

I wonder why the time taken by getTotalSize() is not proportional to the number of directories. It shows faster speed for more directories sometimes.
Do you know the reason?

@blrunner

Copy link
Copy Markdown
ContributorAuthor

@jihoonson

There may be various reasons : local network connection, and the health of Amazon's servers, AWS SDK retry mechanism.

@jihoonson

Copy link
Copy Markdown
Contributor

If they are reasons, you can mitigate those overheads by testing several times and averaging the results.

Comment threadtajo-storage/tajo-storage-s3/pom.xml Outdated

<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-aws</artifactId>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

hadoop-aws is included in 2.6.0 and higher
If you add hadoop-aws, We should discuss hadoop compatibility

@blrunner

Copy link
Copy Markdown
ContributorAuthor

@jihoonson
Thank you for your feedback. I'll test it again with reference to your comments.

@jinossy
That's a good point. I'll write a e-mail about Hadoop compatibility.

@blrunner

Copy link
Copy Markdown
ContributorAuthor

@jinossy

I removed hadoop-aws dependency and added Amazon SDK dependency.

@blrunner

Copy link
Copy Markdown
ContributorAuthor

@jihoonson

Here is my second benchmark results as follows.

#of directoriesS3AFileSystemS3FileTableSpaceImprovement
51056.5 ms136.2 ms7.8x
36556549 ms153.8 ms367.7x
730113007.5 ms193.2 ms585x
1095168567 ms215.7 ms781.5x
1460228129.5 ms234.2 ms974.1x

@blrunner

Copy link
Copy Markdown
ContributorAuthor

Finished test successfully as following:

  • EC2 instances which have been deployed manually.
  • EMR cluster using below script
aws emr create-cluster \
--name="<CLUSTER_NAME> \
--release-label=emr-4.4.0 \
--no-auto-terminate \
--use-default-roles \
--ec2-attributes KeyName=<KEY_NAME> \
--instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m3.xlarge InstanceGroupType=CORE,InstanceCount=2,InstanceType=c3.xlarge \
--bootstrap-action Name="Install tajo",Path=s3://jhjung-us/tajo-emr/install-tajo-java8.py,Args=["-t","s3://jhjung-us/tajo-emr/tajo-0.12.0-SNAPSHOT.tar.gz","-c","s3://tajo-emr/tajo-0.11.0/c3.xlarge/conf"]
  • Access to S3 directly on OSX

@blrunner

Copy link
Copy Markdown
ContributorAuthor

This PR had been moved to #1024.

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@blrunner@jihoonson@jinossy