projects
/
rapid-gossip-sync-server
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
3b570d2
)
Optimize indices for expired value fix lookup.
author
Arik Sosman
<git@arik.io>
Thu, 19 Oct 2023 18:52:32 +0000
(11:52 -0700)
committer
Arik Sosman
<git@arik.io>
Thu, 19 Oct 2023 19:24:38 +0000
(12:24 -0700)
src/config.rs
patch
|
blob
|
history
diff --git
a/src/config.rs
b/src/config.rs
index 0655aa7d48f9013f2d6171d06e4c83eeb1d99bfa..026e09e26aa9288636b533eae07290484ea0f965 100644
(file)
--- a/
src/config.rs
+++ b/
src/config.rs
@@
-15,7
+15,7
@@
use lightning::util::ser::Readable;
use lightning_block_sync::http::HttpEndpoint;
use tokio_postgres::Config;
use lightning_block_sync::http::HttpEndpoint;
use tokio_postgres::Config;
-pub(crate) const SCHEMA_VERSION: i32 = 1
2
;
+pub(crate) const SCHEMA_VERSION: i32 = 1
3
;
pub(crate) const SYMLINK_GRANULARITY_INTERVAL: u32 = 3600 * 3; // three hours
pub(crate) const MAX_SNAPSHOT_SCOPE: u32 = 3600 * 24 * 21; // three weeks
// generate symlinks based on a 3-hour-granularity
pub(crate) const SYMLINK_GRANULARITY_INTERVAL: u32 = 3600 * 3; // three hours
pub(crate) const MAX_SNAPSHOT_SCOPE: u32 = 3600 * 24 * 21; // three weeks
// generate symlinks based on a 3-hour-granularity
@@
-143,7
+143,7
@@
pub(crate) fn db_index_creation_query() -> &'static str {
CREATE INDEX IF NOT EXISTS channel_updates_scid_dir_seen_desc_with_id ON channel_updates(short_channel_id ASC, direction ASC, seen DESC) INCLUDE (id);
CREATE UNIQUE INDEX IF NOT EXISTS channel_updates_key ON channel_updates (short_channel_id, direction, timestamp);
CREATE INDEX IF NOT EXISTS channel_updates_seen ON channel_updates(seen);
CREATE INDEX IF NOT EXISTS channel_updates_scid_dir_seen_desc_with_id ON channel_updates(short_channel_id ASC, direction ASC, seen DESC) INCLUDE (id);
CREATE UNIQUE INDEX IF NOT EXISTS channel_updates_key ON channel_updates (short_channel_id, direction, timestamp);
CREATE INDEX IF NOT EXISTS channel_updates_seen ON channel_updates(seen);
- CREATE INDEX IF NOT EXISTS channel_updates_
timestamp_desc ON channel_updates(
timestamp DESC);
+ CREATE INDEX IF NOT EXISTS channel_updates_
scid_asc_timestamp_desc ON channel_updates(short_channel_id ASC,
timestamp DESC);
"
}
"
}
@@
-282,6
+282,12
@@
pub(crate) async fn upgrade_db(schema: i32, client: &mut tokio_postgres::Client)
tx.execute("UPDATE config SET db_schema = 12 WHERE id = 1", &[]).await.unwrap();
tx.commit().await.unwrap();
}
tx.execute("UPDATE config SET db_schema = 12 WHERE id = 1", &[]).await.unwrap();
tx.commit().await.unwrap();
}
+ if schema >= 1 && schema <= 12 {
+ let tx = client.transaction().await.unwrap();
+ tx.execute("DROP INDEX IF EXISTS channel_updates_timestamp_desc", &[]).await.unwrap();
+ tx.execute("UPDATE config SET db_schema = 13 WHERE id = 1", &[]).await.unwrap();
+ tx.commit().await.unwrap();
+ }
if schema <= 1 || schema > SCHEMA_VERSION {
panic!("Unknown schema in db: {}, we support up to {}", schema, SCHEMA_VERSION);
}
if schema <= 1 || schema > SCHEMA_VERSION {
panic!("Unknown schema in db: {}, we support up to {}", schema, SCHEMA_VERSION);
}