Hi, Adrian!
Hope you are doing well! I also hope this is the right email of yours.
I am writing to you about your article https://blog.acolyer.org/2016/02/25/generalized-isolation-level-definitions/ . I've tried to write a comment on the site, but WordPress does not show up it.
Reading an article, the phrases:
A transaction T1 depends on T2 if there is a path in the graph from T1 to T2. It directly depends on T2 if there is an edge from T1 to T2... add a read dependency edge from T2 to T1 if any of the following conditions hold
really confuses a reader and everything that says that there is a dependency edge from T2 to T1 because when you read the article it's not very clear is it about dependency between transactions or about a "dependency" edge in the graph (DSG) because they have OPPOSITE directions.
Moreover, the mentioned directions are seemed to be wrong if I get the original paper right:
There is a read/write/anti-dependency edge from transaction Ti to transaction Tj if Tj directly read/write/anti-depends on Ti.
As you can see it is the opposite of what is written in the aforementioned sentences:
- If there is a dependency edge (arrow) from Ti -> Tj (read T1 -> T2) then the Tj (T2) depends on Ti (T1).
- Tj directly depends on Ti if there is an dependency edge (arrow) from Ti -> Tj (T1 -> T2 => T2 depends on T1)
- In an example, it must be: "add a read dependency edge from T1 to T2 if any of the following conditions hold... (T2 read depends on T1: T1 --wr-->T2, that means that T1 installs a new version Xi and then T2 reads just installed version Xi by the T1)". If there is a dep-edge from T1 -> T2 then T2 depends on T1. That's it. i.e. if T1 --wr--> T2, T1 writes and T2 reads X, and thus its a read-dependency, and T2 read-depends on T1.
Also, it would be much beneficial for this article to include Figure 2 "Definitions of direct conflicts between transaction" with graphs.
Hope, I get it right. If that's the case, plz recheck my thoughts, as there was no one to review this.
-- Kind regards, Ivan Prisyazhnyy, Software Engineer, john.koepi@gmail.com