Optimize rocksdb
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
use crate::constants::{APP_DB_DATA_DIR, DB_COLUMNS};
|
||||
use rocksdb::{ColumnFamilyDescriptor, IteratorMode, OptimisticTransactionDB, Options};
|
||||
use rocksdb::{ColumnFamilyDescriptor, IteratorMode, OptimisticTransactionDB, Options, ReadOptions};
|
||||
use serde::{Serialize};
|
||||
use serde::de::DeserializeOwned;
|
||||
use crate::models::RocksColumn;
|
||||
@@ -63,8 +63,10 @@ impl RocksDB {
|
||||
where TColumn: RocksColumn + DeserializeOwned
|
||||
{
|
||||
let cf = self.db.cf_handle(TColumn::get_column_name().as_str()).unwrap();
|
||||
let values = self.db.iterator_cf(&cf, IteratorMode::Start)
|
||||
.filter_map(|res| res.ok())
|
||||
let mut options = ReadOptions::default();
|
||||
options.set_async_io(true);
|
||||
let values = self.db.iterator_cf_opt(&cf, options, IteratorMode::Start)
|
||||
.filter_map(Result::ok)
|
||||
.map(|(k, v)|
|
||||
(
|
||||
serde_json::from_slice::<TColumn::Id>(&k).unwrap(),
|
||||
|
||||
Reference in New Issue
Block a user