@@ -3,7 +3,6 @@ use std::sync::Arc;
33
44use async_channel:: { Receiver , RecvError , Sender , unbounded} ;
55use humansize:: make_format;
6- use mountpoint_s3_client:: ObjectClient ;
76use tracing:: trace;
87
98use crate :: mem_limiter:: { BufferArea , MemoryLimiter } ;
@@ -35,7 +34,7 @@ pub struct BackpressureConfig {
3534/// It is used to send feedback ([Self::send_feedback]) to its corresponding [BackpressureLimiter],
3635/// the counterpart which should be leveraged by the stream producer.
3736#[ derive( Debug ) ]
38- pub struct BackpressureController < Client : ObjectClient > {
37+ pub struct BackpressureController {
3938 /// Sender for the [BackpressureLimiter] to receive size increments from the controller.
4039 read_window_updater : Sender < usize > ,
4140 /// Amount by which the producer should be producing data ahead of [Self::next_read_offset].
@@ -58,7 +57,7 @@ pub struct BackpressureController<Client: ObjectClient> {
5857 /// Memory limiter is used to guide decisions on how much data to prefetch.
5958 ///
6059 /// For example, when memory is low we should scale down [Self::preferred_read_window_size].
61- mem_limiter : Arc < MemoryLimiter < Client > > ,
60+ mem_limiter : Arc < MemoryLimiter > ,
6261}
6362
6463/// The [BackpressureLimiter] is used on producer side of a stream, for example,
@@ -81,10 +80,10 @@ pub struct BackpressureLimiter {
8180///
8281/// This pair allows a consumer to send feedback ([BackpressureFeedbackEvent]) when starved or bytes are consumed,
8382/// informing a producer (a holder of the [BackpressureLimiter]) when it should provide data more aggressively.
84- pub fn new_backpressure_controller < Client : ObjectClient > (
83+ pub fn new_backpressure_controller (
8584 config : BackpressureConfig ,
86- mem_limiter : Arc < MemoryLimiter < Client > > ,
87- ) -> ( BackpressureController < Client > , BackpressureLimiter ) {
85+ mem_limiter : Arc < MemoryLimiter > ,
86+ ) -> ( BackpressureController , BackpressureLimiter ) {
8887 // Minimum window size multiplier as the scaling up and down won't work if the multiplier is 1.
8988 const MIN_WINDOW_SIZE_MULTIPLIER : usize = 2 ;
9089 let read_window_end_offset = config. request_range . start + config. initial_read_window_size as u64 ;
@@ -114,7 +113,7 @@ pub fn new_backpressure_controller<Client: ObjectClient>(
114113 ( controller, limiter)
115114}
116115
117- impl < Client : ObjectClient > BackpressureController < Client > {
116+ impl BackpressureController {
118117 pub fn read_window_end_offset ( & self ) -> u64 {
119118 self . read_window_end_offset
120119 }
@@ -234,7 +233,7 @@ impl<Client: ObjectClient> BackpressureController<Client> {
234233 }
235234}
236235
237- impl < Client : ObjectClient > Drop for BackpressureController < Client > {
236+ impl Drop for BackpressureController {
238237 fn drop ( & mut self ) {
239238 debug_assert ! (
240239 self . next_read_offset <= self . request_end_offset,
@@ -435,7 +434,7 @@ mod tests {
435434
436435 fn new_backpressure_controller_for_test (
437436 backpressure_config : BackpressureConfig ,
438- ) -> ( BackpressureController < MockClient > , BackpressureLimiter ) {
437+ ) -> ( BackpressureController , BackpressureLimiter ) {
439438 let client = MockClient :: config ( )
440439 . bucket ( "test-bucket" )
441440 . part_size ( 8 * 1024 * 1024 )
0 commit comments