tracks lexicons and how many times they appeared on the jetstream

refactor(server): use vec instead of writeablebyteview for value to reduce size of values

ptr.pet a58727c0 a10342d6

verified
Changed files
+6 -11
server
src
+6 -11
server/src/db/handle.rs
···
use crate::{
db::{EventRecord, NsidHit, block},
error::AppResult,
-
utils::{
-
CLOCK, DefaultRateTracker, RateTracker, ReadVariableExt, WritableByteView,
-
varints_unsigned_encoded,
-
},
};
pub type ItemDecoder = block::ItemDecoder<Cursor<Slice>, NsidHit>;
-
pub type ItemEncoder = block::ItemEncoder<WritableByteView, NsidHit>;
pub type Item = block::Item<NsidHit>;
pub struct Block {
pub written: usize,
pub key: ByteView,
-
pub data: ByteView,
}
pub struct LexiconHandle {
···
)
.into());
}
-
let mut writer = ItemEncoder::new(
-
WritableByteView::with_size(ItemEncoder::encoded_len(count)),
-
count,
-
);
let mut start_timestamp = None;
let mut end_timestamp = None;
let mut written = 0_usize;
···
return Ok(Block {
written,
key,
-
data: value.into_inner(),
});
}
Err(std::io::Error::new(std::io::ErrorKind::WriteZero, "no items are in queue").into())
···
use crate::{
db::{EventRecord, NsidHit, block},
error::AppResult,
+
utils::{CLOCK, DefaultRateTracker, RateTracker, ReadVariableExt, varints_unsigned_encoded},
};
pub type ItemDecoder = block::ItemDecoder<Cursor<Slice>, NsidHit>;
+
pub type ItemEncoder = block::ItemEncoder<Vec<u8>, NsidHit>;
pub type Item = block::Item<NsidHit>;
pub struct Block {
pub written: usize,
pub key: ByteView,
+
pub data: Vec<u8>,
}
pub struct LexiconHandle {
···
)
.into());
}
+
let mut writer =
+
ItemEncoder::new(Vec::with_capacity(ItemEncoder::encoded_len(count)), count);
let mut start_timestamp = None;
let mut end_timestamp = None;
let mut written = 0_usize;
···
return Ok(Block {
written,
key,
+
data: value,
});
}
Err(std::io::Error::new(std::io::ErrorKind::WriteZero, "no items are in queue").into())