change fraction type
This commit is contained in:
		
							parent
							
								
									ec44f3d568
								
							
						
					
					
						commit
						d253f9236a
					
				
					 2 changed files with 6 additions and 6 deletions
				
			
		|  | @ -126,7 +126,7 @@ fn default_sqlite_wal_clean_second_timeout() -> u32 { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| fn default_sqlite_spillover_reap_fraction() -> f64 { | fn default_sqlite_spillover_reap_fraction() -> f64 { | ||||||
|     2.0 |     0.5 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| fn default_sqlite_spillover_reap_interval_secs() -> u32 { | fn default_sqlite_spillover_reap_interval_secs() -> u32 { | ||||||
|  | @ -558,7 +558,7 @@ impl Database { | ||||||
| 
 | 
 | ||||||
|     #[cfg(feature = "sqlite")] |     #[cfg(feature = "sqlite")] | ||||||
|     pub async fn start_spillover_reap_task(engine: Arc<Engine>, config: &Config) { |     pub async fn start_spillover_reap_task(engine: Arc<Engine>, config: &Config) { | ||||||
|         let fraction_factor = config.sqlite_spillover_reap_fraction.max(1.0); |         let fraction = config.sqlite_spillover_reap_fraction.clamp(0.01, 1.0); | ||||||
|         let interval_secs = config.sqlite_spillover_reap_interval_secs as u64; |         let interval_secs = config.sqlite_spillover_reap_interval_secs as u64; | ||||||
| 
 | 
 | ||||||
|         let weak = Arc::downgrade(&engine); |         let weak = Arc::downgrade(&engine); | ||||||
|  | @ -574,7 +574,7 @@ impl Database { | ||||||
|                 i.tick().await; |                 i.tick().await; | ||||||
| 
 | 
 | ||||||
|                 if let Some(arc) = Weak::upgrade(&weak) { |                 if let Some(arc) = Weak::upgrade(&weak) { | ||||||
|                     arc.reap_spillover_by_fraction(fraction_factor); |                     arc.reap_spillover_by_fraction(fraction); | ||||||
|                 } else { |                 } else { | ||||||
|                     break; |                     break; | ||||||
|                 } |                 } | ||||||
|  |  | ||||||
|  | @ -244,14 +244,14 @@ impl Engine { | ||||||
|             .map_err(Into::into) |             .map_err(Into::into) | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     // Reaps (at most) (.len() / `fraction`) (rounded down, min 1) connections.
 |     // Reaps (at most) (.len() * `fraction`) (rounded down, min 1) connections.
 | ||||||
|     pub fn reap_spillover_by_fraction(&self, fraction: f64) { |     pub fn reap_spillover_by_fraction(&self, fraction: f64) { | ||||||
|         let mut reaped = 0; |         let mut reaped = 0; | ||||||
| 
 | 
 | ||||||
|         let spill_amount = self.pool.spills.1.len() as f64; |         let spill_amount = self.pool.spills.1.len() as f64; | ||||||
|         let fraction = fraction.max(1.0 /* Can never be too sure */); |         let fraction = fraction.clamp(0.01, 1.0); | ||||||
| 
 | 
 | ||||||
|         let amount = (spill_amount / fraction).max(1.0) as u32; |         let amount = (spill_amount * fraction).max(1.0) as u32; | ||||||
| 
 | 
 | ||||||
|         for _ in 0..amount { |         for _ in 0..amount { | ||||||
|             if self.pool.spills.try_take().is_some() { |             if self.pool.spills.try_take().is_some() { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue