You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@opendal.apache.org by gx...@apache.org on 2023/12/14 15:41:08 UTC

(incubator-opendal) branch bump_governor created (now da84983c6)

This is an automated email from the ASF dual-hosted git repository.

gxd pushed a change to branch bump_governor
in repository https://gitbox.apache.org/repos/asf/incubator-opendal.git


      at da84983c6 chore: Bump governor from 0.5.1 to 0.6.0

This branch includes the following new commits:

     new da84983c6 chore: Bump governor from 0.5.1 to 0.6.0

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



(incubator-opendal) 01/01: chore: Bump governor from 0.5.1 to 0.6.0

Posted by gx...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

gxd pushed a commit to branch bump_governor
in repository https://gitbox.apache.org/repos/asf/incubator-opendal.git

commit da84983c683c338b1e39ba12e519b5e53803e55b
Author: G-XD <GX...@gmail.com>
AuthorDate: Thu Dec 14 23:36:53 2023 +0800

    chore: Bump governor from 0.5.1 to 0.6.0
---
 Cargo.lock                  | 39 ++++-----------------------------------
 core/Cargo.toml             |  2 +-
 core/src/layers/throttle.rs | 37 ++++++++++++++++---------------------
 3 files changed, 21 insertions(+), 57 deletions(-)

diff --git a/Cargo.lock b/Cargo.lock
index e9d4cb1fc..47be8ca84 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2966,9 +2966,9 @@ dependencies = [
 
 [[package]]
 name = "governor"
-version = "0.5.1"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c390a940a5d157878dd057c78680a33ce3415bcd05b4799509ea44210914b4d5"
+checksum = "821239e5672ff23e2a7060901fa622950bbd80b649cdaadd78d1c1767ed14eb4"
 dependencies = [
  "cfg-if",
  "dashmap",
@@ -2977,7 +2977,7 @@ dependencies = [
  "no-std-compat",
  "nonzero_ext",
  "parking_lot 0.12.1",
- "quanta 0.9.3",
+ "quanta",
  "rand 0.8.5",
  "smallvec",
 ]
@@ -3856,15 +3856,6 @@ dependencies = [
  "linked-hash-map",
 ]
 
-[[package]]
-name = "mach"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa"
-dependencies = [
- "libc",
-]
-
 [[package]]
 name = "mach2"
 version = "0.4.1"
@@ -4183,7 +4174,7 @@ dependencies = [
  "futures-util",
  "once_cell",
  "parking_lot 0.12.1",
- "quanta 0.11.1",
+ "quanta",
  "rustc_version 0.4.0",
  "skeptic",
  "smallvec",
@@ -5848,22 +5839,6 @@ dependencies = [
  "syn 2.0.39",
 ]
 
-[[package]]
-name = "quanta"
-version = "0.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "20afe714292d5e879d8b12740aa223c6a88f118af41870e8b6196e39a02238a8"
-dependencies = [
- "crossbeam-utils",
- "libc",
- "mach",
- "once_cell",
- "raw-cpuid",
- "wasi 0.10.2+wasi-snapshot-preview1",
- "web-sys",
- "winapi",
-]
-
 [[package]]
 name = "quanta"
 version = "0.11.1"
@@ -8161,12 +8136,6 @@ version = "0.9.0+wasi-snapshot-preview1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
 
-[[package]]
-name = "wasi"
-version = "0.10.2+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
-
 [[package]]
 name = "wasi"
 version = "0.11.0+wasi-snapshot-preview1"
diff --git a/core/Cargo.toml b/core/Cargo.toml
index fa177f7c6..301dc99e7 100644
--- a/core/Cargo.toml
+++ b/core/Cargo.toml
@@ -245,7 +245,7 @@ foundationdb = { version = "0.8.0", features = [
   "embedded-fdb-include",
 ], optional = true }
 futures = { version = "0.3", default-features = false, features = ["std"] }
-governor = { version = "0.5", optional = true, features = ["std"] }
+governor = { version = "0.6.0", optional = true, features = ["std"] }
 hdrs = { version = "0.3.0", optional = true, features = ["async_file"] }
 hrana-client-proto = { version = "0.2.1", optional = true }
 http = "0.2.9"
diff --git a/core/src/layers/throttle.rs b/core/src/layers/throttle.rs
index d76428b39..ea3da1cdb 100644
--- a/core/src/layers/throttle.rs
+++ b/core/src/layers/throttle.rs
@@ -29,7 +29,6 @@ use governor::clock::DefaultClock;
 use governor::middleware::NoOpMiddleware;
 use governor::state::InMemoryState;
 use governor::state::NotKeyed;
-use governor::NegativeMultiDecision;
 use governor::Quota;
 use governor::RateLimiter;
 
@@ -221,24 +220,22 @@ impl<R: oio::Write> oio::Write for ThrottleWrapper<R> {
 
         loop {
             match self.limiter.check_n(buf_length) {
-                Ok(_) => return self.inner.poll_write(cx, bs),
-                Err(negative) => match negative {
+                Ok(res) => match res {
+                    Ok(_) => return self.inner.poll_write(cx, bs),
                     // the query is valid but the Decider can not accommodate them.
-                    NegativeMultiDecision::BatchNonConforming(_, not_until) => {
+                    Err(not_until) => {
                         let _ = not_until.wait_time_from(DefaultClock::default().now());
                         // TODO: Should lock the limiter and wait for the wait_time, or should let other small requests go first?
 
                         // FIXME: we should sleep here.
                         // tokio::time::sleep(wait_time).await;
                     }
-                    // the query was invalid as the rate limit parameters can "never" accommodate the number of cells queried for.
-                    NegativeMultiDecision::InsufficientCapacity(_) => {
-                        return Poll::Ready(Err(Error::new(
-                            ErrorKind::RateLimited,
-                            "InsufficientCapacity due to burst size being smaller than the request size",
-                        )))
-                    }
                 },
+                // the query was invalid as the rate limit parameters can "never" accommodate the number of cells queried for.
+                Err(_) => return Poll::Ready(Err(Error::new(
+                    ErrorKind::RateLimited,
+                    "InsufficientCapacity due to burst size being smaller than the request size",
+                ))),
             }
         }
     }
@@ -258,21 +255,19 @@ impl<R: oio::BlockingWrite> oio::BlockingWrite for ThrottleWrapper<R> {
 
         loop {
             match self.limiter.check_n(buf_length) {
-                Ok(_) => return self.inner.write(bs),
-                Err(negative) => match negative {
+                Ok(res) => match res {
+                    Ok(_) => return self.inner.write(bs),
                     // the query is valid but the Decider can not accommodate them.
-                    NegativeMultiDecision::BatchNonConforming(_, not_until) => {
+                    Err(not_until) => {
                         let wait_time = not_until.wait_time_from(DefaultClock::default().now());
                         thread::sleep(wait_time);
                     }
-                    // the query was invalid as the rate limit parameters can "never" accommodate the number of cells queried for.
-                    NegativeMultiDecision::InsufficientCapacity(_) => {
-                        return Err(Error::new(
-                            ErrorKind::RateLimited,
-                            "InsufficientCapacity due to burst size being smaller than the request size",
-                        ))
-                    }
                 },
+                // the query was invalid as the rate limit parameters can "never" accommodate the number of cells queried for.
+                Err(_) => return Err(Error::new(
+                    ErrorKind::RateLimited,
+                    "InsufficientCapacity due to burst size being smaller than the request size",
+                )),
             }
         }
     }