Optimization to Redb slasher (#6481)

* first() & last() optimizations

* Fmt
This commit is contained in:
Eitan Seri-Levi
2024-10-16 22:53:31 -07:00
committed by GitHub
parent 2edf225c3b
commit 7091c789c9
3 changed files with 5 additions and 13 deletions

View File

@@ -37,7 +37,7 @@ mdbx = { package = "libmdbx", git = "https://github.com/sigp/libmdbx-rs", rev =
lmdb-rkv = { git = "https://github.com/sigp/lmdb-rs", rev = "f33845c6469b94265319aac0ed5085597862c27e", optional = true }
lmdb-rkv-sys = { git = "https://github.com/sigp/lmdb-rs", rev = "f33845c6469b94265319aac0ed5085597862c27e", optional = true }
redb = { version = "2.1", optional = true }
redb = { version = "2.1.4", optional = true }
[dev-dependencies]
maplit = { workspace = true }

View File

@@ -164,13 +164,9 @@ impl<'env> Cursor<'env> {
let table_definition: TableDefinition<'_, &[u8], &[u8]> =
TableDefinition::new(&self.db.table_name);
let table = self.txn.open_table(table_definition)?;
let first = table
.iter()?
.next()
.map(|x| x.map(|(key, _)| key.value().to_vec()));
let first = table.first()?.map(|(key, _)| key.value().to_vec());
if let Some(owned_key) = first {
let owned_key = owned_key?;
self.current_key = Some(Cow::from(owned_key));
Ok(self.current_key.clone())
} else {
@@ -182,13 +178,9 @@ impl<'env> Cursor<'env> {
let table_definition: TableDefinition<'_, &[u8], &[u8]> =
TableDefinition::new(&self.db.table_name);
let table = self.txn.open_table(table_definition)?;
let last = table
.iter()?
.next_back()
.map(|x| x.map(|(key, _)| key.value().to_vec()));
let last = table.last()?.map(|(key, _)| key.value().to_vec());
if let Some(owned_key) = last {
let owned_key = owned_key?;
self.current_key = Some(Cow::from(owned_key));
return Ok(self.current_key.clone());
}