Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Move storage classes into a main "data store". | Erik Johnston | 2019-10-21 | 1 | -937/+0 |
| | | | | | This is in preparation for having multiple data stores that offer different functionality, e.g. splitting out state or event storage. | ||||
* | Replace IN usage with helper funcs | Erik Johnston | 2019-10-10 | 1 | -3/+11 |
| | |||||
* | Move devices's bg updates to a dedicated store | Brendan Abolivier | 2019-10-07 | 1 | -22/+27 |
| | |||||
* | Opentracing context cannot be none | Jorik Schellekens | 2019-09-05 | 1 | -1/+1 |
| | |||||
* | Opentrace device lists (#5853) | Jorik Schellekens | 2019-09-03 | 1 | -0/+5 |
| | | | Trace device list changes. | ||||
* | Remove unnecessary parentheses around return statements (#5931) | Andrew Morgan | 2019-08-30 | 1 | -5/+5 |
| | | | | | Python will return a tuple whether there are parentheses around the returned values or not. I'm just sick of my editor complaining about this all over the place :) | ||||
* | Propagate opentracing contexts through EDUs (#5852) | Jorik Schellekens | 2019-08-22 | 1 | -6/+33 |
| | | | | | Propagate opentracing contexts through EDUs Co-Authored-By: Richard van der Hoff <1389908+richvdh@users.noreply.github.com> | ||||
* | Replace returnValue with return (#5736) | Amber Brown | 2019-07-23 | 1 | -16/+16 |
| | |||||
* | Review comments | Erik Johnston | 2019-06-27 | 1 | -3/+1 |
| | |||||
* | Use batch_iter and correct docstring | Erik Johnston | 2019-06-26 | 1 | -15/+12 |
| | |||||
* | Rename get_users_whose_devices_changed | Erik Johnston | 2019-06-26 | 1 | -3/+3 |
| | |||||
* | Refactor get_user_ids_changed to pull less from DB | Erik Johnston | 2019-06-26 | 1 | -10/+41 |
| | | | | | | | | | | | When a client asks for users whose devices have changed since a token we used to pull *all* users from the database since the token, which could easily be thousands of rows for old tokens. This PR changes this to only check for changes for users the client is actually interested in. Fixes #5553 | ||||
* | Run Black. (#5482) | Amber Brown | 2019-06-20 | 1 | -8/+4 |
| | |||||
* | Prevent multiple device list updates from breaking a batch send (#5156) | Andrew Morgan | 2019-06-06 | 1 | -29/+123 |
| | | | fixes #5153 | ||||
* | Run black on the rest of the storage module (#4996) | Amber Brown | 2019-04-03 | 1 | -127/+98 |
| | |||||
* | Fixup slave stores | Erik Johnston | 2019-03-04 | 1 | -337/+338 |
| | |||||
* | Add unique indexes to a couple of tables | Richard van der Hoff | 2018-11-02 | 1 | -2/+47 |
| | | | | | The indexes on device_lists_remote_extremeties can be unique, and they therefore should, to ensure that the db remains consistent. | ||||
* | Remove redundant database locks for device list updates | Richard van der Hoff | 2018-11-02 | 1 | -5/+40 |
| | | | | We can rely on the application-level per-user linearizer. | ||||
* | Deduplicate device updates sent over replication | Erik Johnston | 2018-10-29 | 1 | -1/+5 |
| | | | | | | | | | | We currently send several kHz of device list updates over replication occisonally, which often causes the replications streams to lag and then get dropped. A lot of those updates will actually be duplicates, since we don't send e.g. device_ids across replication, so let's deduplicate it when we pull them out of the database. | ||||
* | Port storage/ to Python 3 (#3725) | Amber Brown | 2018-08-31 | 1 | -5/+5 |
| | |||||
* | Fix some looping_call calls which were broken in #3604 | Richard van der Hoff | 2018-07-26 | 1 | -1/+1 |
| | | | | | | | | | It turns out that looping_call does check the deferred returned by its callback, and (at least in the case of client_ips), we were relying on this, and I broke it in #3604. Update run_as_background_process to return the deferred, and make sure we return it to clock.looping_call. | ||||
* | Wrap a number of things that run in the background | Richard van der Hoff | 2018-07-25 | 1 | -2/+6 |
| | | | | | This will reduce the number of "Starting db connection from sentinel context" warnings, and will help with our metrics. | ||||
* | yes, we do need to invalidate the device_id_exists_cache when deleting a ↵ | Matthew Hodgson | 2018-07-19 | 1 | -1/+0 |
| | | | | remote device | ||||
* | shift to using an explicit deleted flag on m.device_list_update EDUs | Matthew Hodgson | 2018-07-12 | 1 | -8/+10 |
| | | | | and generally make it work. | ||||
* | WIP to announce deleted devices over federation | Matthew Hodgson | 2018-07-12 | 1 | -12/+28 |
| | | | | | | Previously we queued up the poke correctly when the device was deleted, but then the actual EDU wouldn't get sent, as the device was no longer known. Instead, we now send EDUs for deleted devices too if there's a poke for them. | ||||
* | run isort | Amber Brown | 2018-07-09 | 1 | -5/+6 |
| | |||||
* | Attempt to be more performant on PyPy (#3462) | Amber Brown | 2018-06-28 | 1 | -1/+2 |
| | |||||
* | replace some iteritems with six | Adrian Tschira | 2018-05-19 | 1 | -4/+5 |
| | | | | Signed-off-by: Adrian Tschira <nota@notafile.com> | ||||
* | Replace ujson with simplejson | Erik Johnston | 2018-03-15 | 1 | -1/+1 |
| | |||||
* | Make __init__ consitstent across Store heirarchy | Richard van der Hoff | 2017-11-13 | 1 | -2/+2 |
| | | | | | | Add db_conn parameters to the `__init__` methods of the *Store classes, so that they are all consistent, which makes the multiple inheritance work correctly (and so that we can later extract mixins which can be used in the slavedstores) | ||||
* | When pruning, delete from device_lists_outbound_last_success | Erik Johnston | 2017-06-07 | 1 | -0/+8 |
| | |||||
* | Keep pruning background task | Erik Johnston | 2017-06-07 | 1 | -0/+45 |
| | |||||
* | Split up device_lists_outbound_pokes table for faster updates. | Erik Johnston | 2017-06-07 | 1 | -58/+24 |
| | |||||
* | Add missing yields | Erik Johnston | 2017-05-08 | 1 | -2/+4 |
| | |||||
* | Invalidate cache on device deletion | Erik Johnston | 2017-05-08 | 1 | -2/+6 |
| | |||||
* | Comment | Erik Johnston | 2017-05-08 | 1 | -0/+2 |
| | |||||
* | Cache check to see if device exists | Erik Johnston | 2017-05-08 | 1 | -1/+12 |
| | |||||
* | Add new storage functions for new replication | Erik Johnston | 2017-03-30 | 1 | -3/+3 |
| | | | | | The new replication protocol will keep all the streams separate, rather than muxing multiple streams into one. | ||||
* | Batch sending of device list pokes | Erik Johnston | 2017-03-24 | 1 | -0/+4 |
| | |||||
* | User Cursor.__iter__ instead of fetchall | Erik Johnston | 2017-03-23 | 1 | -4/+3 |
| | | | | This prevents unnecessary construction of lists | ||||
* | Fix assertion to stop transaction queue getting wedged | Richard van der Hoff | 2017-03-15 | 1 | -1/+1 |
| | | | | | | | | ... and update some docstrings to correctly reflect the types being used. get_new_device_msgs_for_remote can return a long under some circumstances, which was being stored in last_device_list_stream_id_by_dest, and was then upsetting things on the next loop. | ||||
* | Implement _simple_delete_many_txn, use it to delete devices | Luke Barnard | 2017-03-13 | 1 | -0/+17 |
| | | | | | | (But this doesn't implement the same for deleting access tokens or e2e keys. Also respond to code review. | ||||
* | Select distinct devices from DB | Erik Johnston | 2017-03-06 | 1 | -1/+1 |
| | | | | | Otherwise we might pull out tonnes of duplicate user_ids and this can make synapse sad. | ||||
* | Fix up | Erik Johnston | 2017-03-03 | 1 | -4/+4 |
| | |||||
* | Add index to device_lists_stream | Erik Johnston | 2017-03-01 | 1 | -0/+7 |
| | |||||
* | Clobber old device list stream entries | Erik Johnston | 2017-03-01 | 1 | -0/+10 |
| | |||||
* | Fix up txn name | Erik Johnston | 2017-02-28 | 1 | -1/+1 |
| | |||||
* | Cache get_user_devices_from_cache | Erik Johnston | 2017-02-27 | 1 | -45/+73 |
| | |||||
* | Fix deletion of old sent devices correctly | Erik Johnston | 2017-01-31 | 1 | -5/+17 |
| | |||||
* | Only fetch with row ts and count > 1 | Erik Johnston | 2017-01-31 | 1 | -1/+2 |
| | |||||
* | Fix clearing out old device list outbound pokes | Erik Johnston | 2017-01-31 | 1 | -2/+7 |
| | |||||
* | Noop device key changes if they're the same | Erik Johnston | 2017-01-30 | 1 | -0/+1 |
| | |||||
* | Fix query | Erik Johnston | 2017-01-30 | 1 | -1/+1 |
| | |||||
* | Rename func | Erik Johnston | 2017-01-30 | 1 | -1/+1 |
| | |||||
* | Clear out old destination pokes. | Erik Johnston | 2017-01-30 | 1 | -0/+42 |
| | |||||
* | Always use the latest stream_id, sent or unsent | Erik Johnston | 2017-01-30 | 1 | -4/+4 |
| | |||||
* | Add ts column to device_lists_outbound_pokes | Erik Johnston | 2017-01-27 | 1 | -0/+3 |
| | |||||
* | Hook device list updates to replication | Erik Johnston | 2017-01-27 | 1 | -0/+15 |
| | |||||
* | Comment | Erik Johnston | 2017-01-27 | 1 | -0/+2 |
| | |||||
* | SQL param ordering | Erik Johnston | 2017-01-27 | 1 | -1/+1 |
| | |||||
* | User if rather than for | Erik Johnston | 2017-01-27 | 1 | -1/+4 |
| | |||||
* | Better name | Erik Johnston | 2017-01-27 | 1 | -1/+1 |
| | |||||
* | Remove unused param | Erik Johnston | 2017-01-27 | 1 | -2/+1 |
| | |||||
* | Handle users leaving rooms | Erik Johnston | 2017-01-26 | 1 | -0/+8 |
| | |||||
* | Add comments | Erik Johnston | 2017-01-26 | 1 | -2/+35 |
| | |||||
* | Implement device key caching over federation | Erik Johnston | 2017-01-26 | 1 | -12/+189 |
| | |||||
* | Fix up sending of m.device_list_update edus | Erik Johnston | 2017-01-25 | 1 | -20/+20 |
| | |||||
* | Add basic implementation of local device list changes | Erik Johnston | 2017-01-25 | 1 | -9/+160 |
| | |||||
* | Log the types and values when failing to store devices | Mark Haines | 2016-09-07 | 1 | -2/+6 |
| | |||||
* | Implement updating devices | Richard van der Hoff | 2016-07-26 | 1 | -1/+26 |
| | | | | You can update the displayname of devices now. | ||||
* | Implement deleting devices | Richard van der Hoff | 2016-07-26 | 1 | -0/+15 |
| | |||||
* | GET /devices endpoint | Richard van der Hoff | 2016-07-20 | 1 | -1/+21 |
| | | | | | | | implement a GET /devices endpoint which lists all of the user's devices. It also returns the last IP where we saw that device, so there is some dancing to fish that out of the user_ips table. | ||||
* | Add device_id support to /login | Richard van der Hoff | 2016-07-18 | 1 | -0/+77 |
Add a 'devices' table to the storage, as well as a 'device_id' column to refresh_tokens. Allow the client to pass a device_id, and initial_device_display_name, to /login. If login is successful, then register the device in the devices table if it wasn't known already. If no device_id was supplied, make one up. Associate the device_id with the access token and refresh token, so that we can get at it again later. Ensure that the device_id is copied from the refresh token to the access_token when the token is refreshed. |