-
Notifications
You must be signed in to change notification settings - Fork 405
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
Issue 5458: (SLTS) For read operation, read all chunks in parallel. #5459
Issue 5458: (SLTS) For read operation, read all chunks in parallel. #5459
Conversation
Signed-off-by: Sachin Joshi <sachin.joshi@emc.com>
Codecov Report
@@ Coverage Diff @@
## master #5459 +/- ##
============================================
+ Coverage 84.26% 84.74% +0.48%
- Complexity 8970 13869 +4899
============================================
Files 634 917 +283
Lines 32781 51355 +18574
Branches 2982 5299 +2317
============================================
+ Hits 27623 43521 +15898
- Misses 3483 4943 +1460
- Partials 1675 2891 +1216
Continue to review full report at Codecov.
|
...entstore/storage/src/main/java/io/pravega/segmentstore/storage/chunklayer/ReadOperation.java
Outdated
Show resolved
Hide resolved
...entstore/storage/src/main/java/io/pravega/segmentstore/storage/chunklayer/ReadOperation.java
Outdated
Show resolved
Hide resolved
...entstore/storage/src/main/java/io/pravega/segmentstore/storage/chunklayer/ReadOperation.java
Show resolved
Hide resolved
...entstore/storage/src/main/java/io/pravega/segmentstore/storage/chunklayer/ReadOperation.java
Show resolved
Hide resolved
...entstore/storage/src/main/java/io/pravega/segmentstore/storage/chunklayer/ReadOperation.java
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
While I understand the potential benefits of the PR, I have some questions/concerns:
- How do we ensure that blindly issuing parallel reads to storage is not going to have side effects, like overwhelming the cache?
- How do we guarantee that this approach is not going to induce importante interferences in the operation of
StorageWriter
if many parallel reads are getting most threads of the storage pool? - We need tests to validate the above scenarios in some way, and also that the change in updating the atomic counters (e.g.,
currentBufferOffset
) is right, even if one of the storage reads fails.
To summarize the change
Testing
|
Signed-off-by: Sachin Joshi <sachin.joshi@emc.com>
…hub.com/sachin-j-joshi/pravega into issue-5458-SLTS-read-chunks-in-parallel
Signed-off-by: Sachin Joshi <sachin.joshi@emc.com>
…e-5458-SLTS-read-chunks-in-parallel
...entstore/storage/src/main/java/io/pravega/segmentstore/storage/chunklayer/ReadOperation.java
Outdated
Show resolved
Hide resolved
...entstore/storage/src/main/java/io/pravega/segmentstore/storage/chunklayer/ReadOperation.java
Show resolved
Hide resolved
...entstore/storage/src/main/java/io/pravega/segmentstore/storage/chunklayer/ReadOperation.java
Outdated
Show resolved
Hide resolved
...entstore/storage/src/main/java/io/pravega/segmentstore/storage/chunklayer/ReadOperation.java
Outdated
Show resolved
Hide resolved
Signed-off-by: Sachin Joshi <sachin.joshi@emc.com>
…e-5458-SLTS-read-chunks-in-parallel
…hub.com/sachin-j-joshi/pravega into issue-5458-SLTS-read-chunks-in-parallel
…ravega#5459) ReadOperation reads all the relevant chunks in parallel when multiple chunks need to be read in a single call. Signed-off-by: Sachin Joshi <sachin.joshi@emc.com>
…ravega#5459) ReadOperation reads all the relevant chunks in parallel when multiple chunks need to be read in a single call. Signed-off-by: Sachin Joshi <sachin.joshi@emc.com> Signed-off-by: Tom Kaitchuck <tom.kaitchuck@emc.com>
…ravega#5459) ReadOperation reads all the relevant chunks in parallel when multiple chunks need to be read in a single call. Signed-off-by: Sachin Joshi <sachin.joshi@emc.com>
Cherry-picks following changes 0.9 Issue 5518: (SLTS) Fix Integer overflow. (#5520) Issue 5606: BoundedInputStream::markSupported() should always return false.. (#5615) Issue 5597 : ExtendedS3ChunkStorage and ExtendedS3Storage should close S3Client. (#5598) Issue 5535: (SegmentStore) Refactoring ExtendedS3 Test Mocks (#5537) Issue 5456: (SLTS) - Handle possible failure during deletion of metadata keys can cause version mismatch in next attempt (#5457) Issue 5458: (SLTS) For read operation, read all chunks in parallel. (#5459) Issue 4967: (SLTS) Add createWithContent overload that creates object and writes to it in a single call. (#5455) Issue 5664: SLTS - fix possible thread visibility issues.. (#5665) Issue 5475: Eliminate unnecessary pessimistic checks. (#5662) Issue 5570: (SLTS) AsyncBaseChunkStorage latency should not include time spent in waiting to be executed. (#5661) Issue 4967: (SLTS) No need to check last chunk length for claimOwnership for no append mode. (#5663) Issue 5673: (SLTS) Fix wrong GC config (#5674) Issue 5737: (SLTS) Improve metrics (#5746) Issue 5460: (SLTS) Add read index virtual block entries to metadata. (#5461) Issue 5772: (SLTS) - BaseMetadataStore does not evict entries from buffer. (#5773) Issue 5798: (SLTS) Fix close in GarbageCollector, ExtendedS3ChunkStorage and HDFSChunkStorage. (#5800) Issue 5788: (SLTS) Remove ACL operations from ExtendedS3ChunkStorage (#5790) Issue 5808: SLTS - Fix Preconditions checks to include enough information in message. (#5809) Issue 5853: SLTS - BaseMetadataStore.get does not return deep copy when loading from store. #5858 Issue 5866: (SLTS) ReadIndexCache stats not reported. (#5867) Signed-off-by: Sachin Joshi <sachin.joshi@emc.com>
Signed-off-by: Sachin Joshi sachin.joshi@emc.com
Change log description
ReadOperation reads all the relevant chunks in parallel when multiple chunks need to be read in a single call.
Purpose of the change
Fixes #5458
What the code does
ReadOperation reads all the relevant chunks in parallel when multiple chunks need to be read in a single call.
How to verify it
Existing tests should cover this scenario already.
All existing tests should pass.