MCPcopy Create free account
hub / github.com/erans/pgsqlite / check_memory_pressure

Method check_memory_pressure

src/protocol/memory_monitor.rs:196–228  ·  view source on GitHub ↗

Check current memory pressure and take action if needed

(&self)

Source from the content-addressed store, hash-verified

194
195 /// Check current memory pressure and take action if needed
196 pub fn check_memory_pressure(&self) {
197 if !self.monitoring_active.load(Ordering::Relaxed) {
198 return;
199 }
200
201 let current_memory = self.get_current_memory_usage();
202 let pressure = self.calculate_pressure_level(current_memory);
203
204 // Update stats
205 {
206 let mut stats = self.stats.lock();
207 stats.buffer_pool_bytes = self.buffer_pool_bytes.load(Ordering::Relaxed);
208 stats.message_bytes = self.message_bytes.load(Ordering::Relaxed);
209 stats.query_bytes = self.query_bytes.load(Ordering::Relaxed);
210 stats.pressure_level = pressure;
211
212 if current_memory > stats.peak_memory_bytes {
213 stats.peak_memory_bytes = current_memory;
214 }
215
216 stats.cleanup_events = self.cleanup_events.load(Ordering::Relaxed);
217 }
218
219 // Take action based on pressure level
220 if pressure != MemoryPressure::Low && self.config.enable_auto_cleanup {
221 self.trigger_cleanup(pressure);
222 }
223
224 // Log memory status if detailed monitoring is enabled
225 if self.config.enable_detailed_monitoring {
226 self.log_memory_status(current_memory, pressure);
227 }
228 }
229
230 /// Get current total memory usage
231 fn get_current_memory_usage(&self) -> u64 {

Calls 5

loadMethod · 0.80
trigger_cleanupMethod · 0.80
log_memory_statusMethod · 0.80

Tested by 1