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
6012b57e95
improvement: log connection details at INFO level
2023-02-02 11:55:41 -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
f7550b4c61
improvement: more precise log message
2023-02-01 18:09:30 -06:00
Greg Heartsfield
1623bacd0d
improvement(NIP-33): advertise support for parameterized replaceable events
2023-02-01 18:09:27 -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
w3irdrobot
c1152ce430
improvement(NIP-19): identify and parse NIP-19 addresses
2023-01-29 18:55:30 -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
0859e535ed
improvement: remove origin label from connections metric
...
The origin header is controlled by clients, and there is no expiration
of any values that appear. We would need to whitelist a set of known
origins in order to track this without giving someone the ability to
exhaust memory.
2023-01-28 15:46:26 -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
Greg Heartsfield
5c07b2eca5
refactor: event is_ephemeral method
2023-01-24 08:04:42 -06:00
Greg Heartsfield
25752abe6b
fix: run postgres migration on startup
2023-01-24 08:04:37 -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
Greg Heartsfield
6800c2e39d
improvement: add NostrRepo trait, with sqlite implementation
...
This is inspired by the work of
v0l (https://github.com/v0l/nostr-rs-relay/ ).
A new trait abstracts the storage layer with an async API. Rusqlite
is still used with worker threads, but this allows for Postgresql or
other backends to be used.
There may be bugs, this has not been rigorously tested.
2023-01-22 09:49:49 -06:00
Greg Heartsfield
585fdd3884
fix: use data_dir from config.toml if present
...
fixes: https://todo.sr.ht/~gheartsfield/nostr-rs-relay/64
2023-01-16 17:21:12 -06:00
Greg Heartsfield
13cc24b5cd
improvement: log blacklisted events
2023-01-15 15:42:27 -06:00
Greg Heartsfield
f543957b34
improvement: clear out hidden events during schema upgrade
2023-01-15 15:27:41 -06:00
Greg Heartsfield
7021f102e8
improvement: delete replaceable events
2023-01-15 15:13:10 -06:00
Greg Heartsfield
fddbf321bc
perf: add indexes and force their use (authors)
2023-01-15 10:52:49 -06:00
Greg Heartsfield
3e7f2e21df
perf: force authors index to be used if possible
2023-01-15 10:23:46 -06:00
Greg Heartsfield
9d9c6c78d1
improvement: refuse to insert events that would automatically be hidden
2023-01-15 10:01:01 -06:00