-
Notifications
You must be signed in to change notification settings - Fork 321
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(dal): VectorClockIds are a tuple, no editing changesets
Previously, vector clock ids were the same as change set ids. And, we generated a "editing change set" anytime we mutated the graph. This changeset was ephemeral, and not connected to a real "change set" in the system. In addition, for conflict detection to work correctly, the node write clocks have to store every vector clock write that has *ever* happened to them. This meant these clocks would grow indefinitely, since they have to store every ephemeral "editing change set" in the node, forever. This change transforms the vector clock id into a tuple of the real ChangeSetId and the UserPk/ActorId of the current user. In the context of system actors, like Pinga and the Rebaser, the WorkspacePk is used in place of the UserPk and removes editing change sets entirely. Now the bound on the vector clock write clocks in node weights is the number of change sets and users in the system, which will grow much more slowly than the editing change sets. This is a breaking change, since it changes both Node and Edge weight data strucutres. Migration must be in place before this can be deployed.
- Loading branch information
1 parent
9aa591d
commit 055406c
Showing
53 changed files
with
2,515 additions
and
1,656 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.