summary refs log tree commit diff
path: root/synapse/streams/events.py (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Allow multiple workers to write to receipts stream. (#16432)Erik Johnston2023-10-251-2/+2
| | | Fixes #16417
* Some refactors around receipts stream (#16426)Erik Johnston2023-10-041-5/+10
|
* Faster joins: omit partial rooms from eager syncs until the resync completes ↵David Robertson2023-01-231-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#14870) * Allow `AbstractSet` in `StrCollection` Or else frozensets are excluded. This will be useful in an upcoming commit where I plan to change a function that accepts `List[str]` to accept `StrCollection` instead. * `rooms_to_exclude` -> `rooms_to_exclude_globally` I am about to make use of this exclusion mechanism to exclude rooms for a specific user and a specific sync. This rename helps to clarify the distinction between the global config and the rooms to exclude for a specific sync. * Better function names for internal sync methods * Track a list of excluded rooms on SyncResultBuilder I plan to feed a list of partially stated rooms for this sync to ignore * Exclude partial state rooms during eager sync using the mechanism established in the previous commit * Track un-partial-state stream in sync tokens So that we can work out which rooms have become fully-stated during a given sync period. * Fix mutation of `@cached` return value This was fouling up a complement test added alongside this PR. Excluding a room would mean the set of forgotten rooms in the cache would be extended. This means that room could be erroneously considered forgotten in the future. Introduced in #12310, Synapse 1.57.0. I don't think this had any user-visible side effects (until now). * SyncResultBuilder: track rooms to force as newly joined Similar plan as before. We've omitted rooms from certain sync responses; now we establish the mechanism to reintroduce them into future syncs. * Read new field, to present rooms as newly joined * Force un-partial-stated rooms to be newly-joined for eager incremental syncs only, provided they're still fully stated * Notify user stream listeners to wake up long polling syncs * Changelog * Typo fix Co-authored-by: Sean Quah <8349537+squahtx@users.noreply.github.com> * Unnecessary list cast Co-authored-by: Sean Quah <8349537+squahtx@users.noreply.github.com> * Rephrase comment Co-authored-by: Sean Quah <8349537+squahtx@users.noreply.github.com> * Another comment Co-authored-by: Sean Quah <8349537+squahtx@users.noreply.github.com> * Fixup merge(?) * Poke notifier when receiving un-partial-stated msg over replication * Fixup merge whoops Thanks MV :) Co-authored-by: Mathieu Velen <mathieuv@matrix.org> Co-authored-by: Mathieu Velten <mathieuv@matrix.org> Co-authored-by: Sean Quah <8349537+squahtx@users.noreply.github.com>
* Implement message forward pagination from start when no from is given, fixes ↵Benjamin Kampmann2022-11-241-0/+13
| | | | | #12383 (#14149) Fixes https://github.com/matrix-org/synapse/issues/12383
* Remove unused type-ignores (#14433)David Robertson2022-11-141-3/+6
| | | | | | | * Remove unused type-ignores Oversights in #14427 and #14429. * Changelog
* Instrument `/messages` for understandable traces in Jaeger (#13368)Eric Eastwood2022-08-031-0/+2
| | | | | | In Jaeger: - Before: huge list of uncategorized database calls - After: nice and collapsible into units of work
* Rework stream token to stop caring about groups. (#12897)Patrick Cloke2022-05-311-2/+2
|
* Generate historic pagination token for `/messages` when no `?from` token ↵Eric Eastwood2022-04-061-2/+2
| | | | provided (#12370)
* Remove `HomeServer.get_datastore()` (#12031)Richard van der Hoff2022-02-231-1/+1
| | | | | | | The presence of this method was confusing, and mostly present for backwards compatibility. Let's get rid of it. Part of #11733
* Upgrade mypy to version 0.931 (#12030)Sean Quah2022-02-181-2/+4
| | | Upgrade mypy to 0.931, mypy-zope to 0.3.5 and fix new complaints.
* Add type hints for event streams. (#10856)Patrick Cloke2021-09-211-19/+30
|
* Use inline type hints in various other places (in `synapse/`) (#10380)Jonathan de Jong2021-07-151-2/+2
|
* Remove redundant "coding: utf-8" lines (#9786)Jonathan de Jong2021-04-141-1/+0
| | | | | | | Part of #9744 Removes all redundant `# -*- coding: utf-8 -*-` lines from files, as python 3 automatically reads source code as utf-8 now. `Signed-off-by: Jonathan de Jong <jonathan@automatia.nl>`
* Stop sub-classing object (#8249)Patrick Cloke2020-09-041-1/+1
|
* Remove `ChainedIdGenerator`. (#8123)Erik Johnston2020-08-191-1/+1
| | | | | It's just a thin wrapper around two ID gens to make `get_current_token` and `get_next` return tuples. This can easily be replaced by calling the appropriate methods on the underlying ID gens directly.
* Convert streams to async. (#8014)Patrick Cloke2020-08-041-13/+9
|
* Fix some spelling mistakes / typos. (#7811)Patrick Cloke2020-07-091-1/+1
|
* Bump version of mypyErik Johnston2019-12-121-1/+3
|
* Replace returnValue with return (#5736)Amber Brown2019-07-231-2/+2
|
* Fix /messages on workers when no from param specified.Erik Johnston2019-06-241-14/+18
| | | | | | | If no `from` param is specified we calculate and use the "current token" that inlcuded typing, presence, etc. These are unused during pagination and are not available on workers, so we simply don't calculate them.
* Run Black. (#5482)Amber Brown2019-06-201-32/+11
|
* run isortAmber Brown2018-07-091-4/+3
|
* Fix bug in generating current tokenErik Johnston2017-07-201-0/+2
|
* Add groups to sync streamErik Johnston2017-07-201-0/+2
|
* Add basic implementation of local device list changesErik Johnston2017-01-251-0/+4
|
* Actually use the new functionErik Johnston2016-10-241-1/+1
|
* Fix incredubly slow back pagination queryErik Johnston2016-10-241-2/+28
| | | | | | | If a client didn't specify a from token when paginating backwards synapse would attempt to query the (global) maximum topological token. This a) doesn't make much sense since they're room specific and b) there are no indices that lets postgres do this efficiently.
* Add store-and-forward direct-to-device messagingMark Haines2016-08-251-0/+2
|
* Hook up the push rules to the notifierMark Haines2016-03-031-0/+4
|
* copyrightsMatthew Hodgson2016-01-071-1/+1
|
* s/private_user_data/account_data/Mark Haines2015-11-181-4/+4
|
* Inform the client of new room tags using v1 /eventsMark Haines2015-10-291-0/+5
|
* Move NullSource out of synapse and into tests since it is only used by the testsMark Haines2015-09-221-16/+0
|
* synapse/streams/events.py:StreamSource was unusedMark Haines2015-09-221-12/+0
|
* Wire together receipts and the notifer/federationErik Johnston2015-07-071-1/+5
|
* Add receipts_key to StreamTokenErik Johnston2015-07-021-1/+2
|
* Make get_current_token accept a direction parameter, which tells whether the ↵Erik Johnston2015-05-121-3/+3
| | | | source whether we want a token for going 'forwards' or 'backwards'
* Update copyright noticesMark Haines2015-01-061-1/+1
|
* Construct a source-specific 'SourcePaginationConfig' to pass into ↵Paul "LeoNerd" Evans2014-10-291-1/+1
| | | | get_pagination_rows; meaning each source doesn't have to care about its own name any more
* fix the copyright holder from matrix.org to OpenMarket Ltd, as matrix.org ↵Matthew Hodgson2014-09-031-1/+1
| | | | hasn't been incorporated in time for launch.
* Renamed get_current_token_part to get_current_keyPaul "LeoNerd" Evans2014-08-291-6/+6
|
* Have EventSource's get_new_events_for_user() API work only on keys within ↵Paul "LeoNerd" Evans2014-08-291-3/+4
| | | | that source, not overall eventstream tokens
* Rename 'events_key' to 'room_key' so it matches the name of the event sourcePaul "LeoNerd" Evans2014-08-291-1/+1
|
* Define a new event stream data source for typing notifications (currently null)Paul "LeoNerd" Evans2014-08-291-7/+13
|
* Move the *EventSource classes into the handlers they relate to, so it's ↵Paul "LeoNerd" Evans2014-08-291-127/+4
| | | | easier to find the code
* Fix typo in NullSource.get_pagination_rows. Remove unused import.Erik Johnston2014-08-281-2/+1
|
* Define a NullSource useful for unit-testingPaul "LeoNerd" Evans2014-08-271-0/+16
|
* Index sources in a nicer fashion.Erik Johnston2014-08-271-11/+10
|
* Convert get_paginat_rows to use PaginationConfig. This allows people to ↵Erik Johnston2014-08-271-6/+14
| | | | supply directions.
* PEP8 tweaks.Erik Johnston2014-08-271-1/+0
|
* Implement presence event source. Change the way the notifier indexes listenersErik Johnston2014-08-271-25/+48
|
* Enable presence again. Fix up api to match old api.Erik Johnston2014-08-261-2/+2
|
* Fix exceptions so that the event stream works. Presence like events are ↵Erik Johnston2014-08-261-2/+4
| | | | turned off currently.
* WIP: Completely change how event streaming and pagination work. This ↵Erik Johnston2014-08-261-0/+149
reflects the change in the underlying storage model.