G
George Potemkin
Guest
Curiosity is hungry again, sorry. Free lock is an oxymoron, isn't it? What is a purpose of this type of buffer locks in Progress? Progress uses the free locks for any block types, at least for data, index or sequence blocks. 'Usect' (how many processes are sharing a buffer) is always zero (for example, Usect is always 1 for EXCL locks) but FREE lock is a real lock: 01/16/18 Status: Buffer Lock Queue by user number for all tenants Usr:Ten DBKEY Area T Status Type Usect 158 192 6 S LOCKED FREE 0 114 192 6 S WAITING EXCLWAIT 146 192 6 S WAITING EXCLWAIT In 'seqprobe' test the number of FREE locks is 10-15% of EXCL locks, in other words, they're relatively rare. But in production sometimes we can see: 12/27/17 Status: Buffer Lock Queue User DBKEY Area T Status Type Usect -1 1223 33 I LOCKED FREE 0 -1 2310 31 I LOCKED FREE 0 -1 97880 33 I LOCKED FREE 0 -1 144435 33 I LOCKED SHARE 0 -1 107785728 12 D LOCKED FREE 0 -1 1394877696 8 D LOCKED TIO 1 -1 177276672 7 D LOCKED TIO 1 A bit too often for a rare event. Should we worry when we see FREE locks in production? All locks reported by "Status: Buffer Lock Queue" are also reported by "Status: Buffer Locks" (the "S" column) - except FREE locks: S Share Lock I Share Lock with Intent to modify X Exclusive Lock R I/O state B Online Backup Queue
Continue reading...
Continue reading...