Skip to content

More backouts than necessary #81

@bmistree

Description

@bmistree

Assume that we have three threads, t1, t2, and t3, each performing writes on an object, obj.

t1 acquires w lock on obj. Produces obj' to speculate on during commit.
t2 acquires w lock on obj' and t3 waits on obj'.

t1 finishes, obj' gets promoted to obj. Then t3 gets speculated to obj''. When t3 tries to commit, obj' forwards the commit request to obj. obj does not have t3 in its read lock holders because it transferred these to obj'' and returns ALWAYS_FALSE_FUTURE. Even though should actually wait for obj'' to return.

This should cause many more backouts than necessary whenever running with more than 2 threads that are writers.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions