About Distributed Reader-Writer Mutex by Dmitry Vyukov

About Distributed Reader-Writer Mutex by Dmitry Vyukov

imagem de aminer10
Hello,    Dmitry Vyukov  wrote this:   "In order to a reader-writer mutex to scale reader's time under mutex
must be significant, on the order of, let's say, 10'000 cycles. And the
more hardware threads you have the longer the time must be. Otherwise,
inter-reader synchronization overheads dominate, and the system does not scale."   Read here: http://www.1024cores.net/home/lock-free-algorithms/reader-writer-problem/distributed-reader-writer-mutex     I have done some tests with my light weight MREW and my lockfree mpmc fifo queue and what i think is that the CAS is generating a lot of
contention this is is why my rwlock is not scaling.   What you are doing Dmitry Vyukovin in your distributed
rwlock is lowering the contention using the same method as lock striping it is why it is scaling, but there
is still a possibility of contention that can cause a problem to the scalability if you are not
setting the number of rwlocks inside your distributed rwlock correctly.     other than that:   I have looked at the Distributed Reader-Writer Mutex by Dmitry Vyukov, look

at it here:"

http://www.1024cores.net/home/lock-free-algorithms/reader-writer-problem...

and
i think there is a problem with this method,  cause look at the write
lock
function:

int         distr_rw_mutex_wrlock(distr_rw_mutex_t*
mtx)
{
    int                     i;
    for (i = 0; i !=
mtx->proc_count; i += 1)
       
pthread_rwlock_wrlock(&mtx->cell[i].mtx);
    return
0;
}

What is wrong with it ? suppose two or more writers want to
lock this
distributed rwlock there is a possibility of a deadlock.

So
i think you have to use a critical section around the for loop to be able
to
lock all the rwlocks atomically to avoid the deadlock
problem..

Thank you,
Amine Moulay
Ramdane.

1 post / 0 new
Para obter mais informações sobre otimizações de compiladores, consulte Aviso sobre otimizações.