mirror of
https://github.com/sigp/lighthouse.git
synced 2026-07-03 04:44:28 +00:00
Optimization to Redb slasher (#6481)
* first() & last() optimizations * Fmt
This commit is contained in:
4
Cargo.lock
generated
4
Cargo.lock
generated
@@ -6798,9 +6798,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "redb"
|
name = "redb"
|
||||||
version = "2.1.2"
|
version = "2.1.4"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "58323dc32ea52a8ae105ff94bc0460c5d906307533ba3401aa63db3cbe491fe5"
|
checksum = "074373f3e7e5d27d8741d19512232adb47be8622d3daef3a45bcae72050c3d2a"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"libc",
|
"libc",
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -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 = { 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 }
|
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]
|
[dev-dependencies]
|
||||||
maplit = { workspace = true }
|
maplit = { workspace = true }
|
||||||
|
|||||||
@@ -164,13 +164,9 @@ impl<'env> Cursor<'env> {
|
|||||||
let table_definition: TableDefinition<'_, &[u8], &[u8]> =
|
let table_definition: TableDefinition<'_, &[u8], &[u8]> =
|
||||||
TableDefinition::new(&self.db.table_name);
|
TableDefinition::new(&self.db.table_name);
|
||||||
let table = self.txn.open_table(table_definition)?;
|
let table = self.txn.open_table(table_definition)?;
|
||||||
let first = table
|
let first = table.first()?.map(|(key, _)| key.value().to_vec());
|
||||||
.iter()?
|
|
||||||
.next()
|
|
||||||
.map(|x| x.map(|(key, _)| key.value().to_vec()));
|
|
||||||
|
|
||||||
if let Some(owned_key) = first {
|
if let Some(owned_key) = first {
|
||||||
let owned_key = owned_key?;
|
|
||||||
self.current_key = Some(Cow::from(owned_key));
|
self.current_key = Some(Cow::from(owned_key));
|
||||||
Ok(self.current_key.clone())
|
Ok(self.current_key.clone())
|
||||||
} else {
|
} else {
|
||||||
@@ -182,13 +178,9 @@ impl<'env> Cursor<'env> {
|
|||||||
let table_definition: TableDefinition<'_, &[u8], &[u8]> =
|
let table_definition: TableDefinition<'_, &[u8], &[u8]> =
|
||||||
TableDefinition::new(&self.db.table_name);
|
TableDefinition::new(&self.db.table_name);
|
||||||
let table = self.txn.open_table(table_definition)?;
|
let table = self.txn.open_table(table_definition)?;
|
||||||
let last = table
|
let last = table.last()?.map(|(key, _)| key.value().to_vec());
|
||||||
.iter()?
|
|
||||||
.next_back()
|
|
||||||
.map(|x| x.map(|(key, _)| key.value().to_vec()));
|
|
||||||
|
|
||||||
if let Some(owned_key) = last {
|
if let Some(owned_key) = last {
|
||||||
let owned_key = owned_key?;
|
|
||||||
self.current_key = Some(Cow::from(owned_key));
|
self.current_key = Some(Cow::from(owned_key));
|
||||||
return Ok(self.current_key.clone());
|
return Ok(self.current_key.clone());
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user