Skip to content

Addressing non-deterministic behavior of post/leave? #9

@smarr

Description

@smarr

My understanding is that the size of a chat depends on the client, who invites all its friends.
The number of clients corresponds then also to the number of messages send as a consequence of a post action.

To allow comparisons of different benchmark executions, I assume the overall number of messages needs to be identical.

So, this means, a post action needs to predictably pick chats with the same sizes, which is currently not given since chat membership is racy, and the ordering of the chat list in a client also reflects execution order and timing.

For a moment, I was thinking, perhaps, chats need to be ordered by size, and that would be sufficient, but I don't think this would work, because the random picking of a chat would still be subject to the invitation/leave/membership race.

So, now I am thinking, actions need to follow a pattern such as: Invite (Post | Compute)* Leave?, where Post and Leave or only done on chats the client created directly.

I am unsure about the impact of this, and the dynamic behavior that would get lost.
One thing that would certainly get lost is that the number of messages triggered by a client is not changing anymore.

A very simple change would be to have one chat created per client on client creation, which can't be left, as well as making sure we distinguish client-created from invited-to chats.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions