Status: Ready
Hierarchical subpopulation sketching over semicolon-separated keys.
HydraMultiHeadHydra
fn default() -> Self
fn with_dimensions(r: usize, c: usize, sketch_type: HydraCounter) -> Self
// MultiHeadHydra
fn with_dimensions(r: usize, c: usize, dimensions: Vec<(String, HydraCounter)>) -> Selffn update(&mut self, key: &str, value: &DataInput, count: Option<i32>)
// MultiHeadHydra
fn update(&mut self, key: &str, values: &[(&DataInput, &[&str])], count: Option<i32>)fn query_key(&self, key: Vec<&str>, query: &HydraQuery) -> f64
fn query_frequency(&self, key: Vec<&str>, value: &DataInput) -> f64
fn query_quantile(&self, key: Vec<&str>, threshold: f64) -> f64
// MultiHeadHydra
fn query_key(&self, key: Vec<&str>, dimension: &str, query: &HydraQuery) -> f64
fn dimension_index(&self, dimension: &str) -> Option<usize>fn merge(&mut self, other: &Hydra) -> Result<(), String>
fn merge(&mut self, other: &MultiHeadHydra) -> Result<(), String>fn serialize_to_bytes(&self) -> Result<Vec<u8>, RmpEncodeError>
fn deserialize_from_bytes(bytes: &[u8]) -> Result<Self, RmpDecodeError>use asap_sketchlib::{Hydra, DataInput};
let mut hydra = Hydra::default();
hydra.update("region=us;service=api", &DataInput::Str("err"), None);
let est = hydra.query_frequency(vec!["region=us"], &DataInput::Str("err"));
assert!(est >= 1.0);- Canonical enum/query/input definitions are in Common Input Types.
- Query compatibility depends on
HydraCountervariant.
Primary subpopulation framework with broad test coverage.