Skip to content

Commit eadccd1

Browse files
dcadenasyukibtc
authored andcommitted
lmdb: consolidate deletion logic and improve transactional consistency
- Added `DeletionInfo` to resolve borrow checker limitations when using LMDB transactions. - Remove separate read transaction usage, ensuring that events in the same batch maintain consistency Pull-Request:#1010 Signed-off-by: Yuki Kishimoto <[email protected]>
1 parent 8eac487 commit eadccd1

File tree

4 files changed

+205
-96
lines changed

4 files changed

+205
-96
lines changed

database/nostr-lmdb/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,12 @@
2323
2424
-->
2525

26+
## Unreleased
27+
28+
### Changed
29+
30+
- Consolidate deletion logic and improve transactional consistency (https://github.com/rust-nostr/nostr/pull/1010)
31+
2632
## v0.43.0 - 2025/07/28
2733

2834
### Changed

database/nostr-lmdb/src/store/ingester.rs

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -94,23 +94,14 @@ impl Ingester {
9494
&self,
9595
event: Event,
9696
fbb: &mut FlatBufferBuilder,
97-
) -> nostr::Result<SaveEventStatus, Error> {
98-
let read_txn = self.db.read_txn()?;
97+
) -> Result<SaveEventStatus, Error> {
9998
let mut write_txn = self.db.write_txn()?;
10099

101-
let status: SaveEventStatus =
102-
self.db
103-
.save_event_with_txn(&read_txn, &mut write_txn, fbb, &event)?;
100+
let status: SaveEventStatus = self.db.save_event_with_txn(&mut write_txn, fbb, &event)?;
104101

105102
match &status {
106-
SaveEventStatus::Success => {
107-
write_txn.commit()?;
108-
read_txn.commit()?;
109-
}
110-
SaveEventStatus::Rejected(_) => {
111-
write_txn.abort();
112-
read_txn.commit()?;
113-
}
103+
SaveEventStatus::Success => write_txn.commit()?,
104+
SaveEventStatus::Rejected(_) => write_txn.abort(),
114105
}
115106

116107
Ok(status)

0 commit comments

Comments
 (0)