mod graph;
mod linearize;
mod package;
mod partitioner;
mod pool_index;
mod tx_node;
#[cfg(test)]
mod graph_bench;
pub use package::Package;
use crate::stores::Entry;
pub(crate) const BLOCK_VSIZE: u64 = 1_000_000;
const NUM_BLOCKS: usize = 8;
pub fn build_projected_blocks(entries: &[Option<Entry>]) -> Vec<Vec<Package>> {
let graph = graph::build_graph(entries);
if graph.is_empty() {
return Vec::new();
}
let packages = linearize::linearize_clusters(&graph);
partitioner::partition_into_blocks(packages, NUM_BLOCKS)
}