Page MenuHomePhabricator

When updating a workboard with "R", send the client visible set with version numbers
ClosedPublic

Authored by epriestley on Jul 17 2019, 5:53 PM.
Tags
None
Referenced Files
F18162121: D20653.id49276.diff
Fri, Aug 15, 4:09 AM
F18104800: D20653.id.diff
Sun, Aug 10, 2:05 PM
F18101524: D20653.diff
Sat, Aug 9, 2:08 PM
F17949294: D20653.id49269.diff
Thu, Jul 31, 11:11 PM
F17819824: D20653.id49276.diff
Jul 26 2025, 1:32 AM
F17808283: D20653.id49269.diff
Jul 25 2025, 3:49 PM
F17799299: D20653.id.diff
Jul 25 2025, 4:48 AM
F17657571: D20653.diff
Jul 12 2025, 12:23 PM
Subscribers
None

Details

Summary

Depends on D20652. Ref T4900. When the user presses "R", send a list of cards currently visible on the client and their version numbers.

On the server:

  • Compare the client verisons to the server versions so we can skip updates for objects which have not changed. (For now, the client version is always "1" and the server version is always "2", so this doesn't do anything meaningful, and every card is always updated.)
  • Compare the client visible set to the server visible set and "remove" any cards which have been removed from the board.

I believe this means that "R" always puts the board into the right state (except for some issues with client orderings not being fully handled yet). It's not tremendously efficient, but we can make versioning better (using the largest object transaction ID) to improve that and loading the page in the first place doesn't take all that long so even sending down the full visible set shouldn't be a huge problem.

Test Plan
  • In window A, removed a card from a board.
  • In window B, pressed "R" and saw the removal reflected on the client.
  • (Also added cards, edited cards, etc., and didn't catch anything exploding.)

Diff Detail

Repository
rP Phabricator
Lint
Lint Not Applicable
Unit
Tests Not Applicable