Thread

  1. locking change help

    Bruce Momjian <maillist@candle.pha.pa.us> — 1998-01-23T06:21:41Z

    I am trying to change the lock manager so read locks will not be granted
    if there is a write-lock waiting for a lock.  The following patch helps,
    but is incomplete.  Can someone figure out the right fix?  I tried
    putting this code inside LockResolveConflicts(), but that didn't work
    either.
    
    ---------------------------------------------------------------------------
    
    *** ./backend/storage/lmgr/lock.c.orig	Fri Jan 23 01:18:01 1998
    --- ./backend/storage/lmgr/lock.c	Fri Jan 23 01:18:53 1998
    ***************
    *** 602,607 ****
    --- 602,620 ----
      
      	status = LockResolveConflicts(ltable, lock, lockt, myXid);
      
    + 		/* ------------------------
    + 		 * If someone with a greater priority is waiting for the lock,
    + 		 * do not continue and share the lock, even if we can.  bjm
    + 		 * ------------------------
    + 		 */
    + 		int				myprio = ltable->ctl->prio[lockt];
    + 		PROC_QUEUE		*waitQueue = &(lock->waitProcs);
    + 		PROC			*topproc = (PROC *) MAKE_PTR(waitQueue->links.prev);
    + 
    + 		if (topproc && topproc->prio > myprio)
    + 			status = STATUS_FOUND;
    + 	}
    + 
      	if (status == STATUS_OK)
      	{
      		GrantLock(lock, lockt);
    
    -- 
    Bruce Momjian
    maillist@candle.pha.pa.us
    
    
  2. Re: [HACKERS] locking change help

    Mattias Kregert <matti@algonet.se> — 1998-01-23T10:25:36Z

    Bruce Momjian wrote:
    > 
    > I am trying to change the lock manager so read locks will not be granted
    > if there is a write-lock waiting for a lock.  The following patch helps,
    > but is incomplete.  Can someone figure out the right fix?  I tried
    > putting this code inside LockResolveConflicts(), but that didn't work
    > either.
    
    Is this to help writers from starving?
    
    /* m */
    
    
  3. Re: [HACKERS] locking change help

    Bruce Momjian <maillist@candle.pha.pa.us> — 1998-01-23T14:59:47Z

    > 
    > Bruce Momjian wrote:
    > > 
    > > I am trying to change the lock manager so read locks will not be granted
    > > if there is a write-lock waiting for a lock.  The following patch helps,
    > > but is incomplete.  Can someone figure out the right fix?  I tried
    > > putting this code inside LockResolveConflicts(), but that didn't work
    > > either.
    > 
    > Is this to help writers from starving?
    
    Yes.
    
    -- 
    Bruce Momjian
    maillist@candle.pha.pa.us