US9734157B1 - Method for sub-block operations on a journal block using ranged locking - Google Patents
Method for sub-block operations on a journal block using ranged locking Download PDFInfo
- Publication number
- US9734157B1 US9734157B1 US14/585,992 US201414585992A US9734157B1 US 9734157 B1 US9734157 B1 US 9734157B1 US 201414585992 A US201414585992 A US 201414585992A US 9734157 B1 US9734157 B1 US 9734157B1
- Authority
- US
- United States
- Prior art keywords
- subset
- btl
- sub block
- block ranges
- journal
- 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
- 238000000034 method Methods 0.000 title claims description 56
- 230000004044 response Effects 0.000 claims description 8
- 230000008569 process Effects 0.000 description 23
- 201000011059 lobular neoplasia Diseases 0.000 description 19
- 230000001427 coherent effect Effects 0.000 description 13
- 238000012545 processing Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 238000013500 data storage Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
- G06F16/1767—Concurrency control, e.g. optimistic or pessimistic approaches
- G06F16/1774—Locking methods, e.g. locking methods for file systems allowing shared and concurrent access to files
-
- G06F17/30171—
-
- G06F17/3033—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
Definitions
- This invention relates generally to processing data, and more particularly to systems and methods for multiple concurrent cursors for file repair within large scale storage systems.
- An example distributed file system is one that is distributed across multiple nodes in a cluster of nodes.
- An individual node can encompass a set of storage drives capable of storing data accessible by clients of the clusters of nodes.
- files or objects can striped across different physical storage devices in a single node or across multiple nodes of a cluster.
- multiple clients capable of interacting and requesting operations on files to multiple nodes many times there are operations that are executed by multiple threads, processes and applications distributed across one or more nodes. For example, more than one thread or process may demand to concurrently write data to the same file in a file system.
- File system locks can be used that allow one client to access data under locking conditions that prevent another client from performing certain operations on the locked data. For example, readers usually use locks that prevent the file from changing while the file is being read. And, because readers will not change a file there may be multiple readers of a file each holding a lock preventing the file from being altered during while being read. Writers usually use locks that are exclusive so the writer can alter the file without being concerned about the actions of other writers or readers. Accordingly, if writers attempt to write to a file, writers must wait until other lock-holders (e.g., readers or writers) have finished with the file and have released their locks. If all locks are released a writer can then obtain its own exclusive lock for writing to the file.
- readers usually use locks that prevent the file from changing while the file is being read. And, because readers will not change a file there may be multiple readers of a file each holding a lock preventing the file from being altered during while being read.
- Writers usually use locks that are exclusive so the writer can alter the file without being concerned
- a journal can be used as a means to provide more guarantees for requested operations, by first having the operations logged into a journal, (e.g., an in-memory storage space such as a cache or a buffer cache), and then later committing the operations logged in the journal to stable disk storage.
- a journal e.g., an in-memory storage space such as a cache or a buffer cache
- Most entries in a journal involve either file data blocks or metadata blocks.
- journal entries such as those relating to metadata blocks
- a journal entry only relates to a small portion or a small set of sub-blocks of a metadata block.
- a lock may have to be used on the entire block prohibiting other operations from being processed on sub block unrelated to the journal entry in question.
- a journal of a set of transactions to be committed to stable storage of a file system can be maintained, wherein the set of transactions are associated with a set of delta fields associated with a logical inode (“LIN”) of the file system.
- a ranged BTL hash table can be maintained wherein the ranged BTL hash table tracks locking states of a set of sub block ranges associated with the set of delta fields associated with the LIN.
- a first write transaction associated with a first subset of the set of sub block ranges associated with the set of delta fields can be received. The first write transaction can be stored in the journal.
- a first shared lock can be established on the set of the delta fields.
- a first BTL can be established on the first subset of the set of sub block ranges, wherein establishing the BTL includes updating the ranged BTL hash table to indicate the first BTL on the first subset of the set of sub block ranges.
- a second write transaction associated with a second subset of the set of sub block ranges associated with the set of delta fields can be received, wherein the second subset of the set of sub block ranges and the first subset of the set of sub block ranges do not intersect.
- the second write transaction can be stored in the journal.
- a second shared lock can be established on the set of the delta fields.
- a second BTL can be established on the second subset of the set of sub block ranges, wherein establishing the second BTL includes updating the ranged BTL hash table to indicate a second BTL on the second subset of the set of sub block ranges.
- the first write transaction can be committed from the journal to stable storage and the second write transaction from the journal to stable storage wherein committing the first write transaction and committing the second write transaction occur independently and concurrently.
- FIG. 1 illustrates an example method for processing a first write request associated with a sub block range of a data structure in accordance with implementations of this disclosure
- FIG. 2 illustrates an example method for concurrently processing two non-intersecting write requests to the same data block in accordance with implementations of this disclosure
- FIG. 3 illustrates an example method for processing two intersecting write requests to the same data block in accordance with implementations of this disclosure
- FIG. 4 illustrates an example method for processing a read request with a pending write request to the same data block in accordance with implementations of this disclosure
- FIG. 5 illustrates an example block diagram of a cluster of nodes in accordance with implementations of this disclosure.
- FIG. 6 illustrates an example block diagram of a node in accordance with implementations of this disclosure.
- LIN logical inode
- inode refers to in-memory representation of on-disk data structures that may store information, or meta-data, about files and directories, such as file size, file ownership, access mode (read, write, execute permissions), time and date of creation and modification, file types, data protection process information, etc.
- LIN's may be in a known location in a file system, for example, residing in cache memory for fast and/or efficient access by the file system.
- the system call Before or in conjunction with performing a file system operation on a file or directory, the system call may access the contents of the LIN and/or the contents of the file in determining how to process the system call.
- a data structure explicitly named “inode” or LIN may be absent, but file systems may have data structures that store data similar to LINs and may provide capabilities similar to LINs as described herein. It can be appreciated that the concepts and implementations as provided herein are functional using data structures not termed LINs or inodes but that offer the same functionality to the file system.
- “Delta data” as used herein, refers to data elements, fields, or ranges, of a data structure where updates to such data may be recorded in a journaling system rather than being applied directly to actual instance of the data structure.
- Example delta fields of a metadata structure include block type, block counts, inode identifier, last modified timestamp, etc.
- Delta fields can also be established in custom data structures, such as fields within a “Mirrored Data Structure” (“MDS”) extension block header relating to multiple cursors used to restripe data in a distributed file system. Another example of an MDS is a B-tree.
- Delta fields can be customized to be 1, 2, 4 or 8 bytes. It can be appreciated that a single delta field, for example, an 8 byte delta field, in a file system that maintains 8 kilobyte data blocks, is a small sub-block range of the data block itself.
- Non-delta data refers to data elements, fields, or ranges, of a data structure where updates to such data may be applied directly to an instance of the data structure rather than recorded as journal deltas. It can be appreciated that a single data structure can have both non-delta data fields and delta data fields.
- journal deltas refers to entries or records stored in a journaling system that may record or track changes made to the delta data of a data structure instance.
- Coherent read refers to a read where the exact coherent value of all data fields of a block at a specific moment in time is requested by a client, process, thread, etc.
- “Incoherent read” as used herein refers to a read that is discriminative only to the sub-blocks of the block that the client, process or thread wants to coherently read, and beyond those discriminative regions, the request does not care if the extraneous regions are accurate.
- “Concurrently” as used herein, refers to multiple writers, readers or cursors accessing the same file at the same time. Multiple writers may be writing to the same file; multiple readers may be reading from the same file; multiple cursors may be restriping the same file, or a mix of writers, readers, and cursors may be writing, reading, and restriping from the same file at the same time.
- Exclusive locks refers to a lock that does not allow any other locks of any kind on the same block and/or sub block.
- Shared locks refers to a lock that allows reading of non-delta data and/or delta data coherently. Multiple shared locks can be active at the same time for the same block and/or sub block.
- Delta read locks refers to a lock that allows the reading of delta data but does not guarantee the reading of non-delta data.
- Delta write locks refers to a lock that allows other processes to read non-delta data, other processes can apply delta changes (e.g., other delta write locks can be active at the same time to the same block or sub-block), prevents a shared lock being allowed on the same block or sub-block at the same time.
- BTL refers to Buffer Transaction Lock.
- a ranged BTL refers to a lock on a sub-block range of a block of the buffer transaction log. It can be appreciated that a BTL is a bottom half lock while locks like the exclusive locks, shared locks, delta write locks, and delta read locks are top half locks.
- ranged BTL's can be tracked in a Ranged BTL hash table, and can operate independently of top half locks. For example, a lock ordering method can exist regarding the interdependence of top half locks and bottom half locks.
- a transaction can first take a top half lock (e.g., a LIN lock, an MDS lock, etc.
- a bottom half lock like a ranged BTL as described below, at the node level.
- a commit e.g., a successful completion of the transaction
- the top half lock can be released while the bottom half locks can be held until the blocks are committed from the buffer transaction log to stable storage on disk.
- the top half locks can then be taken again; however, they can wait for the BTL held by the first operation to finish for any needed coherency as described below.
- writers or readers In most computing systems if writers or readers request access to shared resources (e.g., files) they may rely on locking mechanisms to indicate to operating systems and other writers or readers that access to the shared resource is requested. For some resources, such as computer files, writers or readers may require exclusive access to one or more portions of the resource. In most computing systems, contention over shared system resources among multiple writers or readers may be managed by a locking system. Most computing file systems and/or computing operating systems provide system calls and/or application programming interfaces (API's) enabling writers or readers to obtain appropriate locks on file resources before taking action. In at least one of the various implementations, if a writer or reader has obtained the appropriate lock the operating system may ensure that the “locked” file resource remains consistent as long as the lock remains in place.
- API's application programming interfaces
- the lock protocol may establish a contract between a file system that defines the relationships between and among different lock types, and writers or readers of a file.
- writers may require a lock type that may indicate that the writer may change (e.g., write or delete) the state and/or contents of a file, a block of data, or a sub block of data.
- readers may use a lock type that indicates that the resource is being read but it may not be altered by the reader holding the lock.
- Some computing systems may designate lock types of “shared” and “exclusive.” Lock types categorized as shared locks may indicate that multiple readers can obtain a shared lock on the same file.
- file systems and operating systems usually enforce the requirement that holders of shared locks may read a file and may not disturb the contents of the file. If a writer wants to write to a file resource most computing systems require the writer to obtain an exclusive lock. One writer can have an exclusive lock on a resource. This may force writers requesting exclusive locks to wait until all other writers, or readers (e.g., any lock holders) have finished working with the target resources (i.e., indicated if they release their locks.)
- resources such as inodes
- resources may have some data fields where the value or state of the data does not have be known, consistent, and coherent among all writers or readers all of the time.
- resources may be partitioned into non-delta data and delta data.
- Delta data may be fields of the resource determined to be eligible for modification by more than one writer at the same time.
- Non-delta data may be fields of the resource that may be written to by one writer at a time.
- writers or readers may rely on the combination of the delta data and the non-delta data for a correct representation of the resource.
- At least four types of locks are available for writers or readers. These may include, exclusive locks, shared locks, delta read locks, and delta write locks.
- Exclusive locks may enable writers or readers to have exclusive access to a resource.
- an exclusive lock may be used if a writer, intends to modify or delete at least a portion of a file or metadata data structure.
- shared locks may be obtained if writers or readers intend to read at least a portion of a file or metadata data structure and not modify them.
- multiple writers or readers may obtain shared locks on the same resource at the same time because the shared lock may imply that the resource data may be undisturbed while the shared lock(s) are held because the lock holders may be reading data from a resource rather than writing.
- holding a shared lock on a resource may imply that other writers or readers may not modify any fields or properties of the resource as long as a shared lock is held.
- a writer may be indicating to the locking system that it intends to update or modify the delta data portions of the resource. If a delta read lock is requested by a reader, the reader may be signaling that it may not care about the non-delta data portions of the resource and it may rely on the delta data portions of the resource remaining unchanged. In at least one of the various embodiments, writers that obtain delta write locks on resources may be allowed to modify the delta data portions of the locked resources by saving journal deltas into a journaling system that may resolve the modifications made to the delta data later.
- journal deltas may be resolved and reconciled when a process attempts to obtain a lock on the resource that may be incompatible with the resource being in an incoherent state (e.g., shared locks, and exclusive locks). For example, in at least one of the various embodiments, before a process may obtain an exclusive lock on a sub-block range of a data structure, all delta write locks must be released on any sub block range that overlaps the request, and the corresponding journal deltas that may have been recorded for any modifications may be reconciled and resolved before granting an exclusive lock on the sub-block range to the requesting process.
- an incoherent state e.g., shared locks, and exclusive locks
- Implementations are provided herein for sub-block ranged locking on a journal block.
- a file system locking scheme can be adjusted to provide ranged locks on sub-blocks of a journal block.
- two independent operations on the same block that do not overlap on a sub-block range can operate independent of each other and be processed concurrently without requiring an exclusive lock over the entire block.
- BTL's can be established on a sub-block range level. Thus, only the range of the operation, thread, or process necessitates a lock or examining existing locking information while other sub-block portions of the block unrelated to the operation, thread or process can be ignored.
- a flag can established for each individual delta field of a data structure, such as a metadata data structure.
- a data structure such as a metadata data structure.
- flags can be associated with individual delta fields of the metadata structure that can signify whether the delta field is coherent or not coherent. For example, some operations, like operations altering metadata data fields, are order independent in that no matter the order in which multiple operations are processed the result will be the same. Using flags, these order independent operations can be logged over time and then later processed together when a coherent read is requested for the data field.
- an operation is received associated with a delta field.
- the file system can then examine whether a flag associated with the delta field indicates if the data of the field is coherent or incoherent. If the data is coherent, any ranged locking associated with the sub-block ranges of the delta field can be determined, and if the sub block locking does not conflict with the operation, then the operation can be committed to the journal and/or processed independently of another operation on the same sub-block range that does not have a conflicting lock or independently of another operation on different sub-block ranges of the same block. It can be appreciated that if the operation does conflict with pending operation (e.g., incompatible locking on the same sub-block range), then the operation can be processed in a manner where the second operation waits for the first operation to process in full prior to restarting.
- pending operation e.g., incompatible locking on the same sub-block range
- sub-block range locking can be tracked in a hash table.
- a checksum can be used where the checksum indicates a current locking status of the set of sub block ranges associated with a set of delta fields of a file.
- the checksum can also store information relating to coherence, including, in one example, the presence of a coherence flag for each sub block range associated with a delta field.
- FIGS. 1-4 illustrate methods and/or flow diagrams in accordance with this disclosure.
- the methods are depicted and described as a series of acts.
- acts in accordance with this disclosure can occur in various orders and/or concurrently, and with other acts not presented and described herein.
- not all illustrated acts may be required to implement the methods in accordance with the disclosed subject matter.
- the methods could alternatively be represented as a series of interrelated states via a state diagram or events.
- the methods disclosed in this specification are capable of being stored on an article of manufacture to facilitate transporting and transferring such methods to computing devices.
- the term article of manufacture, as used herein, is intended to encompass a computer program accessible from any computer-readable device or storage media.
- FIG. 1 illustrates an example method for processing a first write request associated with a sub block range of a data structure in accordance with implementations of this disclosure.
- a journal of set of transactions to be committed to stable storage of a file system can be maintained, wherein the set of transactions are associated with a set of delta fields associated with a logical inode (“LIN”) of the file system.
- LIN logical inode
- the transactions in the journal may relate to a subset of the set of delta fields, as each transaction may only read, modify, and/or write a subset of the set of delta fields.
- a ranged buffer transaction lock (“BTL”) hash table can be maintained, wherein the ranged BTL hash table tracks locking states of a set of sub block ranges associated with the set of delta fields associated with the LIN.
- the hash table can also associated coherency flags that can indicate whether individual delta fields are coherent.
- a first write transaction associated with a first subset of the set of sub block ranges associated with the set of data fields can be received.
- the write transaction may impact one delta field, a subset of delta fields less the entire set, or the entire set of delta fields.
- the first write transaction can be stored in the journal.
- a first shared lock can be established on the set of the delta fields.
- the shared lock is a shared LIN lock of the data structure, e.g., a top half lock.
- the method can stop and wait at this step until a shared lock on the set of delta fields can be established. It can be appreciated that an exclusive lock on a sub-block range of the delta fields (e.g., a bottom half lock) may not stop the establishment of a shared LIN lock (e.g., a top half lock).
- a first BTL on the first subset of the set of sub block ranges can be established, wherein establishing the first BTL includes updating the ranged BTL hash table to indicate the first BTL on the first subset of the set of sub block ranges. It can be appreciated that the first BTL is established only on the subset of sub block ranges associated with the first write transaction.
- FIG. 2 illustrates an example method for concurrently processing two non-intersecting write requests to the same data block in accordance with implementations of this disclosure.
- Steps 202 - 212 are identical to steps 102 - 112 as described above with respect to FIG.
- a second write transaction associated with a second subset of the set of sub block ranges associated with the set of delta fields can be received, wherein the second subset of the set of sub block ranges and the first subset of the set of sub block ranges do not intersect.
- the first write transaction and the second write transaction involve writes to mutually exclusive subsets of delta fields.
- both transactions can be processed independently and concurrently. Prior to using sub block locking, the transaction would have to be processed sequentially as the entire block would be exclusively locked.
- the second write transaction can be stored in the journal.
- a second shared lock can be established on the set of the delta fields. It can be appreciated that multiple shared locks can exist on the same LIN or the same set of delta fields.
- a second BTL can be established on the second subset of the set of sub block ranges, wherein establishing the second BTL includes updating the ranged BTL hash table to indicate a second exclusive lock on the second subset of the set of sub block ranges.
- the first write transaction can be committed from the journal to stable storage and the second write transaction can be committed from the journal to stable storage, wherein committing the first write transaction and committing the second write transaction occur independently and concurrently.
- FIG. 3 illustrates an example method for processing two intersecting write requests to the same data block in accordance with implementations of this disclosure.
- Steps 302 - 312 are identical to steps 102 - 112 as described above with respect to FIG. 1 .
- a third write transaction associated with a third subset of the set of sub block ranges associated with the set of delta fields can be received, wherein the third subset of the set of sub block ranges and the first subset of the set of sub block ranges intersect.
- the third write transaction can be stored in the journal.
- the first write transaction from the journal can be committed to stable storage.
- the ranged BTL hash table can be updated to remove indications of the first BTL.
- FIG. 4 illustrates an example method for processing a read request with a pending write request to the same data block in accordance with implementations of this disclosure.
- Steps 402 - 412 are identical to steps 102 - 112 as described above with respect to FIG. 1 .
- a first read transaction associated with the set of delta fields can be received.
- a checksum can be generated, wherein the checksum indicates a current locking status of the set of sub block ranges associated with the set of delta fields, and wherein the current locking status is indicative of coherence of sub block ranges in the set of sub block ranges. It can be appreciated that a client can read the checksum and determine which delta fields are coherent and incoherent based on the checksum.
- the set of delta fields and the checksum can be returned to the client.
- returning the set of delta fields and the checksum to the client is based on the coherence of the set of delta fields and a subset of the set of delta fields associated with the first read transaction. For example, if the read transaction was associated with a subset of delta fields that were incoherent, the process may wait until the subset of delta fields are coherent prior to returning the set of delta fields.
- the method further calls for committing a set of pending transactions from the journal associated with a subset of delta fields associated with the first read transaction wherein committing the set of pending transactions generates data coherency on the subset of delta fields. It can be appreciated that if the read request is for a subset of delta fields that are incoherent, the process calls for committing pending transactions associated with the incoherent delta fields until the field becomes coherent.
- FIG. 5 illustrates an example block diagram of a cluster of nodes in accordance with implementations of this disclosure.
- a node is a computing device with a modular design optimized to minimize the use of physical space and energy.
- a node can include processors, power blocks, cooling apparatus, network interfaces, input/output interfaces, etc.
- cluster of nodes typically includes several computers that merely require a network connection and a power cord connection to operate. Each node computer often includes redundant components for power and interfaces.
- the cluster of nodes 500 as depicted shows Nodes 510 , 512 , 514 and 516 operating in a cluster; however, it can be appreciated that more or less nodes can make up a cluster.
- Backplane 502 can be any type of commercially available networking infrastructure that allows nodes among the cluster of nodes to communicate amongst each other in as close to real time as the networking infrastructure allows. It can be appreciated that the backplane 502 can also have a separate power supply, logic, I/O, etc. as necessary to support communication amongst nodes of the cluster of nodes.
- the Cluster of Nodes 500 can be in communication with a second Cluster of Nodes and work in conjunction to provide a distributed file system.
- Nodes can refer to a physical enclosure with a varying amount of CPU cores, random access memory, flash drive storage, magnetic drive storage, etc.
- a single Node could contain, in one example, 36 disk drive bays with attached disk storage in each bay. It can be appreciated that nodes within the cluster of nodes can have varying configurations and need not be uniform.
- FIG. 6 illustrates an example block diagram of a node 600 in accordance with implementations of this disclosure.
- Node 600 includes processor 602 which communicates with memory 610 via a bus.
- Node 600 also includes input/output interface 640 , processor-readable stationary storage device(s) 650 , and processor-readable removable storage device(s) 660 .
- Input/output interface 640 can enable node 600 to communicate with other nodes, mobile devices, network devices, and the like.
- Processor-readable stationary storage device 650 may include one or more devices such as an electromagnetic storage device (hard disk), solid state hard disk (SSD), hybrid of both an SSD and a hard disk, and the like. In some configurations, a node may include many storage devices.
- processor-readable removable storage device 660 enables processor 602 to read non-transitive storage media for storing and accessing processor-readable instructions, modules, data structures, and other forms of data.
- the non-transitive storage media may include Flash drives, tape media, floppy media, disc media, and the like.
- Memory 610 may include Random Access Memory (RAM), Read-Only Memory (ROM), hybrid of RAM and ROM, and the like. As shown, memory 610 includes operating system 612 and basic input/output system (BIOS) 614 for enabling the operation of node 600 .
- BIOS basic input/output system
- a general-purpose operating system may be employed such as a version of UNIX, LINUXTM, a specialized server operating system such as Microsoft's Windows ServerTM and Apple Computer's IoS ServerTM, or the like.
- Applications 630 may include processor executable instructions which, when executed by node 600 , transmit, receive, and/or otherwise process messages, audio, video, and enable communication with other networked computing devices. Examples of application programs include database servers, file servers, calendars, transcoders, and so forth. Applications 630 may include, for example, file system applications 634 , and cursor applications 636 according to implementations of this disclosure. It can be appreciated that cursor application 636 can store information in memory 610 such as in a cache or the like for use during restripe operations as discussed supra.
- Human interface components may be remotely associated with node 600 , which can enable remote input to and/or output from node 600 .
- information to a display or from a keyboard can be routed through the input/output interface 640 to appropriate peripheral human interface components that are remotely located.
- peripheral human interface components include, but are not limited to, an audio interface, a display, keypad, pointing device, touch interface, and the like.
- Data storage 620 may reside within memory 610 as well, storing file storage 622 data such as metadata or LIN data. It can be appreciated that LIN data and/or metadata can relate to rile storage within processor readable stationary storage 650 and/or processor readable removable storage 660 . For example, LIN data may be cached in memory 610 for faster or more efficient frequent access versus being stored within processor readable stationary storage 650 .
- Data storage 620 can also host index and table data 624 such as cursor data in accordance with implementations of this disclosure. Index and table data can be stored as files in file storage 622 .
- a file may be referenced by an inode that may contain file meta-data, including references, and/or pointers to the file's data blocks.
- inode may contain file meta-data, including references, and/or pointers to the file's data blocks.
- writers want to write to a file they may need to obtain a lock on the inode to prevent other writers from changing the contents of the inode while a writer is in the middle of a write transaction.
- the file may be distributed among one or more data storage servers in a distributed data cluster.
- a lock manager may be arranged to coordinate the locking protocol between writers or readers and file resources, including the inodes and file data.
- a lock manager may be part of an operating system 612 or file system.
- a lock manager manages lock contention among distributed writers or readers within and among distributed nodes of a data cluster.
- writers or readers of files access the information in an inode by using file system calls, operating system calls, API's, or the like.
- locking rules may be enforced by a lock manager.
- a lock manager may enforce the lock rules across a file system that may be implemented on one or more computing devices.
- a file system may be distributed among multiple data storage nodes and compute nodes.
- individual files may be distributed across one or more nodes that may be arranged in a cluster.
- a locking manager may control access to inodes based on a locking protocol that may include delta read locks and delta write locks.
- a locking protocol may include delta read locks and delta write locks.
- multiple writers or readers across multiple data storage nodes may be concurrently contending for access to files that likewise may be stored across multiple data storage nodes.
- a locking manager may be arranged to enforce the locking protocol and guarantee that the inode of the distributed file data remains consistent. Locking managers may also be responsible for ensuring that delta writes that may have been recorded as journal deltas may be reconciled and resolved if required, such as if a preparing to grant a process a shared or exclusive lock.
- program modules can be located in both local and remote memory storage devices.
- the term “or” is an inclusive “or” operator, and is equivalent to the term “and/or,” unless the context clearly dictates otherwise.
- the term “based on” is not exclusive and allows for being based on additional factors not described, unless the context clearly dictates otherwise.
- the meaning of “a,” “an,” and “the” include plural references.
- the meaning of “in” includes “in” and “on.”
- the terms used to describe such components are intended to correspond, unless otherwise indicated, to any component which performs the specified function of the described component (e.g., a functional equivalent), even though not structurally equivalent to the disclosed structure, which performs the function in the herein illustrated exemplary aspects of the claimed subject matter.
- the innovation includes a system as well as a computer-readable storage medium having computer-executable instructions for performing the acts and/or events of the various methods of the claimed subject matter.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
Claims (18)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/585,992 US9734157B1 (en) | 2014-12-30 | 2014-12-30 | Method for sub-block operations on a journal block using ranged locking |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/585,992 US9734157B1 (en) | 2014-12-30 | 2014-12-30 | Method for sub-block operations on a journal block using ranged locking |
Publications (1)
Publication Number | Publication Date |
---|---|
US9734157B1 true US9734157B1 (en) | 2017-08-15 |
Family
ID=59561108
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/585,992 Active 2035-10-17 US9734157B1 (en) | 2014-12-30 | 2014-12-30 | Method for sub-block operations on a journal block using ranged locking |
Country Status (1)
Country | Link |
---|---|
US (1) | US9734157B1 (en) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10346366B1 (en) | 2016-09-23 | 2019-07-09 | Amazon Technologies, Inc. | Management of a data processing pipeline |
US10423459B1 (en) | 2016-09-23 | 2019-09-24 | Amazon Technologies, Inc. | Resource manager |
CN110442558A (en) * | 2019-07-30 | 2019-11-12 | 深信服科技股份有限公司 | Data processing method, sliced service device, storage medium and device |
US20200081995A1 (en) * | 2018-09-06 | 2020-03-12 | International Business Machines Corporation | Data-centric approach to analysis |
US10666569B1 (en) * | 2016-09-23 | 2020-05-26 | Amazon Technologies, Inc. | Journal service with named clients |
US10805238B1 (en) | 2016-09-23 | 2020-10-13 | Amazon Technologies, Inc. | Management of alternative resources |
US11023454B2 (en) | 2018-12-11 | 2021-06-01 | EMC IP Holding Company LLC | Checking data integrity in incremental journaling |
US20210263789A1 (en) * | 2020-02-26 | 2021-08-26 | Research & Business Foundation Sungkyunkwan University | Method for improving processing speed of input and output related to writing in operating system |
US11188266B2 (en) * | 2020-04-20 | 2021-11-30 | Netapp Inc. | Write ordering for persistent memory |
US11347687B2 (en) * | 2018-12-19 | 2022-05-31 | EMC IP Holding Company LLC | Incremental inline journaling in a journaled file system |
US20220197887A1 (en) * | 2020-12-18 | 2022-06-23 | Samsung Electronics Co, Ltd. | Electronic apparatus and controlling method thereof |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6772155B1 (en) * | 2001-04-04 | 2004-08-03 | Ncr Corporation | Looking data in a database system |
US20090019047A1 (en) * | 2007-07-11 | 2009-01-15 | International Business Machines Corporation | Concurrent directory update in a cluster file system |
US8996563B2 (en) * | 2010-04-06 | 2015-03-31 | Tokutek, Inc. | High-performance streaming dictionary |
-
2014
- 2014-12-30 US US14/585,992 patent/US9734157B1/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6772155B1 (en) * | 2001-04-04 | 2004-08-03 | Ncr Corporation | Looking data in a database system |
US20090019047A1 (en) * | 2007-07-11 | 2009-01-15 | International Business Machines Corporation | Concurrent directory update in a cluster file system |
US8996563B2 (en) * | 2010-04-06 | 2015-03-31 | Tokutek, Inc. | High-performance streaming dictionary |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10423459B1 (en) | 2016-09-23 | 2019-09-24 | Amazon Technologies, Inc. | Resource manager |
US10666569B1 (en) * | 2016-09-23 | 2020-05-26 | Amazon Technologies, Inc. | Journal service with named clients |
US10805238B1 (en) | 2016-09-23 | 2020-10-13 | Amazon Technologies, Inc. | Management of alternative resources |
US10346366B1 (en) | 2016-09-23 | 2019-07-09 | Amazon Technologies, Inc. | Management of a data processing pipeline |
US20200081995A1 (en) * | 2018-09-06 | 2020-03-12 | International Business Machines Corporation | Data-centric approach to analysis |
US10838915B2 (en) * | 2018-09-06 | 2020-11-17 | International Business Machines Corporation | Data-centric approach to analysis |
US11023454B2 (en) | 2018-12-11 | 2021-06-01 | EMC IP Holding Company LLC | Checking data integrity in incremental journaling |
US11347687B2 (en) * | 2018-12-19 | 2022-05-31 | EMC IP Holding Company LLC | Incremental inline journaling in a journaled file system |
CN110442558A (en) * | 2019-07-30 | 2019-11-12 | 深信服科技股份有限公司 | Data processing method, sliced service device, storage medium and device |
CN110442558B (en) * | 2019-07-30 | 2023-12-29 | 深信服科技股份有限公司 | Data processing method, slicing server, storage medium and device |
US20210263789A1 (en) * | 2020-02-26 | 2021-08-26 | Research & Business Foundation Sungkyunkwan University | Method for improving processing speed of input and output related to writing in operating system |
US11436064B2 (en) * | 2020-02-26 | 2022-09-06 | Research & Business Foundation Sungkyunkwan University | Method for improving processing speed of input and output related to writing in operating system |
US11822821B2 (en) | 2020-04-20 | 2023-11-21 | Netapp, Inc. | Write ordering for persistent memory |
US11188266B2 (en) * | 2020-04-20 | 2021-11-30 | Netapp Inc. | Write ordering for persistent memory |
US12141481B2 (en) | 2020-04-20 | 2024-11-12 | Netapp, Inc. | Write ordering for persistent memory |
US20220197887A1 (en) * | 2020-12-18 | 2022-06-23 | Samsung Electronics Co, Ltd. | Electronic apparatus and controlling method thereof |
US11809400B2 (en) * | 2020-12-18 | 2023-11-07 | Samsung Electronics Co., Ltd. | Electronic apparatus and controlling method thereof |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9734157B1 (en) | Method for sub-block operations on a journal block using ranged locking | |
US11789976B2 (en) | Data model and data service for content management system | |
CN110799960B (en) | System and method for database tenant migration | |
US8499004B2 (en) | File system with optimistic I/O operations on shared storage | |
CN107077495B (en) | High performance transactions in a database management system | |
KR20200093597A (en) | Assignment and reallocation of unique identifiers for synchronization of content items | |
US20200133782A1 (en) | Restoring a directory to a state prior to a past synchronization event | |
US20150142749A1 (en) | Method and system for a safe archiving of data | |
US20220417251A1 (en) | Team member transfer tool | |
US9747323B1 (en) | Method for reconstruction of a distributed lock state after a node addition or removal using a consistent hash | |
US10152493B1 (en) | Dynamic ephemeral point-in-time snapshots for consistent reads to HDFS clients | |
US20190079726A1 (en) | Mitigating causality discrepancies caused by stale versioning | |
US11803652B2 (en) | Determining access changes | |
US9824114B1 (en) | Multiple concurrent cursors for file repair | |
Depoutovitch et al. | Taurus MM: bringing multi-master to the cloud | |
US10684992B1 (en) | Causally ordering distributed file system events | |
US12019599B2 (en) | Data model and data service for content management system | |
US12174814B2 (en) | Aggregates index | |
US11799958B2 (en) | Evaluating access based on group membership | |
US10776344B2 (en) | Index management in a multi-process environment | |
US11216439B2 (en) | Auto-expiring locks based on object stamping | |
CN115422188A (en) | Table structure online changing method and device, electronic equipment and storage medium | |
US12189585B2 (en) | Schema evolution on a live database system without an outage | |
AU2021409880B2 (en) | Data model and data service for content management system | |
US12001574B2 (en) | Evaluating an access control list from permission statements |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: EMC CORPORATION, MASSACHUSETTS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BRAHMA RAJU, SURAJ;STEINKE, RONALD;REEL/FRAME:035051/0375 Effective date: 20150112 |
|
AS | Assignment |
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: 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: 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 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 |
|
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 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
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 |
|
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 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |
|
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 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |