Skip to content
Snippets Groups Projects
  1. Feb 22, 2021
  2. Oct 12, 2020
    • Erik Johnston's avatar
      Make event persisters periodically announce position over replication. (#8499) · 8de3703d
      Erik Johnston authored
      Currently background proccesses stream the events stream use the "minimum persisted position" (i.e. `get_current_token()`) rather than the vector clock style tokens. This is broadly fine as it doesn't matter if the background processes lag a small amount. However, in extreme cases (i.e. SyTests) where we only write to one event persister the background processes will never make progress.
      
      This PR changes it so that the `MultiWriterIDGenerator` keeps the current position of a given instance as up to date as possible (i.e using the latest token it sees if its not in the process of persisting anything), and then periodically announces that over replication. This then allows the "minimum persisted position" to advance, albeit with a small lag.
      Unverified
      8de3703d
  3. May 07, 2020
  4. Apr 29, 2020
    • Erik Johnston's avatar
      Add instance name to RDATA/POSITION commands (#7364) · 37f6823f
      Erik Johnston authored
      This is primarily for allowing us to send those commands from workers, but for now simply allows us to ignore echoed RDATA/POSITION commands that we sent (we get echoes of sent commands when using redis). Currently we log a WARNING on the master process every time we receive an echoed RDATA.
      Unverified
      37f6823f
  5. Apr 22, 2020
    • Richard van der Hoff's avatar
      Stop the master relaying USER_SYNC for other workers (#7318) · 71a1abb8
      Richard van der Hoff authored
      Long story short: if we're handling presence on the current worker, we shouldn't be sending USER_SYNC commands over replication.
      
      In an attempt to figure out what is going on here, I ended up refactoring some bits of the presencehandler code, so the first 4 commits here are non-functional refactors to move this code slightly closer to sanity. (There's still plenty to do here :/). Suggest reviewing individual commits.
      
      Fixes (I hope) #7257.
      Unverified
      71a1abb8
  6. Mar 30, 2020
    • Erik Johnston's avatar
      Remove usage of "conn_id" for presence. (#7128) · 4f21c33b
      Erik Johnston authored
      * Remove `conn_id` usage for UserSyncCommand.
      
      Each tcp replication connection is assigned a "conn_id", which is used
      to give an ID to a remotely connected worker. In a redis world, there
      will no longer be a one to one mapping between connection and instance,
      so instead we need to replace such usages with an ID generated by the
      remote instances and included in the replicaiton commands.
      
      This really only effects UserSyncCommand.
      
      * Add CLEAR_USER_SYNCS command that is sent on shutdown.
      
      This should help with the case where a synchrotron gets restarted
      gracefully, rather than rely on 5 minute timeout.
      Unverified
      4f21c33b
  7. Mar 25, 2020
  8. Jan 22, 2020
  9. Jan 17, 2020
  10. Nov 04, 2019
  11. Sep 17, 2019
Loading