-
Notifications
You must be signed in to change notification settings - Fork 3.7k
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
Add datasegment copier interface and s3 impl #17430
base: master
Are you sure you want to change the base?
Add datasegment copier interface and s3 impl #17430
Conversation
a2534fb
to
49c7941
Compare
Thanks for the PR @jtuglu-netflix ! |
); | ||
} | ||
catch (Exception e) { | ||
Throwables.propagateIfInstanceOf(e, AmazonServiceException.class); |
Check notice
Code scanning / CodeQL
Deprecated method or constructor invocation Note
Throwables.propagateIfInstanceOf
} | ||
catch (Exception e) { | ||
Throwables.propagateIfInstanceOf(e, AmazonServiceException.class); | ||
Throwables.propagateIfInstanceOf(e, SegmentLoadingException.class); |
Check notice
Code scanning / CodeQL
Deprecated method or constructor invocation Note
Throwables.propagateIfInstanceOf
...ns-core/s3-extensions/src/test/java/org/apache/druid/storage/s3/S3DataSegmentCopierTest.java
Fixed
Show fixed
Hide fixed
af56f75
to
ec80d2f
Compare
614610b
to
1effb4e
Compare
|
||
MockAmazonS3Client() | ||
{ | ||
super(new AmazonS3Client(), new NoopServerSideEncryption()); |
Check notice
Code scanning / CodeQL
Deprecated method or constructor invocation Note test
AmazonS3Client.AmazonS3Client
1effb4e
to
d46076f
Compare
f9a693e
to
24aa7c8
Compare
Additionally allow S3DataSegmentMover and S3DataSegmentCopier to copy segments over 5GB.
24aa7c8
to
22baf57
Compare
This PR creates a DataSegmentCopier interface, and corresponding S3DataSegmentCopier implementation. The goal here is to provide an alternative for those wishing to move datasegments around between clusters. These classes are used in a CLI tool for copying datasources between clusters that was similar to the older, now-deprecated migration tool and plan to release that to open-source soon as well.
This also adds the ability for these transfer tools to move segments larger than 5GB using an S3 Transfer Manager.
Description
Currently, Druid only provides a means of moving (deleting from the source) a datasegment from one deep storage location to another. This adds flexibility to copy instead, while refactoring the code between
S3DataSegmentMover
andS3DataSegmentCopier
to be shared insideS3DataSegmentTransferUtility
.Release note
Key changed/added classes in this PR
extensions-core/s3-extensions/src/main/java/org/apache/druid/storage/s3/S3DataSegmentCopier.java
extensions-core/s3-extensions/src/main/java/org/apache/druid/storage/s3/S3DataSegmentMover.java
extensions-core/s3-extensions/src/main/java/org/apache/druid/storage/s3/S3DataSegmentTransferUtility.java
extensions-core/s3-extensions/src/test/java/org/apache/druid/storage/s3/S3DataSegmentCopierTest.java
processing/src/main/java/org/apache/druid/segment/loading/DataSegmentCopier.java
This PR has: