Skip to content
Snippets Groups Projects
  • Sean Quah's avatar
    9cae44f4
    Track unconverted device list outbound pokes using a position instead (#14516) · 9cae44f4
    Sean Quah authored
    
    When a local device list change is added to
    `device_lists_changes_in_room`, the `converted_to_destinations` flag is
    set to `FALSE` and the `_handle_new_device_update_async` background
    process is started. This background process looks for unconverted rows
    in `device_lists_changes_in_room`, copies them to
    `device_lists_outbound_pokes` and updates the flag.
    
    To update the `converted_to_destinations` flag, the database performs a
    `DELETE` and `INSERT` internally, which fragments the table. To avoid
    this, track unconverted rows using a `(stream ID, room ID)` position
    instead of the flag.
    
    From now on, the `converted_to_destinations` column indicates rows that
    need converting to outbound pokes, but does not indicate whether the
    conversion has already taken place.
    
    Closes #14037.
    
    Signed-off-by: default avatarSean Quah <seanq@matrix.org>
    9cae44f4
    History
    Track unconverted device list outbound pokes using a position instead (#14516)
    Sean Quah authored
    
    When a local device list change is added to
    `device_lists_changes_in_room`, the `converted_to_destinations` flag is
    set to `FALSE` and the `_handle_new_device_update_async` background
    process is started. This background process looks for unconverted rows
    in `device_lists_changes_in_room`, copies them to
    `device_lists_outbound_pokes` and updates the flag.
    
    To update the `converted_to_destinations` flag, the database performs a
    `DELETE` and `INSERT` internally, which fragments the table. To avoid
    this, track unconverted rows using a `(stream ID, room ID)` position
    instead of the flag.
    
    From now on, the `converted_to_destinations` column indicates rows that
    need converting to outbound pokes, but does not indicate whether the
    conversion has already taken place.
    
    Closes #14037.
    
    Signed-off-by: default avatarSean Quah <seanq@matrix.org>