No description
Find a file
Dmitrii Stepanov 41690c21e5
All checks were successful
DCO action / DCO (pull_request) Successful in 24s
Vulncheck / Vulncheck (pull_request) Successful in 31s
Pre-commit hooks / Pre-commit (pull_request) Successful in 1m10s
Tests and linters / Run gofumpt (pull_request) Successful in 1m4s
Tests and linters / Lint (pull_request) Successful in 1m12s
Tests and linters / gopls check (pull_request) Successful in 1m11s
Tests and linters / Staticcheck (pull_request) Successful in 1m18s
Tests and linters / Tests with -race (pull_request) Successful in 1m30s
Tests and linters / Tests (pull_request) Successful in 1m3s
[#9999] mclock: Schedule by limit requests as soon as possible
Let's assume that for some tag `limit = 1000 RPS` defined and each
request takes 10 ms to complete. At some point in time 1000 requests
were accepted. Then first request will be scheduled at `now()`, second -
at `now() + 1 ms`, third - at `now() + 2 ms` etc. Total processing
duration of 1000 requests will be 1 second + 10 ms.

After this fix scheduler looks forward to schedule requests within limit.
So for situation above total processing duration of 1000 requests will be
10 ms in ideal world.

Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2025-03-24 15:33:50 +03:00
.forgejo [#5] govulncheck: Fix minor update problems for good 2025-02-10 18:39:38 +03:00
internal/assert [#1] mclock: Add assert package 2025-01-28 11:35:54 +03:00
limiting [#8] limiting: Make SemaphoreLimiter.Acquire() zero-alloc 2025-02-26 18:03:41 +03:00
scheduling [#9999] mclock: Schedule by limit requests as soon as possible 2025-03-24 15:33:50 +03:00
tagging [#12] grpc: Fix method name 2025-03-20 17:24:39 +03:00
.gitattributes Initial commit 2025-01-20 16:02:19 +03:00
.gitignore Initial commit 2025-01-20 16:02:19 +03:00
.golangci.yml Initial commit 2025-01-20 16:02:19 +03:00
.pre-commit-config.yaml [#6] pre-commit: Add hook for running gofumpt 2025-03-04 13:01:33 +03:00
CODEOWNERS [#2] Add CODEOWNERS 2025-01-28 14:29:37 +03:00
go.mod [#2] tagging: Add grpc and context methods 2025-01-28 14:29:36 +03:00
go.sum [#2] tagging: Add grpc and context methods 2025-01-28 14:29:36 +03:00
LICENSE Initial commit 2025-01-20 16:02:19 +03:00
Makefile [#6] Makefile: Remove fmt rule, use fumpt rule instead 2025-03-04 13:01:25 +03:00
README.md Initial commit 2025-01-20 16:02:19 +03:00

Quality of Service (QoS) Go libraries for FrostFS object storage

See package documentation at pkg.go.dev

Copyright 2023-2025 FrostFS contributors

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.