MCPcopy Create free account
hub / github.com/NodeDB-Lab/nodedb / prepare_flush

Method prepare_flush

nodedb/src/engine/array/flush.rs:27–45  ·  view source on GitHub ↗
(&mut self, id: &ArrayId)

Source from the content-addressed store, hash-verified

25 }
26
27 fn prepare_flush(&mut self, id: &ArrayId) -> ArrayEngineResult<Option<PreparedFlush>> {
28 let store = self.store_mut(id)?;
29 if store.memtable.is_empty() {
30 return Ok(None);
31 }
32 let schema = store.schema().clone();
33 let schema_hash = store.schema_hash();
34 let kek = store.kek().cloned();
35 let drained = std::mem::replace(&mut store.memtable, Memtable::new()).drain_sorted();
36 let built = build_segment_from_memtable(&schema, schema_hash, kek.as_ref(), &drained)?;
37 let segment_id = store.allocate_segment_id();
38 Ok(Some(PreparedFlush {
39 segment_id,
40 bytes: built.bytes,
41 tile_count: built.tile_count,
42 min_tile: built.min_tile,
43 max_tile: built.max_tile,
44 }))
45 }
46
47 fn install_flushed_segment(
48 &mut self,

Callers 1

flushMethod · 0.80

Calls 10

store_mutMethod · 0.80
kekMethod · 0.80
drain_sortedMethod · 0.80
allocate_segment_idMethod · 0.80
is_emptyMethod · 0.45
cloneMethod · 0.45
schemaMethod · 0.45
schema_hashMethod · 0.45
as_refMethod · 0.45

Tested by

no test coverage detected