Skip to content

Commit 4f256c2

Browse files
committed
f Switch to prepare_cached statements everywhere
1 parent 6123531 commit 4f256c2

File tree

2 files changed

+36
-34
lines changed

2 files changed

+36
-34
lines changed

bench/benches/bench.rs

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,12 @@ extern crate lightning_persister;
33

44
extern crate criterion;
55

6-
use criterion::{criterion_group, criterion_main};
6+
use criterion::{criterion_group, criterion_main, Criterion};
77

8-
criterion_group!(benches,
9-
// Note that benches run in the order given here. Thus, they're sorted according to how likely
10-
// developers are to be working on the specific code listed, then by runtime.
11-
lightning::routing::router::benches::generate_routes_with_zero_penalty_scorer,
12-
lightning::routing::router::benches::generate_mpp_routes_with_zero_penalty_scorer,
13-
lightning::routing::router::benches::generate_routes_with_probabilistic_scorer,
14-
lightning::routing::router::benches::generate_mpp_routes_with_probabilistic_scorer,
15-
lightning::routing::router::benches::generate_large_mpp_routes_with_probabilistic_scorer,
16-
lightning::sign::benches::bench_get_secure_random_bytes,
17-
lightning::ln::channelmanager::bench::bench_sends,
18-
lightning_persister::fs_store::bench::bench_sends,
19-
lightning_persister::sqlite_store::bench::bench_sends,
20-
lightning_rapid_gossip_sync::bench::bench_reading_full_graph_from_file,
21-
lightning::routing::gossip::benches::read_network_graph,
22-
lightning::routing::gossip::benches::write_network_graph);
8+
criterion_group!{
9+
name = benches;
10+
config = Criterion::default().sample_size(1000);
11+
targets = //lightning_persister::fs_store::bench::bench_sends,
12+
lightning_persister::sqlite_store::bench::bench_sends,
13+
}
2314
criterion_main!(benches);

lightning-persister/src/sqlite_store.rs

Lines changed: 29 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -98,9 +98,13 @@ impl KVStore for SqliteStore {
9898
let sql =
9999
format!("SELECT value FROM {} WHERE namespace=:namespace AND key=:key;", self.kv_table_name);
100100

101-
let res = locked_conn
101+
let mut stmt = locked_conn.prepare_cached(&sql).map_err(|e| {
102+
let msg = format!("Failed to prepare statement: {}", e);
103+
std::io::Error::new(std::io::ErrorKind::Other, msg)
104+
})?;
105+
106+
let res = stmt
102107
.query_row(
103-
&sql,
104108
named_params! {
105109
":namespace": namespace,
106110
":key": key,
@@ -146,14 +150,17 @@ impl KVStore for SqliteStore {
146150
self.kv_table_name
147151
);
148152

149-
locked_conn
150-
.execute(
151-
&sql,
152-
named_params! {
153-
":namespace": namespace,
154-
":key": key,
155-
":value": buf,
156-
},
153+
let mut stmt = locked_conn.prepare_cached(&sql).map_err(|e| {
154+
let msg = format!("Failed to prepare statement: {}", e);
155+
std::io::Error::new(std::io::ErrorKind::Other, msg)
156+
})?;
157+
158+
stmt.execute(
159+
named_params! {
160+
":namespace": namespace,
161+
":key": key,
162+
":value": buf,
163+
},
157164
)
158165
.map(|_| ())
159166
.map_err(|e| {
@@ -183,13 +190,17 @@ impl KVStore for SqliteStore {
183190
let locked_conn = self.connection.lock().unwrap();
184191

185192
let sql = format!("DELETE FROM {} WHERE namespace=:namespace AND key=:key;", self.kv_table_name);
186-
locked_conn
187-
.execute(
188-
&sql,
189-
named_params! {
190-
":namespace": namespace,
191-
":key": key,
192-
},
193+
194+
let mut stmt = locked_conn.prepare_cached(&sql).map_err(|e| {
195+
let msg = format!("Failed to prepare statement: {}", e);
196+
std::io::Error::new(std::io::ErrorKind::Other, msg)
197+
})?;
198+
199+
stmt.execute(
200+
named_params! {
201+
":namespace": namespace,
202+
":key": key,
203+
},
193204
)
194205
.map_err(|e| {
195206
let msg = format!("Failed to delete key {}/{}: {}", namespace, key, e);
@@ -202,7 +213,7 @@ impl KVStore for SqliteStore {
202213
let locked_conn = self.connection.lock().unwrap();
203214

204215
let sql = format!("SELECT key FROM {} WHERE namespace=:namespace", self.kv_table_name);
205-
let mut stmt = locked_conn.prepare(&sql).map_err(|e| {
216+
let mut stmt = locked_conn.prepare_cached(&sql).map_err(|e| {
206217
let msg = format!("Failed to prepare statement: {}", e);
207218
std::io::Error::new(std::io::ErrorKind::Other, msg)
208219
})?;

0 commit comments

Comments
 (0)