Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.programming.threads > #1027

About Distributed Reader-Writer Mutex by Dmitry Vyukov

From "aminer" <aminer@videotron.ca>
Newsgroups comp.programming.threads, comp.programming
Subject About Distributed Reader-Writer Mutex by Dmitry Vyukov
Date 2012-08-25 19:47 -0500
Organization A noiseless patient Spider
Message-ID <k1bo6h$m94$1@dont-email.me> (permalink)

Cross-posted to 2 groups.

Show all headers | View raw


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/distributed-reader-writer-mutex


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.












Back to comp.programming.threads | Previous | NextNext in thread | Find similar


Thread

About Distributed Reader-Writer Mutex by Dmitry Vyukov "aminer" <aminer@videotron.ca> - 2012-08-25 19:47 -0500
  Re: About Distributed Reader-Writer Mutex by Dmitry Vyukov "aminer" <aminer@videotron.ca> - 2012-08-25 20:01 -0500

csiph-web