Benjamin Lee
8bffcfe82b
remove sync response cache
...
This cache can serve invalid responses, and has an extremely low hit
rate.
It serves invalid responses because because it's only keyed off
the `since` parameter, but many of the other request parameters also
affect the response or it's side effects. This will become worse once we
implement filtering, because there will be a wider space of parameters
with different responses. This problem is fixable, but not worth it
because of the low hit rate.
The low hit rate is because normal clients will always issue the next
sync request with `since` set to the `prev_batch` value of the previous
response. The only time we expect to see multiple requests with the same
`since` is when the response is empty, but we don't cache empty
responses.
This was confirmed experimentally by logging cache hits and misses over
15 minutes with a wide variety of clients. This test was run on
matrix.computer.surgery, which has only a few active users, but a
large volume of sync traffic from many rooms. Over the test period, we
had 3 hits and 5309 misses. All hits occurred in the first minute, so I
suspect that they had something to do with client recovery from an
offline state. The clients that were connected during the test are:
- element web
- schildichat web
- iamb
- gomuks
- nheko
- fractal
- fluffychat web
- fluffychat android
- cinny web
- element android
- element X android
Fixes : #336
2024-05-17 18:13:11 -04:00
strawberry
321e197d8c
correct arithmetic adjustments
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-05-06 03:45:10 -04:00
strawberry
b5c0c30a5e
resolve half of the integer_arithmetic lints, couple misc changes
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-05-06 03:45:10 -04:00
Charles Hall
a01a7e1219
improve "Leave event has no state" log
...
To include the user, room, and event ID.
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-05-03 01:52:29 -04:00
strawberry
66bb88a03a
make everything pub(crate) instead of pub
...
conduwuit is not a library
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-04-26 02:03:40 -04:00
Jason Volk
33cc3d56c1
lazy-construct presence; avoids useless db queries in sender and syncer.
...
Signed-off-by: Jason Volk <jason@zemos.net>
2024-04-17 14:51:08 -04:00
Jason Volk
2cc72de80e
fix lossy origin regression 12a8c9badd
...
Signed-off-by: Jason Volk <jason@zemos.net>
2024-04-09 15:26:45 -04:00
Matthias Ahouansou
c946352e7f
fix(sync): send phoney leave event where room state is unknown on invite rejection
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-04-09 15:26:45 -04:00
Jason Volk
ca1c77d76b
refactor presence to not involve rooms.
...
Signed-off-by: Jason Volk <jason@zemos.net>
2024-04-05 22:15:16 -04:00
K900
8134dd9151
Reduce number of separate sources of truth for presence disabled-ness
...
Instead of checking if we should update every time we want to update,
call the updater every time and decide internally.
2024-04-03 12:52:46 -04:00
Matthias Ahouansou
c31fb7134a
fix: do not expect that all http requests are valid reqwest requests
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-04-02 00:32:41 -04:00
Jason Volk
0ba8d1318d
move presence up two levels out of rooms.edus and rooms.
...
Signed-off-by: Jason Volk <jason@zemos.net>
2024-04-02 00:32:41 -04:00
Jason Volk
9790477b0e
move typing feature up one level out of rooms.edus.
...
Signed-off-by: Jason Volk <jason@zemos.net>
2024-04-02 00:32:41 -04:00
Jason Volk
89a919ce75
move read_receipt feature up one level out of rooms.edus.
...
Signed-off-by: Jason Volk <jason@zemos.net>
2024-04-02 00:32:41 -04:00
strawberry
48d1a3af3c
resolve the last few relevant pedantic clippy lints
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-03-30 22:06:18 -04:00
strawberry
868976a149
use chain_width 60
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-03-26 22:24:24 -04:00
strawberry
c2e89b939c
add element web search count hack (?)
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-03-26 22:24:24 -04:00
strawberry
f4146de17d
add feature for smElement client hacks
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-03-26 22:24:24 -04:00
strawberry
7bd56765ef
fix some more pedantic clippy lints
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-03-26 22:24:24 -04:00
strawberry
3bc2af7d26
resolve and add even more pedantic clippy lints
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-03-23 01:49:27 -04:00
strawberry
9d0b647911
resolve couple pedantic clippy lints, remove unnecessary qualifications
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-03-23 01:49:27 -04:00
Jason Volk
61b1d6d869
add corks to coalesce writes for several heavy calltrees.
...
Signed-off-by: Jason Volk <jason@zemos.net>
2024-03-23 01:49:27 -04:00
strawberry
3e902836cc
simplify heroes get_avatar
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-03-23 01:49:27 -04:00
strawberry
b0bee8f6ae
drop sync requests to debug
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-03-16 00:09:48 -04:00
strawberry
6df7f976db
log sync sender_user
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-03-16 00:09:48 -04:00
Timo Kösters
019a82850d
improvement: do not save typing edus in db
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-03-08 12:51:21 -05:00
Matthias Ahouansou
4ec2d3ecb5
refactor: use async-aware RwLocks and Mutexes where possible
...
squashed from https://gitlab.com/famedly/conduit/-/merge_requests/595
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-03-08 12:51:21 -05:00
strawberry
f419c64aca
add rustfmt.toml, format entire codebase
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-03-08 12:51:21 -05:00
strawberry
e2c7afe69c
go through a ton of pedantic clippy lints
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-03-03 22:20:37 -05:00
strawberry
cde6fdd741
resolve or_fun_call clippy lint
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-03-03 22:20:37 -05:00
Timo Kösters
f0ae99125a
fix: avoid panic when client is confused about rooms
2024-02-28 13:56:19 -05:00
strawberry
0ea8657070
default to Undefined if room avatar URL was not found despite checking if its Some
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-02-11 21:56:55 -05:00
strawberry
9d0c85ab17
use ruma JsOption, bump figment
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-01-25 19:28:33 -05:00
strawberry
1308574db0
bump ruma to latest commit (syncv3 JsOption and push optional power levels)
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-01-07 22:26:27 -05:00
Jakub Kubík
cc4e6e213f
fix(sync): correctly update presence properties
2023-12-20 21:50:18 -05:00
Jakub Kubík
69025d30f7
style(presence): use flat_map instead of matching Results in filter
2023-12-20 21:50:13 -05:00
strawberry
54a3f47851
fix every clippy warning possible, remove io_uring as default feature
...
this project's codebase is so horrendous, im shocked that no one has ran
clippy at all. it had ~200 total lint warnings, some with performance
issues and unsoundness, and the rest just very ugly codebase. i have sat
down and fixed as many of these as possible and i am exhausted.
i haven't fixed some extremely complex ones, but i brought it down from
~200 to ~30.
i have also removed io_uring as a default feature due to it falling
under the same category as linux eBPF: major kernel attack surface for
minimal performance gains. this also makes it impossible to cross-compile
from macOS to Linux because io_uring does not exist in Darwin land.
there are far better ways to achieve better performance than io_uring on
the codebase level.
Signed-off-by: strawberry <june@girlboss.ceo>
2023-11-27 00:50:55 -05:00
strawberry
6958c720d0
make pdu stuff async, remove unnecessary db version check
...
Signed-off-by: strawberry <strawberry@pupbrain.dev>
2023-11-25 18:29:38 -05:00
Jakub Kubík
58a83f06b1
feat(presence): add granular allow configuration
2023-10-21 22:31:16 -04:00
Jakub Kubík
ba03edfae9
feat(presence): implement presence functionality
2023-10-21 22:31:06 -04:00
girlbossceo
f72fd67a71
remove dbg's, update rocksdb, use iouring
...
Signed-off-by: girlbossceo <june@girlboss.ceo>
2023-09-24 10:17:26 -04:00
Timo Kösters
75c80df271
Sliding sync improvements and redaction fixes
2023-09-13 20:54:53 +02:00
Timo Kösters
c028e0553c
feat: registration tokens
2023-08-09 18:27:30 +02:00
Timo Kösters
d82c26f0a9
Avatars for sliding sync DMs
2023-08-07 17:54:08 +02:00
Timo Kösters
c1e2ffc0cd
improvement: maybe cross signing really works now
2023-08-07 13:55:44 +02:00
Timo Kösters
acfe381dd3
fix: threads get updated properly
...
Workaround for element web while waiting for https://github.com/matrix-org/matrix-js-sdk/pull/3635
2023-07-31 16:18:23 +02:00
Timo Kösters
d220641d64
Sliding sync subscriptions, e2ee, to_device messages
2023-07-24 10:42:52 +02:00
Timo Kösters
caddc656fb
slightly better sliding sync
2023-07-24 10:42:47 +02:00
Timo Kösters
78e7b711df
fix: better sliding sync
2023-07-10 16:25:33 +02:00
Timo Kösters
e4f769963f
feat: very simple sliding sync implementation
2023-07-06 10:32:25 +02:00