Greg Heartsfield
66a55b55b9
perf: new index, manually selected when appropriate
2023-01-06 12:17:30 -06:00
Greg Heartsfield
e9d2a2cbd0
perf(NIP-26): temporarily disable NIP-26 delegated events
2023-01-04 16:51:22 -06:00
Greg Heartsfield
39a945b493
perf: separate author/delegated_by queries, minor improvement
2023-01-04 16:51:17 -06:00
Greg Heartsfield
20c4bb42eb
fix: correct log message
2023-01-03 21:24:46 -06:00
Greg Heartsfield
3dd0f2c9c6
fix: do not run auto_vacuum on read-only connections
2023-01-03 17:32:55 -06:00
Greg Heartsfield
cb283ac316
fix: ensure that replaceable events are handled correctly regardless of order receieved
2023-01-02 17:18:11 -06:00
Greg Heartsfield
14fe9f9ee1
improvement: remove pauses for backups, likely not needed w/ WAL compaction
2023-01-02 15:38:30 -06:00
0xtr
7774db8c47
feat: add event kind blacklist
...
Adds a list to the config where you can specify which event kinds to blacklist.
The blacklist check will run right after verifying that the pubkey is allowed
to post events to the relay.
2022-12-27 17:10:34 -06:00
Greg Heartsfield
19ec89593d
improvement: drop queries that are running during a checkpoint
2022-12-27 15:24:10 -06:00
Greg Heartsfield
27902bc5f4
improvement: move reader mutex closer to DB connection acquisition
2022-12-27 10:28:56 -06:00
Greg Heartsfield
d2adddaee4
improvement: extend allowed wal_checkpoint timeout to 10 sec
2022-12-27 10:13:14 -06:00
Greg Heartsfield
b23b3ce8ec
improvement: block new readers when WAL is large
2022-12-27 09:48:07 -06:00
Greg Heartsfield
65fd0ed08b
feat: increase wal_checkpoint time when WAL is large
2022-12-26 10:03:51 -06:00
Greg Heartsfield
2e22334631
refactor: formatting
2022-12-25 11:06:30 -06:00
Greg Heartsfield
38dc7789dc
improvement: cleaner slow query logs
2022-12-25 10:47:32 -06:00
Greg Heartsfield
ce0e00ffb3
feat: log reader DB pool stats every minute
2022-12-25 10:47:32 -06:00
Greg Heartsfield
3e4ae4aeec
feat: cache prepared statements and trace expanded SQL queries
2022-12-25 10:47:32 -06:00
Greg Heartsfield
8137b6211c
refactor: clippy suggestions
2022-12-24 10:29:47 -06:00
Greg Heartsfield
e5074f2e46
feat(NIP-28): replaceable kind 41 channel metadata events
2022-12-24 10:14:43 -06:00
Greg Heartsfield
25480e837f
fix: do not block writers for more than 1 second during checkpoints
2022-12-22 16:10:49 -06:00
Greg Heartsfield
b80b54cd9d
improvement: reduce logging, especially for database pool size
2022-12-22 15:47:33 -06:00
Greg Heartsfield
8ea732cbe5
feat: perform regular database maintenance (60sec), without blocking main writer thread
2022-12-22 15:16:21 -06:00
Greg Heartsfield
0f68c4e5c2
refactor: formatting
2022-12-22 15:15:45 -06:00
Greg Heartsfield
d31bbda087
improvement: reduce lifetime of database connections
2022-12-22 13:01:12 -06:00
Greg Heartsfield
5917bc53b2
improvement: run maintenance every 60 seconds instead of by event count
2022-12-22 11:40:17 -06:00
Greg Heartsfield
53c2a8051c
improvement: reduce logging
2022-12-22 10:29:27 -06:00
Greg Heartsfield
168cf513ac
feat: perform full checkpoints and truncate WAL every 2k events
2022-12-22 10:11:05 -06:00
Greg Heartsfield
ea204761c9
fix: do not show slow queries more than once per sub
2022-12-20 15:41:50 -06:00
Greg Heartsfield
c270ae1434
improvement: reduce event count for db writer pauses
2022-12-20 15:25:24 -06:00
Greg Heartsfield
64bd983cb6
perf: every 5000 persisted events, pause for 500ms for backups
...
I have observed backups running for a very long time under heavy load,
this introduces some artificial delay to give the online backup enough
time to make progress.
2022-12-20 15:05:04 -06:00
Greg Heartsfield
1c153bc784
perf: shed DB query load when queue gets large
2022-12-20 13:23:21 -06:00
Greg Heartsfield
dc11d9a619
improvement: explicitly rollback transaction on duplicate event
2022-12-20 13:23:04 -06:00
Greg Heartsfield
cd1557787b
improvement: log write pool
2022-12-20 13:21:57 -06:00
Greg Heartsfield
86bb7aeb9a
improvement: function to check pool capacity
2022-12-20 10:07:01 -06:00
Greg Heartsfield
2cfd384339
perf: drop db handles that are not quickly read
2022-12-19 00:18:39 -06:00
Greg Heartsfield
6f7c080180
improvement: reduce number of writer blocking threads from 4->2
2022-12-18 22:32:31 -06:00
Greg Heartsfield
d833a3e40d
perf: reduce logging
2022-12-18 22:11:46 -06:00
Greg Heartsfield
cf144d503d
perf: reduce logging for slow queries
2022-12-18 20:47:11 -06:00
Greg Heartsfield
677b7d39e9
improvement: log slow requests that return zero results
2022-12-18 13:42:31 -06:00
Greg Heartsfield
43222d44e5
feat: perform optimization after seeing many events
2022-12-17 23:18:54 -06:00
Greg Heartsfield
b6e33f044f
improvement: limit db connection max lifetime
2022-12-17 10:47:35 -06:00
Greg Heartsfield
3c880b2f49
perf: pull distinct to outermost SQL
2022-12-17 07:49:28 -06:00
Greg Heartsfield
7ca9c864f2
improvement: DB pool logging shows used connections directly
2022-12-16 17:01:49 -06:00
Greg Heartsfield
838aafd079
improvement: consistent log messages for client/sub ids
2022-12-16 15:22:27 -06:00
Greg Heartsfield
e554b10ac2
improvement: tweak sub/sql logging for slow queries
2022-12-16 14:55:45 -06:00
Greg Heartsfield
e2de162931
feat: only show SQL in logs for slow queries unless tracing
2022-12-16 08:17:39 -06:00
Greg Heartsfield
bbe359364a
refactor: clippy warnings
2022-12-15 08:43:36 -06:00
Greg Heartsfield
5fa24bc9f1
fix: send EOSE when ids list is empty in subscriptions
...
Fixes: https://todo.sr.ht/~gheartsfield/nostr-rs-relay/50
2022-11-19 10:35:00 -06:00
Greg Heartsfield
4de7490d97
fix: send EOSE when authors list is empty in subscriptions
...
Fixes: https://todo.sr.ht/~gheartsfield/nostr-rs-relay/49
2022-11-19 10:00:38 -06:00
William Casarin
5a91419d34
feat(NIP-20): send command results to clients
...
When submitting events to relays, clients currently have no way to know
if an event was successfully committed to the database. This NIP
introduces the concept of command results which are like NOTICE's except
provide more information about if an event was accepted or rejected.
A command result is a JSON object with the following structure that is
returned when an event is successfully saved to the database or
rejected:
["OK", <event_id>, <true|false>, <message>]
nip20: https://github.com/nostr-protocol/nips/pull/62
2022-11-12 09:12:35 -06:00