fix storage logic

main
Ziyang Hu 2 years ago
parent 016ad36094
commit 487e605ddb

@ -50,7 +50,7 @@ impl AlgoImpl for PageRank {
theta
);
let epsilon = match opts.get("epsilon") {
None => 0.1f32,
None => 0.001f32,
Some(Expr::Const(DataValue::Number(n))) => n.get_float() as f32,
Some(v) => bail!(
"option 'epsilon' for 'pagerank' requires a float, got {:?}",
@ -107,12 +107,15 @@ fn pagerank(
}
}
let mut pi_vec = OMatrix::<f32, Dynamic, U1>::repeat(edges.len(), 1.);
let scale_target = (n as f32).sqrt();
let mut last_pi_vec = pi_vec.clone();
for _ in 0..iterations {
mem::swap(&mut pi_vec, &mut last_pi_vec);
pi_vec = g_mat.tr_mul(&last_pi_vec);
pi_vec.normalize_mut();
pi_vec *= n as f32;
let f = pi_vec.norm() / scale_target;
pi_vec.unscale_mut(f);
if pi_vec.abs_diff_eq(&last_pi_vec, epsilon) {
break;
}

@ -84,8 +84,8 @@ impl From<DataValue> for JsonValue {
JsonValue::Array(l.iter().map(|v| JsonValue::from(v.clone())).collect())
}
DataValue::DescVal(v) => JsonValue::from(*v.0),
DataValue::Bottom => JsonValue::Null,
DataValue::Guard => JsonValue::Null,
DataValue::Bottom => panic!("found bottom"),
DataValue::Guard => panic!("found guard"),
DataValue::Set(l) => {
JsonValue::Array(l.iter().map(|v| JsonValue::from(v.clone())).collect())
}

@ -5,7 +5,6 @@ use either::{Left, Right};
use itertools::Itertools;
use serde_json::{json, Map};
use smallvec::{smallvec, SmallVec, ToSmallVec};
use tempfile::NamedTempFile;
use crate::data::attr::{Attribute, AttributeCardinality, AttributeTyping};

@ -14,7 +14,7 @@ use crate::data::encode::{
};
use crate::data::id::{AttrId, EntityId, Validity};
use crate::data::triple::StoreOp;
use crate::data::value::{DataValue, INLINE_VAL_SIZE_LIMIT};
use crate::data::value::DataValue;
use crate::parse::triple::{Quintuple, TxAction};
use crate::runtime::transact::SessionTx;
use crate::utils::swap_option_result;
@ -158,12 +158,6 @@ impl SessionTx {
} else {
self.tx.put(&aev_encoded, &val_encoded)?;
}
// elide value in data for aev if it is big
let val_encoded = if val_encoded.len() > INLINE_VAL_SIZE_LIMIT {
DataValue::Guard.encode_with_op_and_tx(op, tx_id)
} else {
val_encoded
};
let eav_encoded = encode_eav_key(eid, attr.id, v_in_key, vld_in_key);
if real_delete {

Loading…
Cancel
Save