MCPcopy Create free account
hub / github.com/GraphLite-AI/GraphLite / insert

Method insert

graphlite/src/cache/subquery_cache.rs:448–492  ·  view source on GitHub ↗

Insert subquery result into cache

(
        &self,
        key: SubqueryCacheKey,
        result: SubqueryResult,
        execution_time: Duration,
        complexity_score: f64,
    )

Source from the content-addressed store, hash-verified

446
447 /// Insert subquery result into cache
448 pub fn insert(
449 &self,
450 key: SubqueryCacheKey,
451 result: SubqueryResult,
452 execution_time: Duration,
453 complexity_score: f64,
454 ) {
455 let entry = SubqueryCacheEntry {
456 result: result.clone(),
457 execution_time,
458 outer_variable_count: key.outer_variables.len(),
459 metadata: CacheEntryMetadata::new(0, CacheLevel::L1)
460 .with_ttl(self.default_ttl)
461 .with_tags(key.tags()),
462 hit_count: 0,
463 last_hit: Instant::now(),
464 complexity_score,
465 };
466
467 let size = entry.size_bytes();
468
469 // Evict if necessary
470 self.evict_if_needed(size);
471
472 // Update indices
473 self.update_indices(&key, true);
474
475 // Insert entry
476 {
477 let mut entries = self.entries.write().unwrap();
478 entries.insert(key, entry);
479 }
480
481 {
482 let mut current_memory = self.current_memory.write().unwrap();
483 *current_memory += size;
484 }
485
486 // Update stats
487 {
488 let mut stats = self.stats.write().unwrap();
489 stats.current_entries = self.entries.read().unwrap().len();
490 stats.memory_bytes = *self.current_memory.read().unwrap();
491 }
492 }
493
494 /// Find potential cache hits for EXISTS subqueries
495 pub fn find_boolean_matches(&self, subquery_hash: u64) -> Vec<(SubqueryCacheKey, bool)> {

Callers

nothing calls this directly

Calls 9

cloneMethod · 0.80
with_tagsMethod · 0.80
with_ttlMethod · 0.80
update_indicesMethod · 0.80
unwrapMethod · 0.80
lenMethod · 0.45
tagsMethod · 0.45
size_bytesMethod · 0.45
evict_if_neededMethod · 0.45

Tested by

no test coverage detected