This is the mail archive of the pthreads-win32@sourceware.org mailing list for the pthreas-win32 project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: Good Algorithm for "Multiple Readers"/"Multiple Writers"


You can get more parallelism in terms of processing, but you are not
going to get more parallelism in terms of getting access to the
protected resource. In the last sense there is no difference between
single and multiple writers and advice given by Rustam is correct. Just
call pthread_rwlock_timedwrlock in every writer. Model single writer
multiple reader means that at any given moment you can have multiple
readers having access to a resource and only one writer. That does not
mean that you have to have one writer in your program. 


-----Original Message-----
From: Stephen Croall [mailto:scroall@tibco.com] 
Sent: Thursday, December 08, 2005 9:08 AM
To: Evstiounin, Mikhail; pthreads-win32@sources.redhat.com
Subject: RE: Good Algorithm for "Multiple Readers"/"Multiple Writers"

 
We already use read/write locks in places but for greater parallelism
multiple reader and multiple writer locks would be better.

The current read/write lock implementation in POSIX doesn't support
multiple writers.  Only one writer thread can process at a time - as I
would expect.

I'm after a good model for writing a "many readers"/"many writers" lock
implementation, which is portable from Windows to UNIX.

Steve.

-----Original Message-----
From: Evstiounin, Mikhail [mailto:Mikhail.Evstiounin@ca.com] 
Sent: 08 December 2005 14:02
To: Stephen Croall; pthreads-win32@sources.redhat.com
Subject: RE: Good Algorithm for "Multiple Readers"/"Multiple Writers"

I did not quite get it. The difference between reader and writer is that
reader locks out writer and lets other readers continue without waiting
while writer acquire an exclusive lock. Multiple writers will have
serialized access to a resource in any case. So, there no difference
from this point of view between "one writer -- many readers" and "many
writers -- many readers". So, if you are going to use FIFO (or you don't
care -- I made an assumption that all requests for resource locking is
based on FIFO which is not true, generally speaking) in terms of how to
process request queue then posix approach is enough.

-----Original Message-----
From: pthreads-win32-owner@sourceware.org
[mailto:pthreads-win32-owner@sourceware.org] On Behalf Of Stephen Croall
Sent: Thursday, December 08, 2005 4:57 AM
To: pthreads-win32@sources.redhat.com
Subject: RE: Good Algorithm for "Multiple Readers"/"Multiple Writers"


Thanks, but the POSIX read/write interface supports a single writer vs.
multiple readers.  I'm after multiple writers & readers i.e. multiple
threads can perform writing but readers must wait and vice versa.

Steve.

-----Original Message-----
From: Rustam T. Usmanov [mailto:rustam@unilib.neva.ru] 
Sent: 08 December 2005 09:54
To: Stephen Croall
Subject: Re: Good Algorithm for "Multiple Readers"/"Multiple Writers"

On Thu, 8 Dec 2005, Stephen Croall wrote:

> Is anyone aware of whether POSIX implements this type of lock?

pthread_rwlock ? See
http://www.opengroup.org/onlinepubs/009695399/functions/pthread_rwlock_i
nit.html

--
Rustam Usmanov, systems engineer
Institute of Consortia Library Information Systems,
St.Petersburg State Polytechnic University
Address:  29, Politekhnitcheskaya str., St.Petersburg, 195251, Russia
Tel/fax: +7 812 552 7654        <URL:http://www.unilib.neva.ru/olsc/>



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]