Hello,
I want to clear something about my Distributed sequential lock
algorithm, you can download it and read about it here:
https://sites.google.com/site/aminer68/scalable-distributed-sequential-lock
If you read carefully the source code you will noticed that
i am using this: "myid3:=FCount6^.fcount6;" inside the RLock()
method in the reader side, so when my algorithms switches
from a Seqlock mode to a Distributed lock mode, the
"myid3:=FCount6^.fcount6;" will be "serialized" when the
writer side increment FCount6^.fcount6, so in the writer side i am
calling the distributed reader-writer lock when the algorithm swithes
to a Distributed mode, so if you have noticed since the
"myid3:=FCount6^.fcount6;" is serialized in the reader side
when "FCount6^.fcount6" is incremented in the writer side,
so this will look like a probalistic mechanism cause
the reader side is serializing the the transfer of FCount6^.fcount6
on the bus, and the writer side is serializing the transfer of
a variable in the bus also when it is calling the WLock() of the
distributed lock, so this is a kind of a probalistic mechanism
cause this can generate contention and the reader side can call
RLock() on a distributed lock's reader-writer mutex that is entered
before the reader by the writer, but even though it is a probalistic
mechanism, this probabilistic mechanism will give a good result and it
eliminates the "livelock" situation of the Seqlock when
there is more writers.
Thank you for your time.
Amine Moulay Ramdane.