US7346720B2 - Systems and methods for managing concurrent access requests to a shared resource - Google Patents
Systems and methods for managing concurrent access requests to a shared resource Download PDFInfo
- Publication number
- US7346720B2 US7346720B2 US11/255,346 US25534605A US7346720B2 US 7346720 B2 US7346720 B2 US 7346720B2 US 25534605 A US25534605 A US 25534605A US 7346720 B2 US7346720 B2 US 7346720B2
- Authority
- US
- United States
- Prior art keywords
- shared
- lock
- processes
- exclusive
- shared resource
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/524—Deadlock detection or avoidance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
Definitions
- the systems and methods of the present invention relate generally to the field of concurrent computer processing, and in particular to managing concurrent access requests to a shared resource.
- shared lock requests and exclusive lock requests must be mutually exclusive. For example, if one process obtains a shared lock to read data and another process concurrently obtains an exclusive lock to write data to the same data segment, it is possible that the first process will read erroneous or outdated data.
- a practical illustration of this problem occurs when two remote members of a jointly held bank account wish to concurrently check the balance of their account and subsequently withdraw the reported balance via an automated teller machine. Without a data storage system that provides for mutual exclusivity, the joint account holders may overdraw the account if both members decide to withdraw the balance.
- Starvation occurs when a process that requests an exclusive lock on a shared resource is denied access to that shared resource in order to fulfill the requirement of mutual exclusivity (e.g., another process already owns a shared lock). Normally, starvation ends when existing shared locks on the shared resource complete their operations and release their locks. However, when other processes subsequently obtain multiple shared locks on the shared resource, the process requesting an exclusive lock will be starved from the shared resource for as long as any shared lock owners exist. Starvation is undesirable because it can delay critical system updates and is inefficient.
- Deadlock occurs when, due to mutual exclusion, a set of processes are waiting on another process in the set to execute. For example, if the set is comprised of processes P 0 through P n wherein P 0 is waiting on P 1 , P 1 is waiting on P 2 , P 2 is waiting on P 3 , . .and P n is waiting on P 0 , a deadlock has occurred because no process in the set can execute until the process it is waiting for executes. For example, this problem occurs when a process with a shared lock requests a recursive lock after another process has already requested an exclusive lock. In this situation, the original shared lock is waiting on the recursive lock, the recursive lock is waiting on the exclusive lock, and the exclusive lock is waiting on the original shared lock. Deadlock is undesirable because it requires one process in the set to be manually aborted and is inefficient.
- the systems and methods for managing concurrent access requests to a shared resource disclosed herein advantageously enable multiple processes to concurrently request exclusive and shared locks on the same shared resource.
- the disclosed access management system preserves mutual exclusivity for those processes that request exclusive locks on the shared resource while avoiding the problems of starvation and deadlock. Effectively, the access management system provides a compromise between processes waiting to obtain an exclusive lock and processes that require recursive locks to complete the execution of their operations. As a result, processes waiting to obtain an exclusive lock are not starved, and shared lock owners are granted recursive locks in order to avoid deadlock.
- the access management system advantageously uses three data structures: a global count, a per-process count, and an exclusive_waiting count. Using these structures, the system utilizes a dynamic method of accounting for the number of shared locks on the shared resource and the number of processes waiting for an exclusive lock on the shared resource. When no processes are waiting to obtain an exclusive lock, the access management system accounts for the number of shared locks on the shared resource in the global count, whether the shared locks are first-time or recursive locks, and all shared lock requests are granted. Upon an exclusive lock request, the exclusive_waiting count is adjusted accordingly and subsequent shared locks are accounted for in the per-process count, a process-specific data structure.
- the per-process count indicates that there are no shared locks
- termination of subsequent shared locks is accounted for in the global count.
- the accounting transfers to the per-process count.
- the recursive locks are granted and any first-time locks are deferred.
- the per-process count indicates that no shared locks exist, the shared locks have terminated, an exclusive lock is granted, and the exclusive_waiting count is adjusted accordingly.
- a method provides for managing concurrent access requests to a data segment.
- the method includes tracking shared lock requests from a plurality of processes in a first data structure when no exclusive waiter is present, wherein the first data structure tracks the total number of shared locks; tracking shared lock requests in a second data structure when an exclusive waiter is present and the total number of shared locks is greater than zero, wherein the second data structure tracks the number of shared locks held by each of the plurality of processes; tracking recursive shared lock requests in the second data structure when an exclusive waiter is present and the total number of shared locks is zero; and granting an exclusive lock to the exclusive waiter when the total number of shared locks is zero and the number of shared locks held by each of the plurality of processes is zero.
- a method provides for managing concurrent access requests to a shared resource.
- the method includes receiving a first plurality of shared requests; granting the first plurality of shared requests; tracking completion of the first plurality of shared requests; receiving an exclusive request; receiving a second plurality of shared requests before the first plurality of shared requests has been completed; granting the second plurality of shared requests; tracking completion of the second plurality of shared requests on a per-process basis; receiving a third plurality of shared requests after the first plurality of shared requests has been completed; determining whether each of the third plurality of shared requests is a recursive request; for each recursive request, granting the recursive request and tracking completion of the recursive request on a per-process basis; and after completion of the third plurality of shared requests and the recursive requests, granting the exclusive request
- a method provides for managing concurrent access requests to a shared resource, wherein a first at least one process has a shared lock on the shared resource.
- the method includes storing a representation of the number of a second at least one processes waiting to obtain an exclusive lock on the shared resource in an exclusive waiting count, wherein the exclusive waiting count is a first data structure and the second at least one processes waiting to obtain an exclusive lock on the shared resource are put to sleep; storing a representation of the number of first at least one processes that have a shared lock on the shared resource in a global count if the exclusive waiting count indicates that none of the, second at least one processes are waiting to obtain an exclusive lock on the shared resource, wherein the global count is a second data structure; adjusting a per-process count when one of the first at least one processes obtains a shared lock on the shared resource if the exclusive waiting count indicates that at least one of the second at least one processes is waiting to obtain an exclusive lock on the shared resource, wherein the per-process count is a third data structure that stores a representation of the
- an access management system manages concurrent access requests to a shared resource.
- the system comprises a shared resource and a processor module, wherein a first at least one process has a shared lock on the shared resource.
- the processor module is configured to receive requests from the first at least one processes for a shared lock on the shared resource; receive requests from a second at least one process for an exclusive lock on the shared resource; store a representation of the number of a second at least one processes waiting to obtain an exclusive lock on the shared resource in an exclusive waiting count, wherein the exclusive waiting count is a first data structure and the second at least one processes waiting to obtain an exclusive lock on the shared resource are put to sleep; store a representation of the number of the first at least one processes that have a shared lock on the shared resource in a global count if the exclusive waiting count indicates that none of the second at least one processes are waiting to obtain an exclusive lock on the share resource, wherein the global count is a second data structure; adjust a per-process count when one of the first at least one processes obtains a shared lock on the shared
- FIG. 1 a illustrates the problem of starvation as it exists in the prior art.
- FIG. 1 b illustrates the problem of deadlock as it exists in the prior art.
- FIG. 2 illustrates one embodiment of the state diagram for managing concurrent access requests to a shared resource.
- FIG. 3 illustrates how one embodiment controls access to a shared resource over time.
- FIG. 4 a illustrates a high-level block diagram of one embodiment of the present invention.
- FIG. 4 b illustrates a high-level block diagram of another embodiment of the present invention.
- FIG. 5 a illustrates a sample hash table
- FIG. 5 b illustrates a sample hash table with corresponding sample data.
- the systems and methods of the present invention provide a system for managing concurrent access requests to a shared resource.
- the system controls concurrent shared lock requests and exclusive lock requests for a shared resource.
- shared lock requests can be granted concurrently and exclusive lock requests can only be granted to one lock owner at a time.
- mutual exclusivity can be illustrated in the context of READ and WRITE operations on a data segment.
- all READ operations require a shared lock on the data segment while all WRITE operations require an exclusive lock on the data segment. That is, mutual exclusivity permits multiple users to READ the data segment concurrently, and alternatively requires that only one user may WRITE to the data segment at any given time.
- Mutual exclusivity is necessary in this context because it is desirable to exclude READ operations on a data segment while a WRITE operation is modifying that data segment. If, however, READ and WRITE operations were permitted to execute concurrently, the READ processes may receive outdated data that is being concurrently modified by a WRITE operation.
- mutual exclusivity is preferable for data read before a WRITE operation because the age of data read from the data segment can be reconciled with the date of the last WRITE operation on that data segment.
- the system for managing concurrent access requests to a shared resource advantageously provides access, both shared and exclusive, to data when there are a large number of shared lock requests especially in proportion to the number of exclusive lock requests.
- the system achieves a compromise between the shared lock and exclusive lock requests such that all requests are granted in an optimally efficient manner.
- One benefit of some embodiments is that they avoid the problem of starvation caused by systems that implement mutual exclusivity. Starvation occurs when one process indicates an intention to obtain an exclusive lock on a shared resource but can never do so because it is possible for other processes to perpetually obtain shared locks before the exclusive lock is granted. For example, assume that process a, has obtained a shared lock on a shared resource. To satisfy the principle of mutual exclusion, process a 3 , a process that wishes to obtain an exclusive lock, must wait until all processes have terminated their shared lock. Normally, a 3 would be able to obtain an exclusive lock when a, has terminated its shared lock.
- Operation 1 in which process a, calls shared_lock (x), a first-time shared lock
- Operation 2 in which process a 3 calls exclusive_lock (x), an exclusive lock request
- Operation 3 in which process a 2 calls shared_lock (x), a recursive shared lock request, before a 1 calls shared_unlock (x).
- process a 1 is granted a first-time lock and x. shared is incremented to equal 1 (assuming an initialization of 0).
- Operation 2 calls exclusive_lock(x) which puts the exclusive lock request to sleep for as long as x. shared is greater than zero.
- shared_lock (x) before a 1 calls shared_unlock (x)
- x. shared will equal 2 and Operation 2 will have to wait on both a 1 and a 2 to decrement x. shared to zero by calling shared_unlock (x).
- shared_unlock x
- FIG. 1A further illustrates the problem of starvation as it exists in the prior art.
- the vertical axis represents time, and the horizontal access depicts three processes: a 1 , a 2 , and a 3 .
- a 1 and a 2 request only shared locks and a 3 requests only exclusive locks.
- process a 1 requests and obtains a first-time shared lock via subprocess a 1a .
- a process that has no other shared locks will be referred to herein as a first-time shared lock.
- a 1 has a first-time shared lock on the shared resource and x. shared equals one.
- process a 1 requests and receives a second shared lock via subprocess a 1b and x. shared equals 2.
- a process that receives a second, concurrent shared lock will be referred to herein as a recursive lock.
- a 1 has a recursive lock on the shared resource.
- a 3 requests an exclusive lock. Because a shared lock exists on the shared resource, a 3 must wait until all shared locks have terminated before it can obtain its exclusive lock.
- a 1 terminates its recursive lock via a 1b such that x. shared equals 1, and a 1 continues to hold its initial shared lock.
- a 2 requests and obtains a first-time lock via a 2a on the shared resource such that x. shared equals 2.
- a 1 and a 2 have a shared lock on the resource.
- a 1 requests a first-time shared lock via a 1a and a 2 terminates it recursive lock via a 2b such that x. shared equals 2.
- Deadlock occurs when a set of processes are waiting on another process in the set to execute. For example, if the set is comprised of processes P 0 through P n wherein P 0 is waiting on P 1 , P 1 is waiting on P 2 , P 2 is waiting on P 3 , . . . and P n is waiting on P 0 , a deadlock has occurred because no process in the set can execute until the process it is waiting for executes.
- process a 1 Upon execution of Operation 1 , process a 1 is granted a first-time shared lock via subprocess a 1a , and x. shared equals 1 (assuming an initialization of 0).
- Operation 2 calls exclusive_lock(x) which first increments x. exclusive_waiting and then puts the exclusive lock request to sleep for as long as x. shared is greater than zero. In other words, Operation 2 is waiting for Operation 1 to complete execution before it can grant a 3 an exclusive lock and decrement x. exclusive_waiting to zero.
- Operation 3 calls shared_lock (x) which puts a 1b to sleep for as long as x.
- exclusive_waiting is non-zero. In other words, Operation 3 is waiting on Operation 2 to complete execution before it can obtain the recursive lock.
- Operation 1 is waiting on Operation 3 (e.g., shared lock waiting on recursive lock); Operation 2 is waiting on Operation 1 (e.g., exclusive lock waiting on shared lock); and Operation 3 is waiting on Operation 2 (e.g., recursive lock waiting on exclusive lock).
- Operation 3 e.g., shared lock waiting on recursive lock
- Operation 1 is waiting on Operation 3 (e.g., exclusive lock waiting on shared lock)
- Operation 3 is waiting on Operation 2 (e.g., recursive lock waiting on exclusive lock).
- Deadlock decreases system efficiency and requires a system administrator to manually abort one process in the set in order for the other processes in the set to execute.
- FIG. 2 illustrates one embodiment of a state diagram for managing concurrent access requests to a shared resource when one exclusive waiter is present.
- the method transitions the accounting of shared locks on a particular resource between four states: state one 1 ; state two 2 ; state three 3 ; and state four 4 .
- state one 1 State two 2
- state three 3 state three 3
- state four 4 State four 4 .
- the method is initially done in a global count.
- the accounting progressively transitions to a process-specific basis.
- state one 1 no exclusive waiter is present. So long as no exclusive waiter is present, the method remains in state one 1 .
- the method increments the global count to reflect the total number of shared locks on the shared resource but remains in state one 1 .
- the method decrements the global count accordingly and remains in state one 1 .
- the method transitions 7 from state one 1 to state two 2 .
- an exclusive waiter is present, the method increments an exclusive_waiting count.
- an exclusive waiter is present and the global count is non-zero. In this state, an exclusive waiter is put to sleep until an exclusive lock is granted in state four 4 . If the method receives a shared lock request 8 , the per-process count for that process is incremented and the method remains in state two 2 . When a shared lock terminates 9 , the system remains in state two 2 but accounting is determined by whether the per-process count for that process is zero. If the per-process count for that process is zero, the global count is decremented. If, however, the per-process count is non-zero, the per-process count is decremented.
- the per-process count is kept in a hash table. In another embodiment, the per-process count is kept in an existing structure in the kernel. In yet another embodiment, the per-process count is kept in the thread data of a thread implementation. It is recognized that a variety of data structures may be used such as, for example, linked lists, arrays, flat files, binary trees, B trees, queries, databases, and so forth.
- the method transitions 10 from state two 2 to state three 3 .
- state three 3 the exclusive-waiting count is non-zero and the global count is zero.
- the method receives a recursive lock request 11
- the method grants the recursive lock request and increments the per-process count for that process.
- the method receives a first-time lock request 12
- the method denies the first-time lock request, puts the process requesting the first-time lock to sleep, and increments a first-time lock count.
- the method decrements the per-process count.
- first-time and recursive lock requests are determined by the per-process count.
- the method transitions 14 from state three 3 to state four 4 .
- state four 4 the global count is zero and all per-process counts are zero (e.g., no recursive shared locks exist on the shared resource).
- one exclusive lock request is granted.
- the method decrements the exclusive_waiting count. So long as the process owns an exclusive lock on the shared resource, any shared lock requests 32 , first-time and recursive, are deferred and put to sleep. If, after the exclusive lock terminates, no additional exclusive waiters are present, the method transitions 16 from state 4 to state 1 and any deferred shared lock requests are granted.
- the method if another exclusive waiter is present in state four 4 , the method remains in state four 4 and grants the next exclusive lock request only after the preceding exclusive lock is terminated.
- First-time shared locks that were deferred before the exclusive lock was granted remain asleep until all deferred exclusive locks are granted.
- the system transitions from state 4 to state 2 and deferred first-time shared locks are granted while remaining deferred exclusive lock requests remain asleep.
- state one 1 if the global count is zero and the process requests an exclusive lock, the method transitions 17 from state one 1 to state four 4 .
- state one 1 if the global count is zero and the process requests an exclusive lock, the method transitions 17 from state one 1 to state four 4 .
- state four 4 By transitioning 17 directly form state one 1 to state four 4 , the process requesting an exclusive lock is granted an exclusive lock immediately because it is not competing for access to the shared resource.
- FIG. 3 is an illustration of how the state diagram in FIG. 2 , if employed, allocates access to a shared resource.
- the vertical access represents time on the left and the relevant state on the right.
- On the horizontal axis of FIG. 3 are three processes that wish to access the shared resource: processes a 1 , a 2 , and a 3 .
- processes a 1 and a 2 request only shared locks, and process a 3 requests only exclusive locks.
- Within process a 1 are two subprocesses, a 1a and a 1b
- process a 2 are two subprocesses, a 2a and a 2b .
- Subprocesses a 1a and a 2a will only request first-time locks, and subprocesses a 1b and a 2b will only request recursive locks if its paired subprocess already owns a shared lock. Further, the solid lines indicate that a process has a lock on the shared resource, and the dashed lines indicate that the process has been put to sleep after having its lock request deferred.
- process a requests a shared lock 5 via subprocess a 1a and it is granted. Accordingly, the global count, c, is incremented to equal 1.
- the shared lock request is granted due to the method in state one 1 (e.g., no exclusive waiter is present).
- a 1 requests a recursive lock 5 via a 1b and it is granted. Accordingly, the global count is incremented to two.
- process a 1 terminates its recursive 6 lock via a 1b . Consequently, the global count is decremented to equal one.
- process a 3 requests an exclusive lock but the process was put to sleep because process a, has a shared lock.
- an exclusive waiter is present and the exclusive_waiting count, e, is incremented to 1.
- the system transitions 7 to state two 2 and the exclusive_waiting count is incremented.
- state two 2 all shared locks are granted 8 and accounting of shared locks transitions partially to a process-specific counter, the per-process count.
- the per-process count for that shared lock is incremented. If the shared lock is terminated 9 in state two 2 , however, the per-process count is decremented so long as it is non-zero. If, however, the per-process count is zero, then the global count is decremented.
- the method transitions 10 from state two 2 to state three 3 because an exclusive waiter is present and the global count has reached zero.
- state three 3 recursive lock requests 11 are granted and non-recursive shared lock requests 12 are deferred and put to sleep.
- the per-process count is incremented.
- the per-process count is decremented. State three 3 persists until the per-process counts reach zero.
- process a 2 has a shared lock that remains from state two.
- the first-time lock request 13 is deferred and put to sleep.
- process a 2 requests a recursive lock 11 via a 2b .
- the shared lock is granted and the per-process count, 102 , is incremented by one to equal two.
- process a 2 terminates its recursive lock 13 via a 2b and the per-process count for a 2 , lo 2 , is decremented to equal one.
- process a 2 terminates its shared lock 13 via a 2a and lo 2 is decremented to equal zero.
- process a 3 is granted its exclusive lock request.
- the exclusive_waiting count, e is decremented to equal zero.
- process a 2 requests a first-time lock 32 on the shared resource, but the request is deferred because process a 3 has an exclusive lock on the resource. Accordingly, a 2 's first-time lock request 32 via a 2a is put to sleep.
- process a 3 terminates its exclusive lock.
- the method transitions 16 to state one 1 .
- pending shared lock requests 5 including first-time shared lock requests, are granted.
- pending lock requests by a 1 and a 2 are granted 5 and the global count is incremented by two.
- process a 1a terminates its shared lock 6 on the shared resource and the global count is decremented to equal 1.
- FIG. 4A illustrates one embodiment of the access management system for managing concurrent access requests to a shared resource.
- a user 18 is in communication with a computer 24 via a communication medium 19 .
- the computer 24 includes a processor module 20 and a storage device 22 .
- the processor module 20 includes an access management method 21 .
- the storage device 22 is comprised of the access management method 21 .
- the access management method 21 is hardwired to implement the state diagram of FIG. 2
- the access management method 21 is a software code configured to implement the state diagram of FIG. 2
- the access management method 21 is implemented as a combination of software and firmware.
- the storage device 22 includes a shared resource 23 .
- the shared resource 23 can be a shared data segment, a shared database, a shared software process, a shared software application, and so forth.
- the shared resource may be located outside the storage device and may include a shared device (e.g., printer, CD ROM drive, RAM, mouse, keyboard, monitor, etc.).
- the shared resource may be the storage device.
- the user 18 communicates with a computer 24 over a communication medium 19 .
- the access management method 21 implements the state diagram of FIG. 2 .
- the user 18 initiates some action that later triggers a request for access to a shared resource.
- a request to access a shared resource is made without user action.
- the access management method 21 may then effectively control the concurrent shared and exclusive access requests to the shared resource.
- FIG. 4B illustrates another embodiment of the access management system of managing concurrent access requests to a shared resource.
- the processor module 20 contains an access management method 21 .
- the processor module is in communication with computers one through four 24 A-D. In each of these computers is a storage device 21 A-D. In computer three 24 C, the storage device 22 C contains the shared resource 23 .
- the request is first sent to the processor module 20 .
- the request is controlled by the access management method 21 to handle concurrent access requests.
- the storage devices without the shared resource 22 A, 22 B, 22 D can access the shared resource 23 .
- computer three 24 C accesses the shared resource 23 .
- computer three 24 C contains the access management method 21 and communicates directly with processes requesting concurrent access.
- the merge lock process is located on all or a subset of the computers.
- FIG. 5A illustrates a sample hash table for storing process counts.
- the exemplary hash table 26 includes two columns 33 , 34 and a plurality of rows 27 - 31 . Specifically, a process with a shared lock is mapped to an index number 35 and the number of shared locks held by that process is contained in the corresponding process count 36 . In one embodiment, the number of rows in the hash table is statistically determined by the specific application of the system.
- FIG. 5B illustrates a sample hash table with corresponding sample data.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
shared_lock(x) | ||
{ |
lock(x.mutex) | |
while (x.exclusive > 0) |
sleep (x) |
x.shared = x.shared + 1 | |
unlock(x.mutex) |
} | |
shared_unlock(x) | |
{ |
lock(x.mutex) | |
x.shared = x.shared − 1 | |
if (x.shared == 0) |
wakeup (x) |
unlock(x.mutex) |
} | |
exclusive_lock(x) | |
{ |
lock(x.mutex) | |
while (x.exclusive > 0 or x.shared > 0) |
sleep(x) |
x.exclusive = 1 | |
unlock(x.mutex) |
} | |
exclusive_unlock(x) | |
{ |
lock(x.mutex) | |
x.exclusive = 0 | |
wakeup(x) | |
unlock(x.mutex) |
} | ||
shared_lock(x) | ||
{ |
lock(x.mutex) | |
while (x.exclusive > 0 or x.exclusive_waiting > 0) |
sleep (x) |
x.shared = x.shared + 1 | |
unlock(x.mutex) |
} | |
shared_unlock(x) | |
{ |
lock(x.mutex) | |
x.shared = x.shared − 1 | |
if (x.shared == 0) |
wakeup (x) |
unlock(x.mutex) |
} | |
exclusive_lock(x) | |
{ |
lock(x.mutex) | |
x.exclusive_waiting = x.exclusive_waiting + 1 | |
while (x.exclusive > 0 or x.shared > 0) |
sleep(x) |
x.exclusive_waiting = x.exclusive_waiting − 1 | |
x.exclusive = 1 | |
unlock(x.mutex) |
} | |
exclusive_unlock(x) | |
{ |
lock(x.mutex) | |
x.exclusive = 0 | |
wakeup(x) | |
unlock(x.mutex) |
} | ||
Claims (17)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/255,346 US7346720B2 (en) | 2005-10-21 | 2005-10-21 | Systems and methods for managing concurrent access requests to a shared resource |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/255,346 US7346720B2 (en) | 2005-10-21 | 2005-10-21 | Systems and methods for managing concurrent access requests to a shared resource |
Publications (2)
Publication Number | Publication Date |
---|---|
US20070094431A1 US20070094431A1 (en) | 2007-04-26 |
US7346720B2 true US7346720B2 (en) | 2008-03-18 |
Family
ID=37986604
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/255,346 Active 2026-04-12 US7346720B2 (en) | 2005-10-21 | 2005-10-21 | Systems and methods for managing concurrent access requests to a shared resource |
Country Status (1)
Country | Link |
---|---|
US (1) | US7346720B2 (en) |
Cited By (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060095438A1 (en) * | 2004-10-29 | 2006-05-04 | Fachan Neal T | Non-blocking commit protocol systems and methods |
US20060101062A1 (en) * | 2004-10-29 | 2006-05-11 | Godman Peter J | Distributed system with asynchronous execution systems and methods |
US20060136369A1 (en) * | 2004-12-17 | 2006-06-22 | Microsoft Corporation | Method and system for protecting the consistency of information in a distributed file system |
US20060282590A1 (en) * | 2005-05-27 | 2006-12-14 | Kyocera Mita Corporation | Image forming device |
US20070156588A1 (en) * | 2005-12-30 | 2007-07-05 | Microsoft Corporation | Scalable leases |
US20080082533A1 (en) * | 2006-09-28 | 2008-04-03 | Tak Fung Wang | Persistent locks/resources for concurrency control |
US20080184249A1 (en) * | 2007-01-30 | 2008-07-31 | International Business Machines Corporation | System, method and program for managing locks |
US20080184238A1 (en) * | 2007-01-25 | 2008-07-31 | Ruemmler Christopher P | Dynamically controlling the number of busy waiters in a synchronization object |
US20080256545A1 (en) * | 2007-04-13 | 2008-10-16 | Tyler Arthur Akidau | Systems and methods of managing resource utilization on a threaded computer system |
US20090055399A1 (en) * | 2007-08-21 | 2009-02-26 | Qichu Lu | Systems and methods for reading objects in a file system |
US20090210880A1 (en) * | 2007-01-05 | 2009-08-20 | Isilon Systems, Inc. | Systems and methods for managing semantic locks |
US20090252066A1 (en) * | 2005-10-21 | 2009-10-08 | Isilon Systems, Inc. | Systems and methods for providing variable protection |
US20090327218A1 (en) * | 2006-08-18 | 2009-12-31 | Passey Aaron J | Systems and Methods of Reverse Lookup |
US7647443B1 (en) * | 2007-04-13 | 2010-01-12 | American Megatrends, Inc. | Implementing I/O locks in storage systems with reduced memory and performance costs |
US20100064280A1 (en) * | 2008-09-09 | 2010-03-11 | International Business Machines Corporation | Systems and methods for implementing test applications for systems using locks |
US20100122253A1 (en) * | 2008-11-09 | 2010-05-13 | Mccart Perry Benjamin | System, method and computer program product for programming a concurrent software application |
US20100235413A1 (en) * | 2001-08-03 | 2010-09-16 | Isilon Systems, Inc. | Systems and methods for providing a distributed file system utilizing metadata to track information about data stored throughout the system |
US20110016353A1 (en) * | 2005-10-21 | 2011-01-20 | Isilon System, Inc. | Systems and methods for distributed system scanning |
US20110022790A1 (en) * | 2006-08-18 | 2011-01-27 | Isilon Systems, Inc. | Systems and methods for providing nonlinear journaling |
US20110035412A1 (en) * | 2005-10-21 | 2011-02-10 | Isilon Systems, Inc. | Systems and methods for maintaining distributed data |
US20110044209A1 (en) * | 2006-02-17 | 2011-02-24 | Isilon Systems, Inc. | Systems and methods for providing a quiescing protocol |
US7900015B2 (en) | 2007-04-13 | 2011-03-01 | Isilon Systems, Inc. | Systems and methods of quota accounting |
US20110060779A1 (en) * | 2006-12-22 | 2011-03-10 | Isilon Systems, Inc. | Systems and methods of directory entry encodings |
US7917474B2 (en) | 2005-10-21 | 2011-03-29 | Isilon Systems, Inc. | Systems and methods for accessing and updating distributed data |
US20110087635A1 (en) * | 2006-08-18 | 2011-04-14 | Isilon Systems, Inc. | Systems and methods for a snapshot of data |
US20110093745A1 (en) * | 2009-10-20 | 2011-04-21 | Aviad Zlotnick | Systems and methods for implementing test applications for systems using locks |
US7937421B2 (en) | 2002-11-14 | 2011-05-03 | Emc Corporation | Systems and methods for restriping files in a distributed file system |
US20110119234A1 (en) * | 2007-08-21 | 2011-05-19 | Schack Darren P | Systems and methods for adaptive copy on write |
US7949636B2 (en) | 2008-03-27 | 2011-05-24 | Emc Corporation | Systems and methods for a read only mode for a portion of a storage system |
US7949692B2 (en) | 2007-08-21 | 2011-05-24 | Emc Corporation | Systems and methods for portals into snapshot data |
US7953704B2 (en) | 2006-08-18 | 2011-05-31 | Emc Corporation | Systems and methods for a snapshot of data |
US7953709B2 (en) | 2008-03-27 | 2011-05-31 | Emc Corporation | Systems and methods for a read only mode for a portion of a storage system |
US7962779B2 (en) | 2001-08-03 | 2011-06-14 | Emc Corporation | Systems and methods for a distributed file system with data recovery |
US20110153569A1 (en) * | 2006-08-18 | 2011-06-23 | Fachan Neal T | Systems and methods for providing nonlinear journaling |
US7971021B2 (en) | 2008-03-27 | 2011-06-28 | Emc Corporation | Systems and methods for managing stalled storage devices |
US7984324B2 (en) | 2008-03-27 | 2011-07-19 | Emc Corporation | Systems and methods for managing stalled storage devices |
US7996848B1 (en) * | 2006-01-03 | 2011-08-09 | Emc Corporation | Systems and methods for suspending and resuming threads |
US8005865B2 (en) | 2006-03-31 | 2011-08-23 | Emc Corporation | Systems and methods for notifying listeners of events |
US8010493B2 (en) | 2006-08-18 | 2011-08-30 | Emc Corporation | Systems and methods for a snapshot of data |
US8015216B2 (en) | 2007-04-13 | 2011-09-06 | Emc Corporation | Systems and methods of providing possible value ranges |
US8238350B2 (en) | 2004-10-29 | 2012-08-07 | Emc Corporation | Message batching with checkpoints systems and methods |
US8286029B2 (en) | 2006-12-21 | 2012-10-09 | Emc Corporation | Systems and methods for managing unavailable storage devices |
US20160139968A1 (en) * | 2014-11-14 | 2016-05-19 | National Instruments Coporation | Autonomous Instrument Concurrency Management |
US10248471B2 (en) | 2016-09-15 | 2019-04-02 | Oracle International Corporation | Lockless execution in read-mostly workloads for efficient concurrent process execution on shared resources |
US10459810B2 (en) | 2017-07-06 | 2019-10-29 | Oracle International Corporation | Technique for higher availability in a multi-node system using replicated lock information to determine a set of data blocks for recovery |
US11126474B1 (en) * | 2017-06-14 | 2021-09-21 | Amazon Technologies, Inc. | Reducing resource lock time for a virtual processing unit |
US11537430B1 (en) | 2017-09-28 | 2022-12-27 | Amazon Technologies, Inc. | Wait optimizer for recording an order of first entry into a wait mode by a virtual central processing unit |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7386675B2 (en) | 2005-10-21 | 2008-06-10 | Isilon Systems, Inc. | Systems and methods for using excitement values to predict future access to resources |
US7346720B2 (en) | 2005-10-21 | 2008-03-18 | Isilon Systems, Inc. | Systems and methods for managing concurrent access requests to a shared resource |
WO2007083197A1 (en) * | 2006-01-18 | 2007-07-26 | Freescale Semiconductor Inc. | Device having data sharing capabilities and a method for sharing data |
US8104021B2 (en) * | 2006-06-09 | 2012-01-24 | Microsoft Corporation | Verifiable integrity guarantees for machine code programs |
US8539056B2 (en) | 2006-08-02 | 2013-09-17 | Emc Corporation | Systems and methods for configuring multiple network interfaces |
US7680836B2 (en) * | 2006-08-18 | 2010-03-16 | Isilon Systems, Inc. | Systems and methods for a snapshot of data |
US7752402B2 (en) | 2006-08-18 | 2010-07-06 | Isilon Systems, Inc. | Systems and methods for allowing incremental journaling |
US7676691B2 (en) | 2006-08-18 | 2010-03-09 | Isilon Systems, Inc. | Systems and methods for providing nonlinear journaling |
US8041691B2 (en) * | 2007-07-30 | 2011-10-18 | Oracle International Corporation | Acquiring locks in wait mode in a deadlock free manner |
US8250396B2 (en) * | 2008-02-01 | 2012-08-21 | International Business Machines Corporation | Hardware wake-and-go mechanism for a data processing system |
US8341635B2 (en) | 2008-02-01 | 2012-12-25 | International Business Machines Corporation | Hardware wake-and-go mechanism with look-ahead polling |
US8612977B2 (en) * | 2008-02-01 | 2013-12-17 | International Business Machines Corporation | Wake-and-go mechanism with software save of thread state |
US8316218B2 (en) * | 2008-02-01 | 2012-11-20 | International Business Machines Corporation | Look-ahead wake-and-go engine with speculative execution |
US8880853B2 (en) | 2008-02-01 | 2014-11-04 | International Business Machines Corporation | CAM-based wake-and-go snooping engine for waking a thread put to sleep for spinning on a target address lock |
US8452947B2 (en) * | 2008-02-01 | 2013-05-28 | International Business Machines Corporation | Hardware wake-and-go mechanism and content addressable memory with instruction pre-fetch look-ahead to detect programming idioms |
US8516484B2 (en) | 2008-02-01 | 2013-08-20 | International Business Machines Corporation | Wake-and-go mechanism for a data processing system |
US8788795B2 (en) * | 2008-02-01 | 2014-07-22 | International Business Machines Corporation | Programming idiom accelerator to examine pre-fetched instruction streams for multiple processors |
US8640141B2 (en) | 2008-02-01 | 2014-01-28 | International Business Machines Corporation | Wake-and-go mechanism with hardware private array |
US8725992B2 (en) | 2008-02-01 | 2014-05-13 | International Business Machines Corporation | Programming language exposing idiom calls to a programming idiom accelerator |
US8732683B2 (en) | 2008-02-01 | 2014-05-20 | International Business Machines Corporation | Compiler providing idiom to idiom accelerator |
US8015379B2 (en) * | 2008-02-01 | 2011-09-06 | International Business Machines Corporation | Wake-and-go mechanism with exclusive system bus response |
US8386822B2 (en) * | 2008-02-01 | 2013-02-26 | International Business Machines Corporation | Wake-and-go mechanism with data monitoring |
US8171476B2 (en) | 2008-02-01 | 2012-05-01 | International Business Machines Corporation | Wake-and-go mechanism with prioritization of threads |
US8312458B2 (en) | 2008-02-01 | 2012-11-13 | International Business Machines Corporation | Central repository for wake-and-go mechanism |
US8145849B2 (en) * | 2008-02-01 | 2012-03-27 | International Business Machines Corporation | Wake-and-go mechanism with system bus response |
US8225120B2 (en) | 2008-02-01 | 2012-07-17 | International Business Machines Corporation | Wake-and-go mechanism with data exclusivity |
US8127080B2 (en) | 2008-02-01 | 2012-02-28 | International Business Machines Corporation | Wake-and-go mechanism with system address bus transaction master |
US8589358B2 (en) * | 2008-06-26 | 2013-11-19 | Emc Corporation | Mechanisms to share attributes between objects |
US8230201B2 (en) * | 2009-04-16 | 2012-07-24 | International Business Machines Corporation | Migrating sleeping and waking threads between wake-and-go mechanisms in a multiple processor data processing system |
US8886919B2 (en) | 2009-04-16 | 2014-11-11 | International Business Machines Corporation | Remote update programming idiom accelerator with allocated processor resources |
US8145723B2 (en) * | 2009-04-16 | 2012-03-27 | International Business Machines Corporation | Complex remote update programming idiom accelerator |
US8082315B2 (en) * | 2009-04-16 | 2011-12-20 | International Business Machines Corporation | Programming idiom accelerator for remote update |
US8515965B2 (en) * | 2010-05-18 | 2013-08-20 | Lsi Corporation | Concurrent linked-list traversal for real-time hash processing in multi-core, multi-thread network processors |
US9542235B2 (en) | 2010-12-14 | 2017-01-10 | Appsense, Limited | Process-safe read/write locks |
US10725997B1 (en) * | 2012-06-18 | 2020-07-28 | EMC IP Holding Company LLC | Method and systems for concurrent collection and generation of shared data |
US8966147B2 (en) * | 2012-08-22 | 2015-02-24 | Wenguang Wang | Lock leasing method for solving deadlock |
US9612882B2 (en) * | 2014-04-30 | 2017-04-04 | International Business Machines Corporation | Retrieving multi-generational stored data in a dispersed storage network |
CN112148695A (en) * | 2019-06-26 | 2020-12-29 | 华为技术有限公司 | Resource lock management method and device |
CN116934572B (en) * | 2023-09-18 | 2024-03-01 | 荣耀终端有限公司 | Image processing method and apparatus |
Citations (73)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5163131A (en) | 1989-09-08 | 1992-11-10 | Auspex Systems, Inc. | Parallel i/o network file server architecture |
US5258984A (en) | 1991-06-13 | 1993-11-02 | International Business Machines Corporation | Method and means for distributed sparing in DASD arrays |
US5403639A (en) | 1992-09-02 | 1995-04-04 | Storage Technology Corporation | File server having snapshot application data groups |
US5548724A (en) | 1993-03-22 | 1996-08-20 | Hitachi, Ltd. | File server system and file access control method of the same |
US5596709A (en) | 1990-06-21 | 1997-01-21 | International Business Machines Corporation | Method and apparatus for recovering parity protected data |
EP0774723A2 (en) | 1995-11-20 | 1997-05-21 | Matsushita Electric Industrial Co., Ltd. | Virtual file management system |
US5657439A (en) | 1994-08-23 | 1997-08-12 | International Business Machines Corporation | Distributed subsystem sparing |
US5668943A (en) | 1994-10-31 | 1997-09-16 | International Business Machines Corporation | Virtual shared disks with application transparent recovery |
US5734826A (en) | 1991-03-29 | 1998-03-31 | International Business Machines Corporation | Variable cyclic redundancy coding method and apparatus for use in a multistage network |
US5761659A (en) * | 1996-02-29 | 1998-06-02 | Sun Microsystems, Inc. | Method, product, and structure for flexible range locking of read and write requests using shared and exclusive locks, flags, sub-locks, and counters |
US5774643A (en) | 1995-10-13 | 1998-06-30 | Digital Equipment Corporation | Enhanced raid write hole protection and recovery |
US5805900A (en) * | 1996-09-26 | 1998-09-08 | International Business Machines Corporation | Method and apparatus for serializing resource access requests in a multisystem complex |
US5862312A (en) | 1995-10-24 | 1999-01-19 | Seachange Technology, Inc. | Loosely coupled mass storage computer cluster |
US5870563A (en) | 1992-09-19 | 1999-02-09 | International Business Machines Corporation | Method and apparatus for optimizing message transmission |
US5884098A (en) | 1996-04-18 | 1999-03-16 | Emc Corporation | RAID controller system utilizing front end and back end caching systems including communication path connecting two caching systems and synchronizing allocation of blocks in caching systems |
US5933834A (en) | 1997-10-16 | 1999-08-03 | International Business Machines Incorporated | System and method for re-striping a set of objects onto an exploded array of storage units in a computer system |
US5943690A (en) | 1997-04-07 | 1999-08-24 | Sony Corporation | Data storage apparatus and method allocating sets of data |
US6029168A (en) | 1998-01-23 | 2000-02-22 | Tricord Systems, Inc. | Decentralized file mapping in a striped network file system in a distributed computing environment |
US6038570A (en) | 1993-06-03 | 2000-03-14 | Network Appliance, Inc. | Method for allocating files in a file system integrated with a RAID disk sub-system |
US6070172A (en) | 1997-03-06 | 2000-05-30 | Oracle Corporation | On-line free space defragmentation of a contiguous-file file system |
US6081883A (en) | 1997-12-05 | 2000-06-27 | Auspex Systems, Incorporated | Processing system with dynamically allocatable buffer memory |
US6138126A (en) | 1995-05-31 | 2000-10-24 | Network Appliance, Inc. | Method for allocating files in a file system integrated with a raid disk sub-system |
US6154854A (en) | 1990-11-09 | 2000-11-28 | Emc Corporation | Logical partitioning of a redundant array storage system |
WO2001014991A2 (en) | 1999-08-24 | 2001-03-01 | Network Appliance, Inc. | Scalable file server with highly available pairs |
US6209059B1 (en) | 1997-09-25 | 2001-03-27 | Emc Corporation | Method and apparatus for the on-line reconfiguration of the logical volumes of a data storage system |
US6219693B1 (en) | 1997-11-04 | 2001-04-17 | Adaptec, Inc. | File array storage architecture having file system distributed across a data processing platform |
US6321345B1 (en) | 1999-03-01 | 2001-11-20 | Seachange Systems, Inc. | Slow response in redundant arrays of inexpensive disks |
US20010047451A1 (en) | 2000-05-24 | 2001-11-29 | Seagate Technology Llc | Method and apparatus for disc drive defragmentation |
US6334168B1 (en) | 1999-02-19 | 2001-12-25 | International Business Machines Corporation | Method and system for updating data in a data storage system |
US6384626B2 (en) | 2000-07-19 | 2002-05-07 | Micro-Star Int'l Co., Ltd. | Programmable apparatus and method for programming a programmable device |
US6385626B1 (en) | 1998-11-19 | 2002-05-07 | Emc Corporation | Method and apparatus for identifying changes to a logical object based on changes to the logical object at physical level |
US6397311B1 (en) | 1990-01-19 | 2002-05-28 | Texas Instruments Incorporated | System and method for defragmenting a file system |
WO2002061737A2 (en) | 2001-01-29 | 2002-08-08 | Snap Appliance Inc. | Dynamically distributed file system |
US20020124137A1 (en) | 2001-01-29 | 2002-09-05 | Ulrich Thomas R. | Enhancing disk array performance via variable parity based load balancing |
US6449730B2 (en) | 1995-10-24 | 2002-09-10 | Seachange Technology, Inc. | Loosely coupled mass storage computer cluster |
US6457139B1 (en) | 1998-12-30 | 2002-09-24 | Emc Corporation | Method and apparatus for providing a host computer with information relating to the mapping of logical volumes within an intelligent storage system |
US20020138559A1 (en) | 2001-01-29 | 2002-09-26 | Ulrich Thomas R. | Dynamically distributed file system |
US20020156973A1 (en) | 2001-01-29 | 2002-10-24 | Ulrich Thomas R. | Enhanced disk array |
US20020156840A1 (en) | 2001-01-29 | 2002-10-24 | Ulrich Thomas R. | File system metadata |
US20020156891A1 (en) | 2001-01-29 | 2002-10-24 | Ulrich Thomas R. | Enhancing file system performance |
US20020169827A1 (en) | 2001-01-29 | 2002-11-14 | Ulrich Thomas R. | Hot adding file system processors |
US20020191311A1 (en) | 2001-01-29 | 2002-12-19 | Ulrich Thomas R. | Dynamically scalable disk array |
US20020194526A1 (en) | 2001-01-29 | 2002-12-19 | Ulrich Thomas R. | Dynamic redistribution of parity groups |
US20020194523A1 (en) | 2001-01-29 | 2002-12-19 | Ulrich Thomas R. | Replacing file system processors by hot swapping |
US6502172B2 (en) | 1999-03-02 | 2002-12-31 | Via Technologies, Inc. | Memory accessing and controlling unit |
US6502174B1 (en) | 1999-03-03 | 2002-12-31 | International Business Machines Corporation | Method and system for managing meta data |
US20030014391A1 (en) | 2000-03-07 | 2003-01-16 | Evans Paul A | Data distribution |
US20030033308A1 (en) | 2001-08-03 | 2003-02-13 | Patel Sujal M. | System and methods for providing a distributed file system utilizing metadata to track information about data stored throughout the system |
US6526478B1 (en) | 2000-02-02 | 2003-02-25 | Lsi Logic Corporation | Raid LUN creation using proportional disk mapping |
US6546443B1 (en) * | 1999-12-15 | 2003-04-08 | Microsoft Corporation | Concurrency-safe reader-writer lock with time out support |
US6567926B2 (en) | 1995-10-24 | 2003-05-20 | Seachange International, Inc. | Loosely coupled mass storage computer cluster |
US6594660B1 (en) * | 2000-01-24 | 2003-07-15 | Microsoft Corporation | Share latch clearing |
US20030135514A1 (en) | 2001-08-03 | 2003-07-17 | Patel Sujal M. | Systems and methods for providing a distributed file system incorporating a virtual hot spare |
US6598174B1 (en) | 2000-04-26 | 2003-07-22 | Dell Products L.P. | Method and apparatus for storage unit replacement in non-redundant array |
US6618798B1 (en) | 2000-07-11 | 2003-09-09 | International Business Machines Corporation | Method, system, program, and data structures for mapping logical units to a storage space comprises of at least one array of storage units |
US20030172149A1 (en) | 2002-01-23 | 2003-09-11 | Andiamo Systems, A Delaware Corporation | Methods and apparatus for implementing virtualization of storage within a storage area network |
US20040153479A1 (en) | 2002-11-14 | 2004-08-05 | Mikesell Paul A. | Systems and methods for restriping files in a distributed file system |
US20040199734A1 (en) * | 2003-04-03 | 2004-10-07 | Oracle International Corporation | Deadlock resolution through lock requeuing |
US20050114609A1 (en) * | 2003-11-26 | 2005-05-26 | Shorb Charles S. | Computer-implemented system and method for lock handling |
US6934878B2 (en) | 2002-03-22 | 2005-08-23 | Intel Corporation | Failure detection and failure handling in cluster controller networks |
US6940966B2 (en) | 2002-02-21 | 2005-09-06 | Vtech Telecommunications, Ltd. | Method and apparatus for detection of a telephone CPE alerting signal |
US20060004760A1 (en) * | 2004-06-21 | 2006-01-05 | Microsoft Corporation | Method, system, and apparatus for managing access to a data object |
US20060095438A1 (en) | 2004-10-29 | 2006-05-04 | Fachan Neal T | Non-blocking commit protocol systems and methods |
US20060101062A1 (en) | 2004-10-29 | 2006-05-11 | Godman Peter J | Distributed system with asynchronous execution systems and methods |
US20060230411A1 (en) * | 2005-04-12 | 2006-10-12 | Microsoft Corporation | Resource accessing with locking |
US20070094277A1 (en) | 2005-10-21 | 2007-04-26 | Fachan Neal T | Systems and methods for maintaining distributed data |
US20070091790A1 (en) | 2005-10-21 | 2007-04-26 | Passey Aaron J | Systems and methods for providing variable protection |
US20070094269A1 (en) | 2005-10-21 | 2007-04-26 | Mikesell Paul A | Systems and methods for distributed system scanning |
US20070094452A1 (en) | 2005-10-21 | 2007-04-26 | Fachan Neal T | Systems and methods for using excitement values to predict future access to resources |
US20070094431A1 (en) | 2005-10-21 | 2007-04-26 | Fachan Neal T | Systems and methods for managing concurrent access requests to a shared resource |
US20070094310A1 (en) | 2005-10-21 | 2007-04-26 | Passey Aaron J | Systems and methods for accessing and updating distributed data |
US20070171919A1 (en) | 2004-10-29 | 2007-07-26 | Godman Peter J | Message batching with checkpoints systems and methods |
US20070195810A1 (en) | 2006-02-17 | 2007-08-23 | Fachan Neal T | Systems and methods for providing a quiescing protocol |
-
2005
- 2005-10-21 US US11/255,346 patent/US7346720B2/en active Active
Patent Citations (91)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5163131A (en) | 1989-09-08 | 1992-11-10 | Auspex Systems, Inc. | Parallel i/o network file server architecture |
US6397311B1 (en) | 1990-01-19 | 2002-05-28 | Texas Instruments Incorporated | System and method for defragmenting a file system |
US5596709A (en) | 1990-06-21 | 1997-01-21 | International Business Machines Corporation | Method and apparatus for recovering parity protected data |
US6154854A (en) | 1990-11-09 | 2000-11-28 | Emc Corporation | Logical partitioning of a redundant array storage system |
US5734826A (en) | 1991-03-29 | 1998-03-31 | International Business Machines Corporation | Variable cyclic redundancy coding method and apparatus for use in a multistage network |
US5258984A (en) | 1991-06-13 | 1993-11-02 | International Business Machines Corporation | Method and means for distributed sparing in DASD arrays |
US5403639A (en) | 1992-09-02 | 1995-04-04 | Storage Technology Corporation | File server having snapshot application data groups |
US5870563A (en) | 1992-09-19 | 1999-02-09 | International Business Machines Corporation | Method and apparatus for optimizing message transmission |
US5548724A (en) | 1993-03-22 | 1996-08-20 | Hitachi, Ltd. | File server system and file access control method of the same |
US6038570A (en) | 1993-06-03 | 2000-03-14 | Network Appliance, Inc. | Method for allocating files in a file system integrated with a RAID disk sub-system |
US5657439A (en) | 1994-08-23 | 1997-08-12 | International Business Machines Corporation | Distributed subsystem sparing |
US5668943A (en) | 1994-10-31 | 1997-09-16 | International Business Machines Corporation | Virtual shared disks with application transparent recovery |
US6138126A (en) | 1995-05-31 | 2000-10-24 | Network Appliance, Inc. | Method for allocating files in a file system integrated with a raid disk sub-system |
US5774643A (en) | 1995-10-13 | 1998-06-30 | Digital Equipment Corporation | Enhanced raid write hole protection and recovery |
US6574745B2 (en) | 1995-10-24 | 2003-06-03 | Seachange International, Inc. | Loosely coupled mass storage computer cluster |
US6449730B2 (en) | 1995-10-24 | 2002-09-10 | Seachange Technology, Inc. | Loosely coupled mass storage computer cluster |
US6571349B1 (en) | 1995-10-24 | 2003-05-27 | Seachange Technology, Inc. | Loosely coupled mass storage computer cluster |
US5996089A (en) | 1995-10-24 | 1999-11-30 | Seachange International, Inc. | Loosely coupled mass storage computer cluster |
US6557114B2 (en) | 1995-10-24 | 2003-04-29 | Seachange Technology, Inc. | Loosely coupled mass storage computer cluster |
US6567926B2 (en) | 1995-10-24 | 2003-05-20 | Seachange International, Inc. | Loosely coupled mass storage computer cluster |
US5862312A (en) | 1995-10-24 | 1999-01-19 | Seachange Technology, Inc. | Loosely coupled mass storage computer cluster |
EP0774723A2 (en) | 1995-11-20 | 1997-05-21 | Matsushita Electric Industrial Co., Ltd. | Virtual file management system |
US5761659A (en) * | 1996-02-29 | 1998-06-02 | Sun Microsystems, Inc. | Method, product, and structure for flexible range locking of read and write requests using shared and exclusive locks, flags, sub-locks, and counters |
US5884098A (en) | 1996-04-18 | 1999-03-16 | Emc Corporation | RAID controller system utilizing front end and back end caching systems including communication path connecting two caching systems and synchronizing allocation of blocks in caching systems |
US5805900A (en) * | 1996-09-26 | 1998-09-08 | International Business Machines Corporation | Method and apparatus for serializing resource access requests in a multisystem complex |
US6070172A (en) | 1997-03-06 | 2000-05-30 | Oracle Corporation | On-line free space defragmentation of a contiguous-file file system |
US5943690A (en) | 1997-04-07 | 1999-08-24 | Sony Corporation | Data storage apparatus and method allocating sets of data |
US6209059B1 (en) | 1997-09-25 | 2001-03-27 | Emc Corporation | Method and apparatus for the on-line reconfiguration of the logical volumes of a data storage system |
US5933834A (en) | 1997-10-16 | 1999-08-03 | International Business Machines Incorporated | System and method for re-striping a set of objects onto an exploded array of storage units in a computer system |
US6219693B1 (en) | 1997-11-04 | 2001-04-17 | Adaptec, Inc. | File array storage architecture having file system distributed across a data processing platform |
US6081883A (en) | 1997-12-05 | 2000-06-27 | Auspex Systems, Incorporated | Processing system with dynamically allocatable buffer memory |
US6029168A (en) | 1998-01-23 | 2000-02-22 | Tricord Systems, Inc. | Decentralized file mapping in a striped network file system in a distributed computing environment |
US6385626B1 (en) | 1998-11-19 | 2002-05-07 | Emc Corporation | Method and apparatus for identifying changes to a logical object based on changes to the logical object at physical level |
US6457139B1 (en) | 1998-12-30 | 2002-09-24 | Emc Corporation | Method and apparatus for providing a host computer with information relating to the mapping of logical volumes within an intelligent storage system |
US6334168B1 (en) | 1999-02-19 | 2001-12-25 | International Business Machines Corporation | Method and system for updating data in a data storage system |
US6321345B1 (en) | 1999-03-01 | 2001-11-20 | Seachange Systems, Inc. | Slow response in redundant arrays of inexpensive disks |
US6502172B2 (en) | 1999-03-02 | 2002-12-31 | Via Technologies, Inc. | Memory accessing and controlling unit |
US6502174B1 (en) | 1999-03-03 | 2002-12-31 | International Business Machines Corporation | Method and system for managing meta data |
WO2001014991A2 (en) | 1999-08-24 | 2001-03-01 | Network Appliance, Inc. | Scalable file server with highly available pairs |
US6546443B1 (en) * | 1999-12-15 | 2003-04-08 | Microsoft Corporation | Concurrency-safe reader-writer lock with time out support |
US6594660B1 (en) * | 2000-01-24 | 2003-07-15 | Microsoft Corporation | Share latch clearing |
US6526478B1 (en) | 2000-02-02 | 2003-02-25 | Lsi Logic Corporation | Raid LUN creation using proportional disk mapping |
US20030014391A1 (en) | 2000-03-07 | 2003-01-16 | Evans Paul A | Data distribution |
US6598174B1 (en) | 2000-04-26 | 2003-07-22 | Dell Products L.P. | Method and apparatus for storage unit replacement in non-redundant array |
US20010047451A1 (en) | 2000-05-24 | 2001-11-29 | Seagate Technology Llc | Method and apparatus for disc drive defragmentation |
US6618798B1 (en) | 2000-07-11 | 2003-09-09 | International Business Machines Corporation | Method, system, program, and data structures for mapping logical units to a storage space comprises of at least one array of storage units |
US6384626B2 (en) | 2000-07-19 | 2002-05-07 | Micro-Star Int'l Co., Ltd. | Programmable apparatus and method for programming a programmable device |
US20020191311A1 (en) | 2001-01-29 | 2002-12-19 | Ulrich Thomas R. | Dynamically scalable disk array |
US20020161973A1 (en) | 2001-01-29 | 2002-10-31 | Ulrich Thomas R. | Programmable data path accelerator |
US20020169827A1 (en) | 2001-01-29 | 2002-11-14 | Ulrich Thomas R. | Hot adding file system processors |
US20020174296A1 (en) | 2001-01-29 | 2002-11-21 | Ulrich Thomas R. | Disk replacement via hot swapping with variable parity |
US20020174295A1 (en) | 2001-01-29 | 2002-11-21 | Ulrich Thomas R. | Enhanced file system failure tolerance |
US20020178162A1 (en) | 2001-01-29 | 2002-11-28 | Ulrich Thomas R. | Integrated distributed file system with variable parity groups |
US20020156891A1 (en) | 2001-01-29 | 2002-10-24 | Ulrich Thomas R. | Enhancing file system performance |
US20020194526A1 (en) | 2001-01-29 | 2002-12-19 | Ulrich Thomas R. | Dynamic redistribution of parity groups |
US20020194523A1 (en) | 2001-01-29 | 2002-12-19 | Ulrich Thomas R. | Replacing file system processors by hot swapping |
US20020156840A1 (en) | 2001-01-29 | 2002-10-24 | Ulrich Thomas R. | File system metadata |
US20020156974A1 (en) | 2001-01-29 | 2002-10-24 | Ulrich Thomas R. | Redundant dynamically distributed file system |
US20020166079A1 (en) | 2001-01-29 | 2002-11-07 | Ulrich Thomas R. | Dynamic data recovery |
US20020156975A1 (en) | 2001-01-29 | 2002-10-24 | Staub John R. | Interface architecture |
US20020165942A1 (en) | 2001-01-29 | 2002-11-07 | Ulrich Thomas R. | Data path accelerator with variable parity, variable length, and variable extent parity groups |
US20020156973A1 (en) | 2001-01-29 | 2002-10-24 | Ulrich Thomas R. | Enhanced disk array |
US20020138559A1 (en) | 2001-01-29 | 2002-09-26 | Ulrich Thomas R. | Dynamically distributed file system |
US20020124137A1 (en) | 2001-01-29 | 2002-09-05 | Ulrich Thomas R. | Enhancing disk array performance via variable parity based load balancing |
WO2002061737A2 (en) | 2001-01-29 | 2002-08-08 | Snap Appliance Inc. | Dynamically distributed file system |
US20020161846A1 (en) | 2001-01-29 | 2002-10-31 | Ulrich Thomas R. | Data path controller architecture |
US20020161850A1 (en) | 2001-01-29 | 2002-10-31 | Ulrich Thomas R. | Data path accelerator for storage systems |
US20020166026A1 (en) | 2001-01-29 | 2002-11-07 | Ulrich Thomas R. | Data blocking mapping |
US7146524B2 (en) | 2001-08-03 | 2006-12-05 | Isilon Systems, Inc. | Systems and methods for providing a distributed file system incorporating a virtual hot spare |
US20030033308A1 (en) | 2001-08-03 | 2003-02-13 | Patel Sujal M. | System and methods for providing a distributed file system utilizing metadata to track information about data stored throughout the system |
US20060277432A1 (en) | 2001-08-03 | 2006-12-07 | Patel Sujal M | Systems and methods for providing a distributed file system incorporating a virtual hot spare |
US20030135514A1 (en) | 2001-08-03 | 2003-07-17 | Patel Sujal M. | Systems and methods for providing a distributed file system incorporating a virtual hot spare |
US20030172149A1 (en) | 2002-01-23 | 2003-09-11 | Andiamo Systems, A Delaware Corporation | Methods and apparatus for implementing virtualization of storage within a storage area network |
US6940966B2 (en) | 2002-02-21 | 2005-09-06 | Vtech Telecommunications, Ltd. | Method and apparatus for detection of a telephone CPE alerting signal |
US6934878B2 (en) | 2002-03-22 | 2005-08-23 | Intel Corporation | Failure detection and failure handling in cluster controller networks |
US20040153479A1 (en) | 2002-11-14 | 2004-08-05 | Mikesell Paul A. | Systems and methods for restriping files in a distributed file system |
US20040199734A1 (en) * | 2003-04-03 | 2004-10-07 | Oracle International Corporation | Deadlock resolution through lock requeuing |
US20050114609A1 (en) * | 2003-11-26 | 2005-05-26 | Shorb Charles S. | Computer-implemented system and method for lock handling |
US20060004760A1 (en) * | 2004-06-21 | 2006-01-05 | Microsoft Corporation | Method, system, and apparatus for managing access to a data object |
US20060101062A1 (en) | 2004-10-29 | 2006-05-11 | Godman Peter J | Distributed system with asynchronous execution systems and methods |
US20060095438A1 (en) | 2004-10-29 | 2006-05-04 | Fachan Neal T | Non-blocking commit protocol systems and methods |
US20070168351A1 (en) | 2004-10-29 | 2007-07-19 | Fachan Neal T | Non-blocking commit protocol systems and methods |
US20070171919A1 (en) | 2004-10-29 | 2007-07-26 | Godman Peter J | Message batching with checkpoints systems and methods |
US20060230411A1 (en) * | 2005-04-12 | 2006-10-12 | Microsoft Corporation | Resource accessing with locking |
US20070094277A1 (en) | 2005-10-21 | 2007-04-26 | Fachan Neal T | Systems and methods for maintaining distributed data |
US20070091790A1 (en) | 2005-10-21 | 2007-04-26 | Passey Aaron J | Systems and methods for providing variable protection |
US20070094269A1 (en) | 2005-10-21 | 2007-04-26 | Mikesell Paul A | Systems and methods for distributed system scanning |
US20070094452A1 (en) | 2005-10-21 | 2007-04-26 | Fachan Neal T | Systems and methods for using excitement values to predict future access to resources |
US20070094431A1 (en) | 2005-10-21 | 2007-04-26 | Fachan Neal T | Systems and methods for managing concurrent access requests to a shared resource |
US20070094310A1 (en) | 2005-10-21 | 2007-04-26 | Passey Aaron J | Systems and methods for accessing and updating distributed data |
US20070195810A1 (en) | 2006-02-17 | 2007-08-23 | Fachan Neal T | Systems and methods for providing a quiescing protocol |
Non-Patent Citations (48)
Title |
---|
Apr. 20, 2004 International Search Report PCT/US03/36699. |
Arthur S. Rose, Letter to Steven M. Bauer, Aug. 31, 2007. |
Arthur S. Rose, Letter to Steven M. Bauer, Aug. 7, 2006. |
Arthur S. Rose, Letter to Steven M. Bauer, Feb. 23, 2007. |
Arthur S. Rose, Letter to Steven M. Bauer, Jun. 22, 2007. |
Arthur S. Rose, Letter to Steven M. Bauer, Nov. 9, 2006. |
Aug. 6, 2004 International Search Report PCT/US03/33704. |
Birk, Y., Deterministic load-balancing schemes for disk-based video-on-demand storage servers, Mass Storage Systems 1995; Storage-At the Forefront of Information Infrastructures', Proceedings of the Fourteenth IEEE Symposium on Monterey, CA, Sep. 11-14, 1995, pp. 17-25. |
Bob Duzett, et al., An Overview of the nCube 3 Supercomputer, IEEE, Jul. 1992, pp. 458-464. |
Byteandswitch, "Discovery Chooses Isilon," Apr. 23, 2007, 1. |
Coulouris et al., Distributed Systems Concepts and Design, Addison-Wesley, Second Edition, 1994, pp. 353-371 and 377-405. |
Coulouris et al.; "Distributed Systems Concepts and Design"; Addison-Wesley; Second Edition; 1994; pp. 353-371 and 377-405. * |
Darrell D.E. Long et al., Swift/RAID: A Distributed RAID System, Computing Systems, vol. 7, No. 3 Summer 1994, pp. 333-359. |
European Search Report dated May 21, 2007 issued to EP application No. 02756944.1-2201. |
Gerhard Weikum, et al., Transactional Information Systems: Theory, Algorithms, and the Practice of Concurrency Control and Recovery, Morgan Kaufmann, 2002, pp. 1-450. |
Gerhard Weikum, et al., Transactional Information Systems: Theory, Algorithms, and the Practice of Concurrency Control and Recovery, Morgan Kaufmann, 2002, pp. 451-863. |
Gibson, Garth A. et al., The Scotch Parallel Storage System, IEEE, 1995, pp. 403-410. |
Isilon Systems, "Isilon IQ Platform Overview", 1-4. |
Isilon Systems, "Uncompromising Reliability through Clustered Storage", Sep. 2006, 1-10. |
Jim Gray and Andreas Reuter, Transaction Processing: Concepts and Techniques, Morgan Kaufmann, 1993, pp. 1-328. |
Jim Gray and Andreas Reuter, Transaction Processing: Concepts and Techniques, Morgan Kaufmann, 1993, pp. 329-664. |
Jim Gray and Andreas Reuter, Transaction Processing: Concepts and Techniques, Morgan Kaufmann, 1993, pp. 665-1105. |
John Henry Hartman, The Zebra Striped Network File System, 1994, pp. 1-148, University of California at Berkeley. |
Kenneth P. Birman, Building Secure and Reliable Network Applications, Manning, 1996, pp. 1-327. |
Kenneth P. Birman, Building Secure and Reliable Network Applications, Manning, 1996, pp. 328-620. |
Michael Stonebraker et al., Distributed Raid: A new Multiple copy Algorithm, IEEE 1990, pp. 430-437, Berkeley, California. |
Nancy A. Lynch, Distributed Algorithms, Morgan Kaufmann, 1996, pp. 1-409. |
Nancy A. Lynch, Distributed Algorithms, Morgan Kaufmann, 1996, pp. 410-871. |
Nov. 15, 2002 International Search Report PCT/US02/24728. |
Pei Cao et al., The TickerTAIP parallel RAID architecture, 1993, 12 pages, Princeton, NJ. |
Pei Cao et al., The TickerTAIP parallel RAID architecture, ACM Transactions on Computer Systems, vol. 12, No. 3, Aug. 1994, 34 pages, Palto Alto, California. |
Philip A. Bernstein, Vassos Hadzilacos, and Nathan Goodman, Concurrency Control and Recovery in Database Systems, Addison-Wesley, 1987. |
Sanjay Ghemawat et al., The Google File System, Symposium on Operating Systems Principles, Oct. 19-22, 2003, 15 pages, Bolton Landing, NY. |
Sape Mullender, editor, Distributed Systems (2<SUP>nd </SUP>Ed.), ACM Press/Addison-Wesley Publishing Co., New York, NY, USA, 1993, pp. 1-327. |
Sape Mullender, editor, Distributed Systems (2<SUP>nd </SUP>Ed.), ACM Press/Addison-Wesley Publishing Co., New York, NY, USA, 1993, pp. 328-604. |
Stallings, William, "Operating Systems," Prentice Hall, Fourth Edition, 2001, pp. 197-253 and 265-293. |
Stallings, William; "Operating Systems"; Prentice Hall; Fourth Edition; 2001; pp. 197-253 and 265-293. * |
Steven M. Bauer, Letter to Arthur S. Rose, Feb. 6, 2007. |
Steven M. Bauer, Letter to Arthur S. Rose, Jun. 7, 2007 (including claim chart). |
Steven M. Bauer, Letter to Arthur S. Rose, Oct. 31, 2006. |
Steven M. Bauer, Letter to Arthur S. Rose, Sep. 25, 2006. |
Steven M. Bauer, Letter to Steve Goldman, Jul. 31, 2006 (including the first pages of the patents). |
Taneja Group Technology Analysts, "The Power of InfiniBand and Clustered Storage", Dec. 2005, 1-8. |
Todd A. Gerety, Letter to Arthur S. Rose, Jun. 26, 2007 (including exhibits listed separately). |
United States Court of Appeals, Federal Circuit, Seachange International, Inc. Vs. C-Cor, Inc., Jun. 29, 2005, 22 pages. |
United States Court of Appeals, Federal Circuit, Seachange International, Inc. Vs. nCUBE, Corp., Oct. 26, 2004, 28 pages. |
United States District Court, Delaware, Seachange International, Inc. Vs. nCUBE, Corp., Apr. 7, 2004, 13 pages. |
United States District Court, Delaware, Seachange International, Inc. Vs. nCUBE, Corp., Aug. 29, 2000, 12 pages. |
Cited By (74)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8112395B2 (en) | 2001-08-03 | 2012-02-07 | Emc Corporation | Systems and methods for providing a distributed file system utilizing metadata to track information about data stored throughout the system |
US7962779B2 (en) | 2001-08-03 | 2011-06-14 | Emc Corporation | Systems and methods for a distributed file system with data recovery |
US20100235413A1 (en) * | 2001-08-03 | 2010-09-16 | Isilon Systems, Inc. | Systems and methods for providing a distributed file system utilizing metadata to track information about data stored throughout the system |
US7937421B2 (en) | 2002-11-14 | 2011-05-03 | Emc Corporation | Systems and methods for restriping files in a distributed file system |
US8140623B2 (en) | 2004-10-29 | 2012-03-20 | Emc Corporation | Non-blocking commit protocol systems and methods |
US20060101062A1 (en) * | 2004-10-29 | 2006-05-11 | Godman Peter J | Distributed system with asynchronous execution systems and methods |
US8055711B2 (en) | 2004-10-29 | 2011-11-08 | Emc Corporation | Non-blocking commit protocol systems and methods |
US20060095438A1 (en) * | 2004-10-29 | 2006-05-04 | Fachan Neal T | Non-blocking commit protocol systems and methods |
US20070168351A1 (en) * | 2004-10-29 | 2007-07-19 | Fachan Neal T | Non-blocking commit protocol systems and methods |
US8238350B2 (en) | 2004-10-29 | 2012-08-07 | Emc Corporation | Message batching with checkpoints systems and methods |
US8051425B2 (en) | 2004-10-29 | 2011-11-01 | Emc Corporation | Distributed system with asynchronous execution systems and methods |
US7783664B2 (en) | 2004-12-17 | 2010-08-24 | Microsoft Corporation | Method and system for protecting the consistency of information in a distributed file system |
US20060136369A1 (en) * | 2004-12-17 | 2006-06-22 | Microsoft Corporation | Method and system for protecting the consistency of information in a distributed file system |
US20060282590A1 (en) * | 2005-05-27 | 2006-12-14 | Kyocera Mita Corporation | Image forming device |
US8054765B2 (en) | 2005-10-21 | 2011-11-08 | Emc Corporation | Systems and methods for providing variable protection |
US7917474B2 (en) | 2005-10-21 | 2011-03-29 | Isilon Systems, Inc. | Systems and methods for accessing and updating distributed data |
US8176013B2 (en) | 2005-10-21 | 2012-05-08 | Emc Corporation | Systems and methods for accessing and updating distributed data |
US8214334B2 (en) | 2005-10-21 | 2012-07-03 | Emc Corporation | Systems and methods for distributed system scanning |
US8214400B2 (en) | 2005-10-21 | 2012-07-03 | Emc Corporation | Systems and methods for maintaining distributed data |
US20110016353A1 (en) * | 2005-10-21 | 2011-01-20 | Isilon System, Inc. | Systems and methods for distributed system scanning |
US20110035412A1 (en) * | 2005-10-21 | 2011-02-10 | Isilon Systems, Inc. | Systems and methods for maintaining distributed data |
US20090252066A1 (en) * | 2005-10-21 | 2009-10-08 | Isilon Systems, Inc. | Systems and methods for providing variable protection |
US20110145195A1 (en) * | 2005-10-21 | 2011-06-16 | Isilon Systems, Inc. | Systems and methods for accessing and updating distributed data |
US7650514B2 (en) * | 2005-12-30 | 2010-01-19 | Microsoft Corporation | Scalable leases |
US20070156588A1 (en) * | 2005-12-30 | 2007-07-05 | Microsoft Corporation | Scalable leases |
US7996848B1 (en) * | 2006-01-03 | 2011-08-09 | Emc Corporation | Systems and methods for suspending and resuming threads |
US20110044209A1 (en) * | 2006-02-17 | 2011-02-24 | Isilon Systems, Inc. | Systems and methods for providing a quiescing protocol |
US8625464B2 (en) | 2006-02-17 | 2014-01-07 | Emc Corporation | Systems and methods for providing a quiescing protocol |
US8005865B2 (en) | 2006-03-31 | 2011-08-23 | Emc Corporation | Systems and methods for notifying listeners of events |
US7953704B2 (en) | 2006-08-18 | 2011-05-31 | Emc Corporation | Systems and methods for a snapshot of data |
US20110022790A1 (en) * | 2006-08-18 | 2011-01-27 | Isilon Systems, Inc. | Systems and methods for providing nonlinear journaling |
US8380689B2 (en) | 2006-08-18 | 2013-02-19 | Emc Corporation | Systems and methods for providing nonlinear journaling |
US8356013B2 (en) | 2006-08-18 | 2013-01-15 | Emc Corporation | Systems and methods for a snapshot of data |
US8356150B2 (en) | 2006-08-18 | 2013-01-15 | Emc Corporation | Systems and methods for providing nonlinear journaling |
US20110087635A1 (en) * | 2006-08-18 | 2011-04-14 | Isilon Systems, Inc. | Systems and methods for a snapshot of data |
US20090327218A1 (en) * | 2006-08-18 | 2009-12-31 | Passey Aaron J | Systems and Methods of Reverse Lookup |
US8027984B2 (en) | 2006-08-18 | 2011-09-27 | Emc Corporation | Systems and methods of reverse lookup |
US8010493B2 (en) | 2006-08-18 | 2011-08-30 | Emc Corporation | Systems and methods for a snapshot of data |
US20110153569A1 (en) * | 2006-08-18 | 2011-06-23 | Fachan Neal T | Systems and methods for providing nonlinear journaling |
US20080082533A1 (en) * | 2006-09-28 | 2008-04-03 | Tak Fung Wang | Persistent locks/resources for concurrency control |
US8286029B2 (en) | 2006-12-21 | 2012-10-09 | Emc Corporation | Systems and methods for managing unavailable storage devices |
US8060521B2 (en) | 2006-12-22 | 2011-11-15 | Emc Corporation | Systems and methods of directory entry encodings |
US20110060779A1 (en) * | 2006-12-22 | 2011-03-10 | Isilon Systems, Inc. | Systems and methods of directory entry encodings |
US20090210880A1 (en) * | 2007-01-05 | 2009-08-20 | Isilon Systems, Inc. | Systems and methods for managing semantic locks |
US8082379B2 (en) | 2007-01-05 | 2011-12-20 | Emc Corporation | Systems and methods for managing semantic locks |
US20080184238A1 (en) * | 2007-01-25 | 2008-07-31 | Ruemmler Christopher P | Dynamically controlling the number of busy waiters in a synchronization object |
US8020166B2 (en) * | 2007-01-25 | 2011-09-13 | Hewlett-Packard Development Company, L.P. | Dynamically controlling the number of busy waiters in a synchronization object |
US20080184249A1 (en) * | 2007-01-30 | 2008-07-31 | International Business Machines Corporation | System, method and program for managing locks |
US7500037B2 (en) * | 2007-01-30 | 2009-03-03 | International Business Machines Corporation | System, method and program for managing locks |
US20110113211A1 (en) * | 2007-04-13 | 2011-05-12 | Isilon Systems, Inc. | Systems and methods of quota accounting |
US7647443B1 (en) * | 2007-04-13 | 2010-01-12 | American Megatrends, Inc. | Implementing I/O locks in storage systems with reduced memory and performance costs |
US8966080B2 (en) | 2007-04-13 | 2015-02-24 | Emc Corporation | Systems and methods of managing resource utilization on a threaded computer system |
US7900015B2 (en) | 2007-04-13 | 2011-03-01 | Isilon Systems, Inc. | Systems and methods of quota accounting |
US8015216B2 (en) | 2007-04-13 | 2011-09-06 | Emc Corporation | Systems and methods of providing possible value ranges |
US8195905B2 (en) | 2007-04-13 | 2012-06-05 | Emc Corporation | Systems and methods of quota accounting |
US20080256545A1 (en) * | 2007-04-13 | 2008-10-16 | Tyler Arthur Akidau | Systems and methods of managing resource utilization on a threaded computer system |
US20110119234A1 (en) * | 2007-08-21 | 2011-05-19 | Schack Darren P | Systems and methods for adaptive copy on write |
US7966289B2 (en) | 2007-08-21 | 2011-06-21 | Emc Corporation | Systems and methods for reading objects in a file system |
US20090055399A1 (en) * | 2007-08-21 | 2009-02-26 | Qichu Lu | Systems and methods for reading objects in a file system |
US8200632B2 (en) | 2007-08-21 | 2012-06-12 | Emc Corporation | Systems and methods for adaptive copy on write |
US7949692B2 (en) | 2007-08-21 | 2011-05-24 | Emc Corporation | Systems and methods for portals into snapshot data |
US7953709B2 (en) | 2008-03-27 | 2011-05-31 | Emc Corporation | Systems and methods for a read only mode for a portion of a storage system |
US7971021B2 (en) | 2008-03-27 | 2011-06-28 | Emc Corporation | Systems and methods for managing stalled storage devices |
US7949636B2 (en) | 2008-03-27 | 2011-05-24 | Emc Corporation | Systems and methods for a read only mode for a portion of a storage system |
US7984324B2 (en) | 2008-03-27 | 2011-07-19 | Emc Corporation | Systems and methods for managing stalled storage devices |
US20100064280A1 (en) * | 2008-09-09 | 2010-03-11 | International Business Machines Corporation | Systems and methods for implementing test applications for systems using locks |
US20100122253A1 (en) * | 2008-11-09 | 2010-05-13 | Mccart Perry Benjamin | System, method and computer program product for programming a concurrent software application |
US20110093745A1 (en) * | 2009-10-20 | 2011-04-21 | Aviad Zlotnick | Systems and methods for implementing test applications for systems using locks |
US20160139968A1 (en) * | 2014-11-14 | 2016-05-19 | National Instruments Coporation | Autonomous Instrument Concurrency Management |
US10089157B2 (en) * | 2014-11-14 | 2018-10-02 | National Instruments Corporation | Autonomous management of concurrent servicing of multiple clients by an instrument |
US10248471B2 (en) | 2016-09-15 | 2019-04-02 | Oracle International Corporation | Lockless execution in read-mostly workloads for efficient concurrent process execution on shared resources |
US11126474B1 (en) * | 2017-06-14 | 2021-09-21 | Amazon Technologies, Inc. | Reducing resource lock time for a virtual processing unit |
US10459810B2 (en) | 2017-07-06 | 2019-10-29 | Oracle International Corporation | Technique for higher availability in a multi-node system using replicated lock information to determine a set of data blocks for recovery |
US11537430B1 (en) | 2017-09-28 | 2022-12-27 | Amazon Technologies, Inc. | Wait optimizer for recording an order of first entry into a wait mode by a virtual central processing unit |
Also Published As
Publication number | Publication date |
---|---|
US20070094431A1 (en) | 2007-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7346720B2 (en) | Systems and methods for managing concurrent access requests to a shared resource | |
US6144983A (en) | Method and apparatus for dynamic lock granularity escalation and de-escalation in a computer system | |
EP0428006B1 (en) | Multilevel locking system and method | |
US6850938B1 (en) | Method and apparatus providing optimistic locking of shared computer resources | |
US6223200B1 (en) | System and method for reducing research time through a lock wait matrix | |
US8286182B2 (en) | Method and system for deadlock detection in a distributed environment | |
US8082379B2 (en) | Systems and methods for managing semantic locks | |
US8195702B2 (en) | Online index builds and rebuilds without blocking locks | |
US7680794B2 (en) | Neighboring locking technique for increasing concurrency among transactions | |
KR100877319B1 (en) | Managing locks and transactions | |
US6678802B2 (en) | Method and apparatus for controlling access by a plurality of concurrently operating processes to a resource | |
US8688736B2 (en) | Determining accessibility of database objects with multiple parents | |
US7685124B2 (en) | Systems and methods for performing authorization | |
KR20010005570A (en) | An agent-implemented locking mechanism | |
US20100281060A1 (en) | Type system for access control lists | |
WO2007095083A1 (en) | Anticipatory changes to resources managed by locks | |
US20020007408A1 (en) | Resource management | |
US20050234989A1 (en) | System and method for database lock with reference counting | |
US7260831B1 (en) | Method and system for authorization and access to protected resources | |
US11138226B2 (en) | Moving replicated data in a cloud environment | |
CN109784045B (en) | Dual system communication access control method and computer readable storage medium | |
US7305468B2 (en) | Suspension and reinstatement of reference handles | |
US20240176775A1 (en) | Datastore workload isolation | |
Warner et al. | The impact of multilevel security on database buffer management | |
JP3747477B2 (en) | Exclusive control method and system for realizing the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: ISILON SYSTEMS, INC., WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:FACHAN, NEAL T.;REEL/FRAME:017424/0123 Effective date: 20060103 |
|
AS | Assignment |
Owner name: HORIZON TECHNOLOGY FUNDING COMPANY LLC,CONNECTICUT Free format text: SECURITY AGREEMENT;ASSIGNOR:ISILON SYSTEMS, INC.;REEL/FRAME:018613/0916 Effective date: 20060322 Owner name: HORIZON TECHNOLOGY FUNDING COMPANY LLC, CONNECTICU Free format text: SECURITY AGREEMENT;ASSIGNOR:ISILON SYSTEMS, INC.;REEL/FRAME:018613/0916 Effective date: 20060322 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
CC | Certificate of correction | ||
AS | Assignment |
Owner name: ISILON SYSTEMS, INC., WASHINGTON Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:HORIZON TECHNOLOGY FUNDING COMPANY LLC;REEL/FRAME:025173/0542 Effective date: 20101015 |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
AS | Assignment |
Owner name: ISILON SYSTEMS LLC, WASHINGTON Free format text: MERGER;ASSIGNOR:ISILON SYSTEMS, INC.;REEL/FRAME:026066/0785 Effective date: 20101229 |
|
AS | Assignment |
Owner name: IVY HOLDING, INC., MASSACHUSETTS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ISILON SYSTEMS LLC;REEL/FRAME:026069/0925 Effective date: 20101229 |
|
AS | Assignment |
Owner name: EMC CORPORATION, MASSACHUSETTS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:IVY HOLDING, INC.;REEL/FRAME:026083/0036 Effective date: 20101231 |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
AS | Assignment |
Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT, TEXAS Free format text: SECURITY AGREEMENT;ASSIGNORS:ASAP SOFTWARE EXPRESS, INC.;AVENTAIL LLC;CREDANT TECHNOLOGIES, INC.;AND OTHERS;REEL/FRAME:040136/0001 Effective date: 20160907 Owner name: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT, NORTH CAROLINA Free format text: SECURITY AGREEMENT;ASSIGNORS:ASAP SOFTWARE EXPRESS, INC.;AVENTAIL LLC;CREDANT TECHNOLOGIES, INC.;AND OTHERS;REEL/FRAME:040134/0001 Effective date: 20160907 Owner name: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLAT Free format text: SECURITY AGREEMENT;ASSIGNORS:ASAP SOFTWARE EXPRESS, INC.;AVENTAIL LLC;CREDANT TECHNOLOGIES, INC.;AND OTHERS;REEL/FRAME:040134/0001 Effective date: 20160907 Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., A Free format text: SECURITY AGREEMENT;ASSIGNORS:ASAP SOFTWARE EXPRESS, INC.;AVENTAIL LLC;CREDANT TECHNOLOGIES, INC.;AND OTHERS;REEL/FRAME:040136/0001 Effective date: 20160907 |
|
AS | Assignment |
Owner name: EMC IP HOLDING COMPANY LLC, MASSACHUSETTS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:EMC CORPORATION;REEL/FRAME:040203/0001 Effective date: 20160906 |
|
AS | Assignment |
Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., T Free format text: SECURITY AGREEMENT;ASSIGNORS:CREDANT TECHNOLOGIES, INC.;DELL INTERNATIONAL L.L.C.;DELL MARKETING L.P.;AND OTHERS;REEL/FRAME:049452/0223 Effective date: 20190320 Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., TEXAS Free format text: SECURITY AGREEMENT;ASSIGNORS:CREDANT TECHNOLOGIES, INC.;DELL INTERNATIONAL L.L.C.;DELL MARKETING L.P.;AND OTHERS;REEL/FRAME:049452/0223 Effective date: 20190320 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 12 |
|
AS | Assignment |
Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., TEXAS Free format text: SECURITY AGREEMENT;ASSIGNORS:CREDANT TECHNOLOGIES INC.;DELL INTERNATIONAL L.L.C.;DELL MARKETING L.P.;AND OTHERS;REEL/FRAME:053546/0001 Effective date: 20200409 |
|
AS | Assignment |
Owner name: WYSE TECHNOLOGY L.L.C., CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: SCALEIO LLC, MASSACHUSETTS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: MOZY, INC., WASHINGTON Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: MAGINATICS LLC, CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: FORCE10 NETWORKS, INC., CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: EMC IP HOLDING COMPANY LLC, TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: EMC CORPORATION, MASSACHUSETTS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: DELL SYSTEMS CORPORATION, TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: DELL SOFTWARE INC., CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: DELL PRODUCTS L.P., TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: DELL MARKETING L.P., TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: DELL INTERNATIONAL, L.L.C., TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: DELL USA L.P., TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: CREDANT TECHNOLOGIES, INC., TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: AVENTAIL LLC, CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: ASAP SOFTWARE EXPRESS, INC., ILLINOIS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 |
|
AS | Assignment |
Owner name: SCALEIO LLC, MASSACHUSETTS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001 Effective date: 20220329 Owner name: EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.), TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001 Effective date: 20220329 Owner name: EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC), MASSACHUSETTS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001 Effective date: 20220329 Owner name: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.), TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001 Effective date: 20220329 Owner name: DELL PRODUCTS L.P., TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001 Effective date: 20220329 Owner name: DELL INTERNATIONAL L.L.C., TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001 Effective date: 20220329 Owner name: DELL USA L.P., TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001 Effective date: 20220329 Owner name: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.), TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001 Effective date: 20220329 Owner name: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.), TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001 Effective date: 20220329 |
|
AS | Assignment |
Owner name: SCALEIO LLC, MASSACHUSETTS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001 Effective date: 20220329 Owner name: EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.), TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001 Effective date: 20220329 Owner name: EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC), MASSACHUSETTS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001 Effective date: 20220329 Owner name: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.), TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001 Effective date: 20220329 Owner name: DELL PRODUCTS L.P., TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001 Effective date: 20220329 Owner name: DELL INTERNATIONAL L.L.C., TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001 Effective date: 20220329 Owner name: DELL USA L.P., TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001 Effective date: 20220329 Owner name: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.), TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001 Effective date: 20220329 Owner name: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.), TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001 Effective date: 20220329 |