Skip to main content

create_policy_from_config

Function create_policy_from_config 

Source
pub fn create_policy_from_config<Src, Dst>(
    config: &TierOffloadConfig,
    registry: Arc<BlockRegistry>,
    pending_tracker: Option<Arc<PendingTracker>>,
) -> Arc<dyn OffloadPolicy<Src>> 
where Src: BlockMetadata + 'static, Dst: BlockMetadata + 'static,
Expand description

Create a composite policy from tier configuration.

Policies are applied in order with AND logic - blocks must pass all policies. Returns PassAllPolicy if no policies are configured.

When a pending_tracker is provided, it is automatically wired into Presence and PresenceLfu policies to enable duplicate prevention for blocks currently in-flight through the pipeline.

§Example

use kvbm_config::offload::TierOffloadConfig;

let tracker = Arc::new(PendingTracker::new());
let config = TierOffloadConfig {
    policies: vec![PolicyType::Presence, PolicyType::PresenceLfu],
    presence_lfu: PresenceLfuFilterConfig { min_lfu_count: 8 },
    ..Default::default()
};

// Pending tracker is automatically wired into presence-based policies
let policy = create_policy_from_config::<G2, G3>(&config, registry.clone(), Some(tracker));