[Progress Communities] [Progress OpenEdge ABL] Forum Post: RE: How the Database Storage Manager Uses Semaphores

Status
Not open for further replies.
G

gus bjorklund

Guest
> On Apr 11, 2020, at 10:56 AM, George Potemkin wrote: > > user semaphores are used by the user processes already connected to the database to wait for one of many types of resources. semaphores are overkill for this purpose but on UNIX and Linux, there is no better choice. for example, when a connection wants a record lock and there is a conflict because some other connection has a higher priority lock (e.g. share vs exclusive, exclusive vs exclusive) the requestor inserts a node into the lock table with a status of "queued" and then waits on its semaphore. when the holder of the lock goes to release it, it notices that there is a queued request and signals the requestor's semaphore in order to wake it. in some cases, such as share lock waiters for the same resource, there may be multiple requesters waiting, each on their own semaphore, and all are awakened one after the other. historical note: the VMS operating system had a system call to stop a process until it was resumed by another process or a signal handler. on vms, we did not need semaphores for waiting and resuming.=

Continue reading...
 
Status
Not open for further replies.
Top