Greg Heartsfield
bf06bea808
feat(NIP-40): postgres support for event expiration
2023-02-17 13:25:56 -06:00
Greg Heartsfield
e5ca8c2a86
improvement: run expired event cleanup every 10 minutes
2023-02-17 11:22:00 -06:00
Greg Heartsfield
8ea63f0b27
feat(NIP-40): sqlite support for event expiration
2023-02-17 11:15:06 -06:00
0xtr
7fd9b55e70
fix: typo in sqlite_migration.rs
2023-02-15 18:52:49 -06:00
Greg Heartsfield
136e41d234
fix: retry event writes if DB is busy
2023-02-15 18:38:34 -06:00
Kieran
1daa25600d
fix: postgres tag inserts
2023-02-14 06:33:01 -06:00
Greg Heartsfield
2fc9168a38
fix: SQL error with parameterized replaceable events
2023-02-13 17:10:42 -06:00
Greg Heartsfield
15e2f097aa
improvement: advise operator this upgrade may take a minute
2023-02-13 07:37:13 -06:00
Greg Heartsfield
185f9e7abb
feat: improved query performance when looking for deletion events (improves event insert time)
2023-02-12 15:43:22 -06:00
Greg Heartsfield
f44dae6ac9
fix: use correct start time for logging SQL generation
2023-02-12 15:00:50 -06:00
Greg Heartsfield
abc356c17d
perf(sqlite): index tags with their kind/created_at fields
...
This updates the DB schema to remove the distinction between hex and
non-hex tag values, for simplicity. The space savings did not seem to
be worth the extra complexity.
The SQLite tags table is denormalized to duplicate kind/created_at to
improve the ability of tag indexes to filter data.
2023-02-12 14:33:40 -06:00
Naoki Ikeguchi
bd07a11f50
refactor: Fix clippy warnings
2023-02-06 07:29:45 -06:00
thesimplekid
1ca5d652de
format: postgres_migrations
2023-02-06 06:44:57 -06:00
thesimplekid
d7cceab8fc
fix: tag table does not have a unique constraint
...
`cargo fmt` on the document.
2023-02-06 06:44:57 -06:00
Greg Heartsfield
cdd4e5949f
fix: correctly log SQL generation time
2023-02-03 10:39:41 -06:00
Greg Heartsfield
5999009779
improvement: increase connection cache size
2023-02-02 18:34:30 -06:00
Greg Heartsfield
e36c791c53
improvement: prevent spilling temp indexes to disk
2023-02-02 18:15:14 -06:00
Greg Heartsfield
8004ea9b44
fix(NIP-33): only delete older events with matching 'd' tags
2023-02-02 16:09:17 -06:00
Greg Heartsfield
866c239cc9
improvement: simplify SQL queries for tags
2023-02-02 12:24:10 -06:00
Greg Heartsfield
ba4fcd072a
improvement: allow queries to be cancelled earlier (before SQL execution)
2023-02-01 18:09:30 -06:00
Greg Heartsfield
2b79099cfe
improvement: drop slow readers more quickly
2023-02-01 18:09:30 -06:00
Greg Heartsfield
eb1d2d717d
improvement: log sleeps due to full query_tx
2023-02-01 18:09:30 -06:00
Greg Heartsfield
e5e03d4378
improvement: log slow filter query time
2023-02-01 18:09:30 -06:00
Greg Heartsfield
c377b136aa
improvement: prometheus metric for db connections (sqlite)
2023-02-01 18:09:30 -06:00
Greg Heartsfield
bca5614a82
perf: hold database handle through all filters when querying
2023-02-01 18:09:30 -06:00
Greg Heartsfield
ab749e9cf0
improvement: log mixed string/blob tag queries
2023-02-01 07:49:46 -06:00
Greg Heartsfield
1820e9c689
perf: separate out blob and string tag queries
2023-02-01 07:13:29 -06:00
Greg Heartsfield
2d3a35fe30
perf: force event hash index if filter uses ids
2023-02-01 06:46:35 -06:00
Greg Heartsfield
9c77b06f79
improvement: dedupe filters in a REQ
2023-01-31 18:09:43 -06:00
Greg Heartsfield
c8e8b71b91
fix: use accurate timer for slow queries, and use 250ms as cutoff
2023-01-31 18:09:43 -06:00
Greg Heartsfield
6d57adef73
improvement: log filter in a reusable format for slow queries
2023-01-31 18:09:43 -06:00
Greg Heartsfield
111eb4a10c
perf: prevent sqlite readers from capturing worker thread pool and impacting writer latency
2023-01-31 18:09:23 -06:00
Greg Heartsfield
214f152c5d
improvement: provide reason for abort in prometheus metric
2023-01-30 18:40:47 -06:00
Greg Heartsfield
3fcaf97a15
improvement: move sqlite connection acquisition into blocking thread
2023-01-30 18:02:40 -06:00
Greg Heartsfield
cec501b37f
improvement: start timing for each new filter execution
2023-01-30 18:02:40 -06:00
Greg Heartsfield
2557c7f69c
improvement: run filters as separate queries, to reduce complexity on SQLite query planner
2023-01-30 18:02:40 -06:00
Greg Heartsfield
3979a94726
improvement: do not force query to use index when limit is specified
2023-01-30 18:02:40 -06:00
Greg Heartsfield
71bdbfb425
improvement: query and exit early for events that get immediately replaced
2023-01-30 18:02:40 -06:00
Greg Heartsfield
b6798f96b6
improvement: add prometheus metrics, renaming others
2023-01-30 18:02:28 -06:00
thesimplekid
6f1a4e7d76
fix: postgres create index before column exists
2023-01-29 18:32:42 -06:00
Greg Heartsfield
1804bee912
feat(NIP-33): parameterized replaceable events for postgres
2023-01-29 18:30:08 -06:00
Greg Heartsfield
34db91940c
improvement: prometheus metrics for aborted queries
2023-01-28 16:05:58 -06:00
Greg Heartsfield
bdd4e43df4
improvement: show errors when writing new sqlite db
...
Build the sqlite writer pool first, which will provide a better error
message in the event the database is not writeable or readable.
2023-01-28 14:02:20 -06:00
Greg Heartsfield
57e1b53c13
feat: postgres migration schema v2
...
This primarily deals with correctly handling tag values.
2023-01-27 20:13:47 -06:00
Greg Heartsfield
53f83aa923
improvement: delete, do not hide, replaceable events
2023-01-24 08:04:42 -06:00
Greg Heartsfield
c8f7420334
feat(NIP-33): parameterized replaceable events
2023-01-24 08:04:42 -06:00
Greg Heartsfield
e2869e8fad
fix(NIP-16): do not replace events unless they are newer
2023-01-24 08:04:42 -06:00
Kieran
16f6e974c8
feat: add support for PostgreSQL as a backend repository
2023-01-22 16:26:54 -06:00
Kieran
4121c872bc
feat: prometheus metrics
...
Prometheus metrics exposed at /metrics
2023-01-22 11:08:12 -06:00
Greg Heartsfield
6489e685ab
refactor: reformat and remove tabs
2023-01-22 10:06:44 -06:00