-1
server/Cargo.lock
-1
server/Cargo.lock
-1
server/Cargo.toml
-1
server/Cargo.toml
-19
server/src/db/mod.rs
-19
server/src/db/mod.rs
···
380
380
})
381
381
}
382
382
383
-
// train zstd dict with 100 blocks from every lexicon
384
-
pub fn train_zstd_dict(&self) -> AppResult<Vec<u8>> {
385
-
let samples = self
386
-
.get_nsids()
387
-
.filter_map(|nsid| self.get_handle(&nsid))
388
-
.map(|handle| {
389
-
handle
390
-
.iter()
391
-
.rev()
392
-
.map(|res| {
393
-
res.map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e))
394
-
.map(|(_, value)| Cursor::new(value))
395
-
})
396
-
.take(1000)
397
-
})
398
-
.flatten();
399
-
zstd::dict::from_sample_iterator(samples, 1024 * 128).map_err(AppError::from)
400
-
}
401
-
402
383
pub fn get_hits(
403
384
&self,
404
385
nsid: &str,
-10
server/src/main.rs
-10
server/src/main.rs
···
53
53
debug();
54
54
return;
55
55
}
56
-
Some("traindict") => {
57
-
train_zstd_dict();
58
-
return;
59
-
}
60
56
Some(x) => {
61
57
tracing::error!("unknown command: {}", x);
62
58
return;
···
209
205
ingest_events.join().expect("failed to join ingest events");
210
206
db_task.await.expect("cant join db task");
211
207
db.sync(true).expect("cant sync db");
212
-
}
213
-
214
-
fn train_zstd_dict() {
215
-
let db = Db::new(DbConfig::default(), CancellationToken::new()).expect("couldnt create db");
216
-
let dict_data = db.train_zstd_dict().expect("cant train zstd dict");
217
-
std::fs::write("zstd_dict", dict_data).expect("cant save zstd dict")
218
208
}
219
209
220
210
fn debug() {