delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2005/10/23/08:45:51

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
Message-ID: <20051023124539.21428.qmail@web32008.mail.mud.yahoo.com>
Date: Sun, 23 Oct 2005 05:45:39 -0700 (PDT)
From: Johan De Taeye <johan_de_taeye AT yahoo DOT com>
Subject: Scalability problem with Pthread Read/Write Locks
To: cygwin AT cygwin DOT com
MIME-Version: 1.0

My multi-threaded application is creating a lot of
pthread_rwlock objects to protect access to my objects.
I am noticing that this doesn't scale up well. As the number
of active objects being created/changed/deleted increases
into the thousands, the runtime performance degrades very
badly.

When investigating the problem I noticed from the source code
in the files winsup/cygwin/thread.h and
winsup/cygwin/thread.cc that a static double-linked list
(called rwlocks) is used to keep track of all rwlocks present
in the process. Removal of an element in the list is O(n) and
explains the behavior of my application.

When compiling under Linux no such scalability problems are
found. (I believe the pthreads implementation there doesn't
need to  keep track of the active rwlocks)

Finally the question: Could/should the =list= data structure
be replaced with a =set= to provide better scalability?
Or, is my application design simply not right and is creating
a large number of rwlocks not a wise choice? 

Regards,

Johan



		
__________________________________ 
Yahoo! FareChase: Search multiple travel sites in one click.
http://farechase.yahoo.com

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019