We are handling multiple concurrent clients connecting to our system - trying to get a license seat (each license has an initial capacity of seats).
We have a table which keeps count of the acquired seats for each license.
When a client tries to acquire a seat we first make sure that the number of acquired seats is less than the license capacity.
We then increase the number of acquired seats by 1.
Our main problem here is with the acquired seats table.
It is actually a shared resource which needs to be updated concurrently by multiple transactions.
When multiple transactions are running concurrently - each transaction takes a long time to complete because it waits on the lock for the shared resource table.
Any suggestions for better implementation/design of this feature would be much appreciated.
pgsql-performance by date
|Next:||From: Robert Klemme||Date: 2012-06-07 11:48:28|
|Subject: Re: Multiple Concurrent Updates of Shared Resource Counter|
|Previous:||From: Julien Cigar||Date: 2012-06-06 12:55:54|
|Subject: Re: pg 9.1 brings host machine down|