Fix large file upload freeze with adaptive buffer sizing (#869)

* Initial plan

* Fix large file upload freeze by increasing StreamReader buffer size

Co-authored-by: houseme <4829346+houseme@users.noreply.github.com>

* Add comprehensive documentation for large file upload freeze fix

Co-authored-by: houseme <4829346+houseme@users.noreply.github.com>

* upgrade s3s version

* Fix compilation error: use BufReader instead of non-existent StreamReader::with_capacity

Co-authored-by: houseme <4829346+houseme@users.noreply.github.com>

* Update documentation with correct BufReader implementation

Co-authored-by: houseme <4829346+houseme@users.noreply.github.com>

* add tokio feature `io-util`

* Implement adaptive buffer sizing based on file size

Co-authored-by: houseme <4829346+houseme@users.noreply.github.com>

* Constants are managed uniformly and fmt code

* fix

* Fix: Trigger self-heal on read when shards missing from rejoined nodes (#871)

* Initial plan

* Fix: Trigger self-heal when missing shards detected during read

- Added proactive heal detection in get_object_with_fileinfo
- When reading an object, now checks if any shards are missing even if read succeeds
- Sends low-priority heal request to reconstruct missing shards on rejoined nodes
- This fixes the issue where data written during node outage is not healed when node rejoins

Co-authored-by: houseme <4829346+houseme@users.noreply.github.com>

* fix

* Unify CRC implementations to crc-fast (#873)

* Initial plan

* Replace CRC libraries with unified crc-fast implementation

Co-authored-by: houseme <4829346+houseme@users.noreply.github.com>

* fix

* fix: replace low to Normal

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: houseme <4829346+houseme@users.noreply.github.com>
Co-authored-by: houseme <housemecn@gmail.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: houseme <housemecn@gmail.com>
Co-authored-by: houseme <4829346+houseme@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: houseme <4829346+houseme@users.noreply.github.com>
Co-authored-by: houseme <housemecn@gmail.com>
This commit is contained in:
Copilot
2025-11-17 23:15:20 +08:00
committed by GitHub
parent 1279baa72b
commit 601f3456bc
14 changed files with 380 additions and 78 deletions

23
Cargo.lock generated
View File

@@ -1871,15 +1871,6 @@ dependencies = [
"cfg-if",
]
[[package]]
name = "crc64fast-nvme"
version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "38fe9239af6a04e140c7424d36d1615f37f1804700c17d5339af162add9022e0"
dependencies = [
"crc",
]
[[package]]
name = "criterion"
version = "0.7.0"
@@ -7216,7 +7207,7 @@ version = "0.0.5"
dependencies = [
"byteorder",
"bytes",
"crc32fast",
"crc-fast",
"criterion",
"lazy_static",
"regex",
@@ -7436,9 +7427,7 @@ dependencies = [
"aes-gcm",
"base64 0.22.1",
"bytes",
"crc32c",
"crc32fast",
"crc64fast-nvme",
"crc-fast",
"faster-hex",
"futures",
"hex-simd",
@@ -7545,7 +7534,7 @@ dependencies = [
"brotli 8.0.2",
"bytes",
"convert_case",
"crc32fast",
"crc-fast",
"flate2",
"futures",
"hashbrown 0.16.0",
@@ -7789,7 +7778,7 @@ checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f"
[[package]]
name = "s3s"
version = "0.12.0-rc.3"
source = "git+https://github.com/s3s-project/s3s.git?rev=1ab064b#1ab064b6e8cfe0c36a2f763e9f6aa14b56592220"
source = "git+https://github.com/s3s-project/s3s.git?rev=ba9f902#ba9f902df5a0b68dc9b0eeed4f06625fc0633d20"
dependencies = [
"arrayvec",
"async-trait",
@@ -7800,9 +7789,7 @@ dependencies = [
"cfg-if",
"chrono",
"const-str",
"crc32c",
"crc32fast",
"crc64fast-nvme",
"crc-fast",
"futures",
"hex-simd",
"hmac 0.13.0-rc.3",