[#644] Support keepalive during listing #644

Open
dkirillov wants to merge 1 commit from dkirillov/frostfs-s3-gw:feature/wait_slow_listing into master
Member

Send whitespaces every time as new object in list is ready
to prevent client from context cancelling.

Signed-off-by: Denis Kirillov d.kirillov@yadro.com

Send whitespaces every time as new object in list is ready to prevent client from context cancelling. Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
dkirillov self-assigned this 2025-02-19 14:28:15 +00:00
dkirillov added 1 commit 2025-02-19 14:28:16 +00:00
[#XX] Support keepalive during listing
Some checks failed
/ DCO (pull_request) Failing after 27s
/ Vulncheck (pull_request) Successful in 1m22s
/ Builds (pull_request) Successful in 2m1s
/ OCI image (pull_request) Successful in 2m22s
/ Lint (pull_request) Failing after 59s
/ Tests (pull_request) Failing after 10m52s
eb3adf23a8
Send whitespaces every time as new object in list is ready
to prevent client from context cancelling.

Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
requested reviews from storage-services-developers, storage-services-committers 2025-02-19 14:28:16 +00:00
dkirillov changed title from [#XX] Support keepalive during listing to [#644] Support keepalive during listing 2025-02-19 14:28:33 +00:00
dkirillov force-pushed feature/wait_slow_listing from eb3adf23a8 to d7881c9f5e 2025-02-19 14:28:49 +00:00 Compare
dkirillov force-pushed feature/wait_slow_listing from d7881c9f5e to dd9f2c931c 2025-02-20 07:26:49 +00:00 Compare
dkirillov force-pushed feature/wait_slow_listing from dd9f2c931c to 1197216286 2025-02-20 07:56:23 +00:00 Compare
dkirillov force-pushed feature/wait_slow_listing from 1197216286 to 281de60575 2025-02-24 13:56:25 +00:00 Compare
alexvanin reviewed 2025-02-25 12:21:49 +00:00
@ -147,0 +153,4 @@
}
return WriteResponseBody(w, encodedErrorResponse)
}
Owner

Just to be sure, these new response functions were previously used when gateway sent keepalive bytes in CompleteMultipartUpload, right?

Just to be sure, these new response functions were previously used when gateway sent keepalive bytes in CompleteMultipartUpload, right?
@ -73,6 +73,8 @@ const (
defaultTombstoneMembersSize = 100
defaultTombstoneWorkerPoolSize = 100
defaultListingKeepaliveThrottle = 10 * time.Second
Owner

I would like to enable keepalive only when throttling setting is set up. Can we allow default zero value and do nothing in goroutine that sends whitespaces in this case + test?

I would like to enable keepalive only when throttling setting is set up. Can we allow default zero value and do nothing in goroutine that sends whitespaces in this case + test?
@ -236,1 +236,4 @@
default_namespaces: [ "", "root" ]
# During listing the s3 gate sends whitespaces to client to prevent it from cancelling request.
# The gate do send every time when new object is handled.
# Use this parameter to limit such sends by one per provided duration.
Owner

I would rephrase this a bit along with a possibility to enable/disable whitespaces.

# During listing the s3 gate may send whitespaces to client to prevent it from cancelling request.
# The gate is going to send whitespace every time it receives chunk of data from FrostFS storage
# This parameter enables this feature and limits frequency of whitespace transmissions.
I would rephrase this a bit along with a possibility to enable/disable whitespaces. ``` # During listing the s3 gate may send whitespaces to client to prevent it from cancelling request. # The gate is going to send whitespace every time it receives chunk of data from FrostFS storage # This parameter enables this feature and limits frequency of whitespace transmissions. ```
All checks were successful
/ DCO (pull_request) Successful in 36s
Required
Details
/ Vulncheck (pull_request) Successful in 1m7s
Required
Details
/ Builds (pull_request) Successful in 1m27s
Required
Details
/ Lint (pull_request) Successful in 2m7s
Required
Details
/ Tests (pull_request) Successful in 1m19s
Required
Details
/ OCI image (pull_request) Successful in 2m14s
Required
Details
This pull request has changes conflicting with the target branch.
  • api/handler/util.go
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u feature/wait_slow_listing:dkirillov-feature/wait_slow_listing
git checkout dkirillov-feature/wait_slow_listing
Sign in to join this conversation.
No reviewers
TrueCloudLab/storage-services-developers
TrueCloudLab/storage-services-committers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: TrueCloudLab/frostfs-s3-gw#644
No description provided.