Skip to content

[New Physical IO] Adopting OpenStremInformation changes to new PhysicalIO#287

Merged
ozkoca merged 2 commits intoawslabs:physical-iofrom
ozkoca:physical-io-open-stream-information
Jun 9, 2025
Merged

[New Physical IO] Adopting OpenStremInformation changes to new PhysicalIO#287
ozkoca merged 2 commits intoawslabs:physical-iofrom
ozkoca:physical-io-open-stream-information

Conversation

@ozkoca
Copy link
Collaborator

@ozkoca ozkoca commented Jun 9, 2025

Description of change

  • This change adopts the changes from PR to the new Physical IO implementation.
  • Updates comment in DataBlock object

Relevant issues

OpenStremInformation PR
Initial version of Physical IO


By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license and I agree to the terms of the Developer Certificate of Origin (DCO).

@ozkoca ozkoca changed the title Adopting OpenStremInformation changes to new PhysicalIO [New Physical IO] Adopting OpenStremInformation changes to new PhysicalIO Jun 9, 2025
@rajdchak
Copy link
Contributor

rajdchak commented Jun 9, 2025

Thanks @ozkoca, LGTM!

@ozkoca ozkoca merged commit 7049973 into awslabs:physical-io Jun 9, 2025
@rajdchak rajdchak self-requested a review June 9, 2025 20:23
ozkoca added a commit that referenced this pull request Jun 11, 2025
## Description of change
This PR adopts the memory manager changes to new physicalIO/

#### Relevant issues
PR History:
- #286
- #287

#### Does this contribution introduce any breaking changes to the
existing APIs or behaviors?
No

#### Does this contribution introduce any new public APIs or behaviors?
No

---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).

---------

Co-authored-by: Erdogan Ozkoca <ozkoca@amazon.com>
ozkoca added a commit that referenced this pull request Jun 20, 2025
## Description of change
This PR adds a new method optimizeReads to the RangeOptimiser class to
improve read performance by intelligently grouping and splitting block
indexes. The implementation reduces the complexity in DataBlockManager
and makes the optimization logic more testable.

Changes are: 
- Adds readAheadBytes logic
- Adds sequential prefetching logic
- Groups sequential block indexes together
- Splits large sequential groups into smaller chunks based on
configuration parameters
- Refactored DataBlockManager to use the new method instead of
implementing the logic itself
- Added comprehensive unit tests for the new method

Out of Scope
- Range coalescing will be implemented in a separate PR


#### Relevant issues
PR History:

#286
#287
#288

#### Does this contribution introduce any breaking changes to the
existing APIs or behaviors?
No

#### Does this contribution introduce any new public APIs or behaviors?
No



---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).
ozkoca added a commit that referenced this pull request Jun 26, 2025
## Description of change
This PR merges the new PhysicalIO changes to the Blob object and start
to use the new implementation.

Next Steps:
- Range coalescing implementation
- Retry policy implementation

#### Relevant issues
PR History:

#286
#287
#288
#289

#### Does this contribution introduce any breaking changes to the
existing APIs or behaviors?
No

#### Does this contribution introduce any new public APIs or behaviors?
No
#### How was the contribution tested?
Unit test

#### Does this contribution need a changelog entry?
n/A

---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).
ozkoca added a commit to ozkoca/analytics-accelerator-s3 that referenced this pull request Jun 26, 2025
…alIO (awslabs#287)

## Description of change
- This change adopts the changes from
[PR](awslabs#283) to
the new Physical IO implementation.
- Updates comment in DataBlock object

#### Relevant issues
[OpenStremInformation
PR](awslabs#283)
[Initial version of Physical
IO](awslabs#286)

---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).

---------

Co-authored-by: Erdogan Ozkoca <ozkoca@amazon.com>
ozkoca added a commit to ozkoca/analytics-accelerator-s3 that referenced this pull request Jun 26, 2025
…slabs#288)

## Description of change
This PR adopts the memory manager changes to new physicalIO/

#### Relevant issues
PR History:
- awslabs#286
- awslabs#287

#### Does this contribution introduce any breaking changes to the
existing APIs or behaviors?
No

#### Does this contribution introduce any new public APIs or behaviors?
No

---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).

---------

Co-authored-by: Erdogan Ozkoca <ozkoca@amazon.com>
ozkoca added a commit to ozkoca/analytics-accelerator-s3 that referenced this pull request Jun 26, 2025
## Description of change
This PR adds a new method optimizeReads to the RangeOptimiser class to
improve read performance by intelligently grouping and splitting block
indexes. The implementation reduces the complexity in DataBlockManager
and makes the optimization logic more testable.

Changes are: 
- Adds readAheadBytes logic
- Adds sequential prefetching logic
- Groups sequential block indexes together
- Splits large sequential groups into smaller chunks based on
configuration parameters
- Refactored DataBlockManager to use the new method instead of
implementing the logic itself
- Added comprehensive unit tests for the new method

Out of Scope
- Range coalescing will be implemented in a separate PR


#### Relevant issues
PR History:

awslabs#286
awslabs#287
awslabs#288

#### Does this contribution introduce any breaking changes to the
existing APIs or behaviors?
No

#### Does this contribution introduce any new public APIs or behaviors?
No



---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).
ozkoca added a commit to ozkoca/analytics-accelerator-s3 that referenced this pull request Jun 26, 2025
This PR merges the new PhysicalIO changes to the Blob object and start
to use the new implementation.

Next Steps:
- Range coalescing implementation
- Retry policy implementation

PR History:

awslabs#286
awslabs#287
awslabs#288
awslabs#289

existing APIs or behaviors?
No

No
Unit test

n/A

---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).
ozkoca added a commit to ozkoca/analytics-accelerator-s3 that referenced this pull request Jun 26, 2025
…alIO (awslabs#287)

## Description of change
- This change adopts the changes from
[PR](awslabs#283) to
the new Physical IO implementation.
- Updates comment in DataBlock object

#### Relevant issues
[OpenStremInformation
PR](awslabs#283)
[Initial version of Physical
IO](awslabs#286)

---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).

---------

Co-authored-by: Erdogan Ozkoca <ozkoca@amazon.com>
ozkoca added a commit to ozkoca/analytics-accelerator-s3 that referenced this pull request Jun 26, 2025
…slabs#288)

## Description of change
This PR adopts the memory manager changes to new physicalIO/

#### Relevant issues
PR History:
- awslabs#286
- awslabs#287

#### Does this contribution introduce any breaking changes to the
existing APIs or behaviors?
No

#### Does this contribution introduce any new public APIs or behaviors?
No

---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).

---------

Co-authored-by: Erdogan Ozkoca <ozkoca@amazon.com>
ozkoca added a commit to ozkoca/analytics-accelerator-s3 that referenced this pull request Jun 26, 2025
## Description of change
This PR adds a new method optimizeReads to the RangeOptimiser class to
improve read performance by intelligently grouping and splitting block
indexes. The implementation reduces the complexity in DataBlockManager
and makes the optimization logic more testable.

Changes are: 
- Adds readAheadBytes logic
- Adds sequential prefetching logic
- Groups sequential block indexes together
- Splits large sequential groups into smaller chunks based on
configuration parameters
- Refactored DataBlockManager to use the new method instead of
implementing the logic itself
- Added comprehensive unit tests for the new method

Out of Scope
- Range coalescing will be implemented in a separate PR


#### Relevant issues
PR History:

awslabs#286
awslabs#287
awslabs#288

#### Does this contribution introduce any breaking changes to the
existing APIs or behaviors?
No

#### Does this contribution introduce any new public APIs or behaviors?
No



---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).
ozkoca added a commit to ozkoca/analytics-accelerator-s3 that referenced this pull request Jun 26, 2025
This PR merges the new PhysicalIO changes to the Blob object and start
to use the new implementation.

Next Steps:
- Range coalescing implementation
- Retry policy implementation

PR History:

awslabs#286
awslabs#287
awslabs#288
awslabs#289

existing APIs or behaviors?
No

No
Unit test

n/A

---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).
ozkoca added a commit to ozkoca/analytics-accelerator-s3 that referenced this pull request Jun 26, 2025
…alIO (awslabs#287)

## Description of change
- This change adopts the changes from
[PR](awslabs#283) to
the new Physical IO implementation.
- Updates comment in DataBlock object

#### Relevant issues
[OpenStremInformation
PR](awslabs#283)
[Initial version of Physical
IO](awslabs#286)

---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).

---------

Co-authored-by: Erdogan Ozkoca <ozkoca@amazon.com>
ozkoca added a commit to ozkoca/analytics-accelerator-s3 that referenced this pull request Jun 26, 2025
…slabs#288)

## Description of change
This PR adopts the memory manager changes to new physicalIO/

#### Relevant issues
PR History:
- awslabs#286
- awslabs#287

#### Does this contribution introduce any breaking changes to the
existing APIs or behaviors?
No

#### Does this contribution introduce any new public APIs or behaviors?
No

---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).

---------

Co-authored-by: Erdogan Ozkoca <ozkoca@amazon.com>
ozkoca added a commit to ozkoca/analytics-accelerator-s3 that referenced this pull request Jun 26, 2025
## Description of change
This PR adds a new method optimizeReads to the RangeOptimiser class to
improve read performance by intelligently grouping and splitting block
indexes. The implementation reduces the complexity in DataBlockManager
and makes the optimization logic more testable.

Changes are: 
- Adds readAheadBytes logic
- Adds sequential prefetching logic
- Groups sequential block indexes together
- Splits large sequential groups into smaller chunks based on
configuration parameters
- Refactored DataBlockManager to use the new method instead of
implementing the logic itself
- Added comprehensive unit tests for the new method

Out of Scope
- Range coalescing will be implemented in a separate PR


#### Relevant issues
PR History:

awslabs#286
awslabs#287
awslabs#288

#### Does this contribution introduce any breaking changes to the
existing APIs or behaviors?
No

#### Does this contribution introduce any new public APIs or behaviors?
No



---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).
ozkoca added a commit to ozkoca/analytics-accelerator-s3 that referenced this pull request Jun 26, 2025
This PR merges the new PhysicalIO changes to the Blob object and start
to use the new implementation.

Next Steps:
- Range coalescing implementation
- Retry policy implementation

PR History:

awslabs#286
awslabs#287
awslabs#288
awslabs#289

existing APIs or behaviors?
No

No
Unit test

n/A

---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).
ozkoca added a commit that referenced this pull request Jun 26, 2025
This PR merges the new PhysicalIO changes to the Blob object and start
to use the new implementation.

Next Steps:
- Range coalescing implementation
- Retry policy implementation

PR History:

#286
#287
#288
#289

existing APIs or behaviors?
No

No
Unit test

n/A

---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).
ozkoca added a commit to ozkoca/analytics-accelerator-s3 that referenced this pull request Jun 26, 2025
…alIO (awslabs#287)

## Description of change
- This change adopts the changes from
[PR](awslabs#283) to
the new Physical IO implementation.
- Updates comment in DataBlock object

#### Relevant issues
[OpenStremInformation
PR](awslabs#283)
[Initial version of Physical
IO](awslabs#286)

---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).

---------

Co-authored-by: Erdogan Ozkoca <ozkoca@amazon.com>
ozkoca added a commit to ozkoca/analytics-accelerator-s3 that referenced this pull request Jun 26, 2025
…slabs#288)

## Description of change
This PR adopts the memory manager changes to new physicalIO/

#### Relevant issues
PR History:
- awslabs#286
- awslabs#287

#### Does this contribution introduce any breaking changes to the
existing APIs or behaviors?
No

#### Does this contribution introduce any new public APIs or behaviors?
No

---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).

---------

Co-authored-by: Erdogan Ozkoca <ozkoca@amazon.com>
ozkoca added a commit to ozkoca/analytics-accelerator-s3 that referenced this pull request Jun 26, 2025
## Description of change
This PR adds a new method optimizeReads to the RangeOptimiser class to
improve read performance by intelligently grouping and splitting block
indexes. The implementation reduces the complexity in DataBlockManager
and makes the optimization logic more testable.

Changes are: 
- Adds readAheadBytes logic
- Adds sequential prefetching logic
- Groups sequential block indexes together
- Splits large sequential groups into smaller chunks based on
configuration parameters
- Refactored DataBlockManager to use the new method instead of
implementing the logic itself
- Added comprehensive unit tests for the new method

Out of Scope
- Range coalescing will be implemented in a separate PR


#### Relevant issues
PR History:

awslabs#286
awslabs#287
awslabs#288

#### Does this contribution introduce any breaking changes to the
existing APIs or behaviors?
No

#### Does this contribution introduce any new public APIs or behaviors?
No



---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).
ozkoca added a commit to ozkoca/analytics-accelerator-s3 that referenced this pull request Jun 26, 2025
This PR merges the new PhysicalIO changes to the Blob object and start
to use the new implementation.

Next Steps:
- Range coalescing implementation
- Retry policy implementation

PR History:

awslabs#286
awslabs#287
awslabs#288
awslabs#289

existing APIs or behaviors?
No

No
Unit test

n/A

---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).
ozkoca added a commit to ozkoca/analytics-accelerator-s3 that referenced this pull request Jun 26, 2025
…alIO (awslabs#287)

## Description of change
- This change adopts the changes from
[PR](awslabs#283) to
the new Physical IO implementation.
- Updates comment in DataBlock object

#### Relevant issues
[OpenStremInformation
PR](awslabs#283)
[Initial version of Physical
IO](awslabs#286)

---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).

---------

Co-authored-by: Erdogan Ozkoca <ozkoca@amazon.com>
ozkoca added a commit to ozkoca/analytics-accelerator-s3 that referenced this pull request Jun 26, 2025
…slabs#288)

## Description of change
This PR adopts the memory manager changes to new physicalIO/

#### Relevant issues
PR History:
- awslabs#286
- awslabs#287

#### Does this contribution introduce any breaking changes to the
existing APIs or behaviors?
No

#### Does this contribution introduce any new public APIs or behaviors?
No

---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).

---------

Co-authored-by: Erdogan Ozkoca <ozkoca@amazon.com>
ozkoca added a commit to ozkoca/analytics-accelerator-s3 that referenced this pull request Jun 26, 2025
## Description of change
This PR adds a new method optimizeReads to the RangeOptimiser class to
improve read performance by intelligently grouping and splitting block
indexes. The implementation reduces the complexity in DataBlockManager
and makes the optimization logic more testable.

Changes are: 
- Adds readAheadBytes logic
- Adds sequential prefetching logic
- Groups sequential block indexes together
- Splits large sequential groups into smaller chunks based on
configuration parameters
- Refactored DataBlockManager to use the new method instead of
implementing the logic itself
- Added comprehensive unit tests for the new method

Out of Scope
- Range coalescing will be implemented in a separate PR


#### Relevant issues
PR History:

awslabs#286
awslabs#287
awslabs#288

#### Does this contribution introduce any breaking changes to the
existing APIs or behaviors?
No

#### Does this contribution introduce any new public APIs or behaviors?
No



---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).
ozkoca added a commit to ozkoca/analytics-accelerator-s3 that referenced this pull request Jun 26, 2025
This PR merges the new PhysicalIO changes to the Blob object and start
to use the new implementation.

Next Steps:
- Range coalescing implementation
- Retry policy implementation

PR History:

awslabs#286
awslabs#287
awslabs#288
awslabs#289

existing APIs or behaviors?
No

No
Unit test

n/A

---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).
@ozkoca ozkoca mentioned this pull request Jun 30, 2025
1 task
ozkoca added a commit to ozkoca/analytics-accelerator-s3 that referenced this pull request Jul 14, 2025
…alIO (awslabs#287)

## Description of change
- This change adopts the changes from
[PR](awslabs#283) to
the new Physical IO implementation.
- Updates comment in DataBlock object

#### Relevant issues
[OpenStremInformation
PR](awslabs#283)
[Initial version of Physical
IO](awslabs#286)

---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).

---------

Co-authored-by: Erdogan Ozkoca <ozkoca@amazon.com>
ozkoca added a commit to ozkoca/analytics-accelerator-s3 that referenced this pull request Jul 14, 2025
…slabs#288)

## Description of change
This PR adopts the memory manager changes to new physicalIO/

#### Relevant issues
PR History:
- awslabs#286
- awslabs#287

#### Does this contribution introduce any breaking changes to the
existing APIs or behaviors?
No

#### Does this contribution introduce any new public APIs or behaviors?
No

---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).

---------

Co-authored-by: Erdogan Ozkoca <ozkoca@amazon.com>
ozkoca added a commit to ozkoca/analytics-accelerator-s3 that referenced this pull request Jul 14, 2025
## Description of change
This PR adds a new method optimizeReads to the RangeOptimiser class to
improve read performance by intelligently grouping and splitting block
indexes. The implementation reduces the complexity in DataBlockManager
and makes the optimization logic more testable.

Changes are: 
- Adds readAheadBytes logic
- Adds sequential prefetching logic
- Groups sequential block indexes together
- Splits large sequential groups into smaller chunks based on
configuration parameters
- Refactored DataBlockManager to use the new method instead of
implementing the logic itself
- Added comprehensive unit tests for the new method

Out of Scope
- Range coalescing will be implemented in a separate PR


#### Relevant issues
PR History:

awslabs#286
awslabs#287
awslabs#288

#### Does this contribution introduce any breaking changes to the
existing APIs or behaviors?
No

#### Does this contribution introduce any new public APIs or behaviors?
No



---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).
ozkoca added a commit to ozkoca/analytics-accelerator-s3 that referenced this pull request Jul 14, 2025
This PR merges the new PhysicalIO changes to the Blob object and start
to use the new implementation.

Next Steps:
- Range coalescing implementation
- Retry policy implementation

PR History:

awslabs#286
awslabs#287
awslabs#288
awslabs#289

existing APIs or behaviors?
No

No
Unit test

n/A

---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).
@ozkoca ozkoca deleted the physical-io-open-stream-information branch July 14, 2025 16:08
ozkoca added a commit that referenced this pull request Jul 24, 2025
## Description of change
This PR adds the capability of retry to the new PhysicalIO 

#### Relevant issues
#286
#287
#288
#289
#294
#316

#### Does this contribution introduce any breaking changes to the
existing APIs or behaviors?
No

#### Does this contribution introduce any new public APIs or behaviors?
No

#### How was the contribution tested?
Unit tests


---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).
ozkoca added a commit to ozkoca/analytics-accelerator-s3 that referenced this pull request Jul 25, 2025
Added iostats get request callback to streamReader (awslabs#317)

This PR moves IOStat callback method request from Block to StreamReader.
Needs to be done as part of code rebase

---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).

Telemetry support for physical IO (awslabs#318)

This PR adds telemetry measures for StreamReader and BlockManager.

Introducing retry policy to new PhysicalIO (awslabs#320)

This PR adds the capability of retry to the new PhysicalIO

awslabs#286
awslabs#287
awslabs#288
awslabs#289
awslabs#294
awslabs#316

existing APIs or behaviors?
No

No

Unit tests

---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).
ozkoca added a commit to ozkoca/analytics-accelerator-s3 that referenced this pull request Jul 25, 2025
Added iostats get request callback to streamReader (awslabs#317)

This PR moves IOStat callback method request from Block to StreamReader.
Needs to be done as part of code rebase

---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).

Telemetry support for physical IO (awslabs#318)

This PR adds telemetry measures for StreamReader and BlockManager.

Introducing retry policy to new PhysicalIO (awslabs#320)

This PR adds the capability of retry to the new PhysicalIO

awslabs#286
awslabs#287
awslabs#288
awslabs#289
awslabs#294
awslabs#316

existing APIs or behaviors?
No

No

Unit tests

---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).
ozkoca added a commit that referenced this pull request Jul 25, 2025
## Description of change
This PR rebases ant integrates the changes in PR
#321

#### Relevant issues
#286
#287
#288
#289
#294
#316
#320

#### Does this contribution introduce any breaking changes to the
existing APIs or behaviors?
No

#### Does this contribution introduce any new public APIs or behaviors?
No

#### How was the contribution tested?
Unit tests


---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).
ozkoca added a commit that referenced this pull request Jul 25, 2025
## Description of change
This PR changes default read buffer size to 128KB to have a better
performance

#### Relevant issues
#286
#287
#288
#289
#294
#316
#320
#323

#### Does this contribution introduce any breaking changes to the
existing APIs or behaviors?
No

#### Does this contribution introduce any new public APIs or behaviors?
No

#### How was the contribution tested?
Unit tests

#### Does this contribution need a changelog entry?
N/A

---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).
@ozkoca ozkoca mentioned this pull request Jul 25, 2025
1 task
ozkoca added a commit that referenced this pull request Jul 31, 2025
## Description of change
This PR implements a new PhysicalIO design with key improvements:

**Fixed Block Size:** Previously, block sizes varied based on request
ranges, requiring entire request ranges to complete before blocks became
available. The new design uses fixed-size blocks that become ready as
soon as individual blocks are filled, enabling faster data access and
better parallelization.

**Direct Block Writing:** Eliminates an extra memory copy by writing S3
data directly into Block storage instead of copying from intermediate
buffers, reducing memory overhead and CPU usage.

**Improved Concurrency:** Fixed-size blocks allow multiple blocks to be
processed independently, improving throughput for concurrent read
operations.

**Better Memory Management:** Predictable block sizes enable more
efficient memory allocation and cache management strategies.

**Enhanced Read Performance:** Blocks become available for reading as
soon as they're filled, rather than waiting for entire request ranges to
complete, reducing read latency.

#### Relevant issues
#286
#287
#288
#289
#294
#316
#320
#323
#324

#### Does this contribution introduce any breaking changes to the
existing APIs or behaviors?
No

#### Does this contribution introduce any new public APIs or behaviors?
No

#### How was the contribution tested?
Unit tests, microbenchmarks

#### Does this contribution need a changelog entry?
- [ ] I have updated the CHANGELOG or README if appropriate

---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).
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