US10585604B2 - Tool for selectively deploying inline compression - Google Patents
Tool for selectively deploying inline compression Download PDFInfo
- Publication number
- US10585604B2 US10585604B2 US15/966,584 US201815966584A US10585604B2 US 10585604 B2 US10585604 B2 US 10585604B2 US 201815966584 A US201815966584 A US 201815966584A US 10585604 B2 US10585604 B2 US 10585604B2
- Authority
- US
- United States
- Prior art keywords
- computing device
- storage object
- blocks
- user data
- storage
- 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 OR CALCULATING; 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
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0626—Reducing size or complexity of storage systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
Definitions
- a data storage system is an arrangement of hardware and software that typically includes one or more storage processors coupled to an array of non-volatile data storage devices, such as magnetic disk drives, electronic flash drives, and/or optical drives.
- the storage processors service host input/output (I/O) operations received from host machines.
- the received I/O operations specify storage objects (e.g. logical disks or “LUNs”) that are to be written to, read from, created, or deleted.
- the storage processors run software that manages incoming I/O operations and that performs various data processing tasks to organize and secure the host data received from the host machines and stored on the non-volatile data storage devices
- Data storage systems commonly arrange data in structures known as filesystems.
- file systems include both data and metadata.
- the metadata organizes the file data on disk, such that each file's data can be located, placed in proper sequence, and kept separate from other files' data.
- Some filesystems employ compression. Compression allows the data within the filesystem to be stored in a reduced amount of space. Compression may be performed “inline” in certain filesystems, allowing data to be stored in compressed form “on-the-fly” as it is received.
- a method of selectively deploying an inline compression feature is performed by a computing device.
- the method includes (a) scanning preexisting user data stored within a storage object on the computing device to yield a compressibility metric that indicates a representative block-level compressibility of the preexisting user data, the scanning including performing trial compression on blocks of the preexisting user data and generating the compressibility metric based on a compressed size of the blocks and an uncompressed size of the blocks; (b) calculating an overall compression ratio for the storage object based on (i) an overhead parameter specific to the inline compression feature and (ii) the compressibility metric; (c) performing a comparison operation between the overall compression ratio and a threshold minimum value, the comparison operation configured to (1) produce a first result in response to the overall compression ratio exceeding the threshold minimum value, the first result including implementing the inline compression feature in connection with the storage object; and (2) produce a second result in response to the threshold minimum value exceeding the overall compression ratio, the second result including refraining from implementing the inline compression feature in connection with
- FIG. 1 is a block diagram depicting an example system and apparatus for use in connection with various embodiments.
- FIG. 2 is a block diagram depicting example data structures used in connection with various embodiments.
- FIG. 3 is a flowchart depicting example methods of various embodiments.
- FIG. 4 is a flowchart depicting example methods of various embodiments.
- Embodiments are directed to techniques for simplifying and automating the process of transitioning a storage object to use inline compression either on the same machine or migrated to a new machine. This may be accomplished by determining the raw compressibility of the data of a storage object, estimating the interaction between the compressibility of the data and a structure of the inline compression feature, and automatically performing the upgrade or migration if the expected compression savings exceeds a threshold. Some embodiments further speed the process and decrease the resources by determining the raw compressibility through sampling.
- FIG. 1 depicts an example environment 30 including a computing device 32 serving as a data storage system (DSS).
- DSS computing device 32 may be any kind of computing device, such as, for example, a personal computer, workstation, server computer, enterprise server, DSS rack server, laptop computer, tablet computes, smart phone, mobile computer, etc.
- computing device 32 is a DSS rack server, such as a VNX or VMAX data storage array produced by Dell/EMC of Hopkinton, Mass.
- DSS computing device 32 includes network interface circuitry 34 , processing circuitry 36 , memory 40 , storage interface circuitry 42 , and persistent data storage 44 . DSS computing device 32 may also include other components as are well-known in the art, including interconnection circuitry.
- Network interface circuitry 34 may include one or more Ethernet cards, cellular modems, Fibre Channel (FC) adapters, Wireless Fidelity (Wi-Fi) wireless networking adapters, and/or other devices for connecting to a network 35 .
- Network interface circuitry 34 allows the DSS computing device 32 to communicate with one or more host devices (not depicted) capable of sending data storage commands to the DSS computing device 32 over the network 35 for fulfillment.
- Network interface circuitry 34 allows the DSS computing device 32 to communicate with a remote DSS computing device 32 ′, which may be useful in the context of embodiments in which a user wishes to migrate to the remote DSS computing device 32 ′.
- Processing circuitry 36 may be any kind of processor or set of processors configured to perform operations, such as, for example, a microprocessor, a multi-core microprocessor, a digital signal processor, a system on a chip, a collection of electronic circuits, a similar kind of controller, or any combination of the above.
- DSS computing device 32 may be built as a set of two or more storage processors (SPs, not depicted) each mounted on a separate board, each SP having its own network interface circuitry 34 , processing circuity 36 , memory 40 , and storage interface circuitry 42 , but sharing the storage 44 between them.
- SPs storage processors
- a high-speed inter-SP bus may connect the SPs.
- Persistent storage 44 may include any kind of persistent storage devices, such as, for example, hard disk drives, solid-state storage devices (SSDs), flash drives, etc.
- Storage interface circuitry 42 controls and provides access to persistent storage 44 .
- Storage interface circuitry 42 may include, for example, SCSI, SAS, ATA, SATA, FC, M.2, and/or other similar controllers and ports.
- persistent storage 44 may be arranged as a set of storage devices in a RAID configuration.
- Persistent storage 44 may be logically divided into storage blocks, which, in some embodiments, are 8-kilobyte extents of data that are individually-addressable (although the size may vary from system to system and even within a given system, depending on the configuration as is well-known in the art). Some blocks may store uncompressed blocks 50 of data, while other blocks may combine together to store a data segment 52 , which is a container made up of an integer number of blocks that are logically combined into one large extent.
- Memory 40 may be any kind of digital system memory, such as, for example, random access memory (RAM).
- Memory 40 stores an operating system (OS, not depicted) in operation (e.g., a Linux, UNIX, Windows, MacOS, or similar operating system).
- OS operating system
- Memory 40 also stores a storage driver stack 46 (which may include several different storage-related drivers, not depicted, that are arranged in a stack configuration) which executes on processing circuitry 36 to fulfill data storage requests from hosts.
- Memory 40 also stores an Inline Compression (ILC) upgrade application 56 and a representation of a storage object 49 that a user wishes either to upgrade to start using ILC or to migrate to a remote DSS computing device 32 ′ that uses ILC.
- ILC Inline Compression
- memory 40 may also store a migration module 66 .
- storage stack 46 of the DSS computing device 32 may also include an ILC module 48 that is configured to implement ILC.
- a storage object is any logical grouping of data that may be written to, read from, created, or deleted that is backed by persistent storage 44 .
- the various kinds of storage objects include a logical volume, a filesystem, an iSCSI logical unit of storage, a directory, and a regular file.
- Memory 40 may also store various other data structures used by the OS, storage driver stack 46 , ILC module 48 , migration module 66 , and various other applications (not depicted).
- This data includes a block-level compression ratio (R) variable 58 , an ILC overhead parameter 60 associated with the ILC feature, an estimated overall compression ratio (R′) variable 62 , and an ILC activation threshold 64 , which are used by ILC upgrade application 56 , for example.
- memory 40 may also include a persistent storage portion (not depicted).
- Persistent storage portion of memory 40 may be made up of one or more persistent storage devices, such as, for example, disks.
- Persistent storage portion of memory 40 or persistent storage 44 is configured to store programs and data even while the DSS computing device 32 is powered off.
- the OS, applications, storage driver stack 46 , ILC module 48 , migration module 66 , representations of storage objects 49 , ILC overhead parameter 60 , and ILC activation threshold 64 are typically stored in this persistent storage portion of memory 40 or on persistent storage 44 so that they may be loaded into a system portion of memory 40 from this persistent storage portion of memory 40 or persistent storage 44 upon a system restart or as needed.
- Storage driver stack 46 when stored in non-transient form either in the volatile portion of memory 40 or on persistent storage drives 44 or in persistent portion of memory 40 , forms a computer program product.
- the processing circuitry 36 running one or more applications and/or storage driver stack 46 thus forms a specialized circuit constructed and arranged to carry out the various processes described herein.
- a host sends data storage requests (e.g., read, write, create, or delete requests) directed at a storage object to a storage stack 46 , which translates the data storage requests into lower-level instructions to access particular addresses of persistent storage 44 .
- the initial or source storage object 49 is configured in an uncompressed state, so storage requests that are directed at the initial or source storage object 49 are fulfilled with respect to uncompressed blocks 50 of persistent storage 44 .
- a user sends a command (either via network interface circuitry 34 or via user interface circuitry, not depicted) to the ILC upgrade application 56 directing the ILC upgrade application 56 to selectively either upgrade the initial or source storage object 49 to start using ILC (in which case it becomes a resulting storage object 49 ′ that has ILC enabled) or migrate the initial or source storage object 49 to a target storage object 49 ′′ on remote DSS computing device 32 ′.
- ILC upgrade application 56 scans at least some of the uncompressed blocks 50 (depicted as uncompressed blocks 50 ( 1 ), 50 ( 2 ), . . .
- This scanning process includes performing trial compression on one or more uncompressed blocks 50 and comparing the size of the resulting compressed version to the original size (which is the system block size multiplied by the number of uncompressed blocks 50 that were trial-compressed) to yield a block-level compression ratio 58 as a compressibility metric (R) of the user data.
- the block-level compression ratio 58 is computed as an uncompressed size divided by a compressed size, so values greater than 1 indicate a benefit to using compression. It should be understood that other equivalent techniques for measuring compressibility could be used as well, such as dividing a compressed size by an uncompressed size, but the math would have to be modified as is well-understood in the art.
- ILC upgrade application 56 then performs one or more calculations involving the block-level compression ratio 58 and a stored ILC overhead parameter 60 specific to the ILC compression feature to yield an estimated overall compression ratio (R′) 62 . If the estimated overall compression ratio (R′) 62 exceeds the pre-defined ILC activation threshold 64 , then, ILC upgrade application 56 implements the ILC feature, either by directing the migration module 66 to migrate the source storage object 49 to a target storage object 49 ′′ on remote DSS computing device 32 ′ with ILC enabled or by locally-enabling ILC by activating ILC module 48 for any new write commands 70 received from a host on the network 70 directed at the storage object 49 (thenceforth referred to as resulting storage object 49 ′).
- FIG. 2 shows an example arrangement 100 of filesystem metadata structures used within storage objects 49 , 49 ′, 49 ′′ when implemented as filesystems in more detail.
- a filesystem pointer structure includes an inode 102 that points to a leaf indirect block (IB) 103 .
- Leaf IB 103 includes mapping pointers 156 , which map logical addresses of the file to corresponding physical addresses (filesystem block numbers or FSBNs) in the file system. For example, mapping pointer 156 ( 0 ) maps logical address A 0 , mapping pointer 156 ( 1 ) maps logical address A 1 , and mapping pointer 156 ( 2 ) maps logical address A 2 .
- Each logical address (A 0 , A 1 , or A 2 ) describes a block-sized increment of storage in the file, even though the underlying data may be compressed to much less than the size of a block.
- Each of these mapping pointers 156 ( 0 ), 156 ( 1 ), 156 ( 2 ) points to a VBM 158 ( a ).
- Leaf IB 103 may include additional mapping pointers 156 (e.g., a total of 9 or more, up to a maximum permitted number per segment 52 , such as, for example, twelve) that all point to VBM 158 ( a ) for addressing respective extents of compressed data in segment 149 .
- Leaf IB 103 may also store additional mapping pointers, such as mapping pointer 156 (X), which point to other segments 52 via other VBMs such as VBM 158 ( b ).
- Leaf IB 103 may include any number of mapping pointers 156 , a typical number being 1024 .
- mapping pointers 156 ( 0 ), 156 ( 1 ), 156 ( 2 ) in leaf IB 103 all point to compressed VBM 158 ( a ).
- VBM 158 ( a ) has a compression flag CF, a weight WS, and a pointer PS.
- the compression flag CF indicates whether or not VBM 158 ( a ) represents compressed data, in this example indicating that it does.
- the weight WS indicates the number of mapping pointers 156 that point to that VBM 158 ( a ), and the pointer PS points to the physical address (FSBN) of the segment 149 , which by convention may be selected to be the address of the first data block in segment 149 , i.e., data block 106 ( 0 ).
- the VBM 158 ( a ) also has an extent list 104 .
- Extent list 104 describes the contents of segment 149 and relates, for each extent of compressed data, the logical address (LA) of that item in the file (e.g., A 0 , A 1 , A 2 , . . . , A 11 ), a length (L 0 , L 1 , L 2 , . . . , L 11 , e.g., in bytes of that compressed data in the segment 149 ), a weight (W 0 , W 1 , W 2 , . . . , W 11 ), and a digest 60 (e.g., D 0 , D 1 , D 2 , . . . , D 11 ) of the contents of the extent 150 .
- the sum of weights of extents in the extent list 104 equals the total weight WS of the VBM 158 ( a ).
- segment 149 is composed of contiguous data blocks 106 , i.e., blocks 106 ( 0 ) through 106 ( 6 ). For purposes of storing compressed data, boundaries between blocks 106 ( 0 ) through 106 ( 7 ) may be ignored and the segment 149 may be treated as one continuous space. However, in some embodiments, 512-byte sector boundaries within the blocks 106 may be used as valid starting points for each compressed extent or associated header 112 .
- segment 149 has associated per-block metadata (BMD) 108 .
- BMD per-block metadata
- the BMD 108 may be provided for the first block 106 ( 0 ) in segment 149 .
- the filesystem ensures that BMD 108 has a known location relative to block 106 ( 0 ) and vice-versa, such that the location of one implies the location of the other.
- BMD 108 may also store a back-pointer 110 to the VBM 158 ( a ), i.e., to the particular VBM 158 ( a ) that maps the compressed data stored in segment 149 .
- segment 149 indicates an example layout of compressed extents 150 .
- Header- 0 can be found immediately before compressed Data- 0 in extent 150 ( 0 ).
- Header- 1 can be found immediately before compressed Data- 1 in extent 150 ( 1 ).
- Header- 2 can be found immediately before compressed Data- 2 in extent 150 ( 2 ).
- segment 149 includes twelve compressed extents 150 ( 0 ), 150 ( 1 ), 150 ( 2 ), . . . , 150 ( 11 ) and twelve headers 112 : Header- 0 , Header- 1 , Header- 2 , . . . , Header- 11 , one for each respective compressed extent 150 .
- extent list 104 is depicted having twelve entries, it may have a different number.
- Extent list 104 of a compressed VBM 158 ( a ) may have any number of entries (and segment 149 the same number of compressed extents 150 ) ranging from one up to a maximum permitted number for the ILC feature, which, in some embodiments, is twelve.
- Segment 149 although depicted as being made up of seven blocks 106 ( 0 )- 106 ( 6 ), may have any number of segments 106 as needed to store all of the headers 112 and compressed extents 150 , but, in order to make the ILC feature worthwhile, the number of blocks 106 is always at least one less than the number of compressed extents 150 in a segment 149 .
- each compression header 112 is shown for illustration and is intended to be representative of all compression headers in segment 149 (or in any segment 52 ).
- each compression header 112 is a fixed-size data structure that includes multiple data elements, such as the following:
- the header 112 may also include additional elements, such as CRC (Cyclic Redundancy Check) and various flags.
- CRC Cyclic Redundancy Check
- VBM 158 ( a ) and at least one other VBM 158 ( b ) are both depicted as being contained within a single VBM block 105 , which is a block (e.g., 8 kilobytes in size) that stores both VBMs 158 ( a ), 158 ( b ) together in persistent storage 44 .
- the size of a VBM 158 can vary by embodiment, but, in one embodiment, a VBM is about 512 bytes, and a VBM block 105 may hold sixteen VBMs 158 .
- a VBM 158 may represent compressed data, as shown in the context of VBM 158 ( a ), or a VBM 158 may instead represent uncompressed data (not depicted), in which case the compression flag CF is set to false, the extent list 104 has a fixed number of entries (e.g., eight), and the segments 149 are of a fixed length, each holding the fixed number of uncompressed blocks 50 without headers 112 . In addition, since all extents are the same length when not compressed, there is no need to separately store the Length of each entry. Rather, extent list 104 may instead store a block offset that indicates an offset into segment 149 . Since each extent is uncompressed, each extent is stored entirely within a physical block 106 of the segment 149 .
- FIG. 3 illustrates an example method 200 performed by ILC upgrade application 56 in conjunction with other applications for selectively deploying an ILC feature in connection with a storage object 49 .
- a piece of software e.g., storage driver stack 46 , ILC module 48 , ILC upgrade application 56 , migration module 66 , etc.
- a computing device e.g., DSS computing device 32 , remote DSS computing device 32 ′, etc.
- Method 200 is performed by DSS computing device 32 (and, in some embodiments, partially by remote DSS computing device 32 ′).
- method 200 may be initiated upon ILC upgrade application 56 receiving an instruction from a user to selectively deploy an ILC feature in connection with a storage object 49 .
- the instruction identifies a particular source/initial storage object 49
- the instruction may indicate several (or all) storage objects managed by the DSS computing device 32 .
- the instruction either indicates that a source storage object 49 that currently does not use ILC should be selectively migrated to a target storage object 49 ′′ on remote DSS computing device 32 ′ or it indicates that an initial storage object 49 that currently does not use ILC should be selectively upgraded to become a resulting storage object 49 ′ that remains on the DSS computing device 32 but is configured to use ILC.
- the instruction may indicate either that ILC should be selectively enabled only for newly-written data or that compression should also be retroactively applied to previously-written data.
- ILC upgrade application 56 scans preexisting user data stored within source/initial storage object 49 on the DSS computing device 32 to yield a compressibility metric (R) that indicates a representative block-level compressibility 58 of the preexisting user data.
- Step 210 includes sub-steps 212 and 218 .
- ILC upgrade application 56 performs trial compression on uncompressed blocks 50 of preexisting user data of the source/initial storage object 49 .
- Performing trial compression on an uncompressed block 50 may include running a lossless compression engine on the contents of the uncompressed block 50 and recording a size of the output in bytes.
- the compression is referred to as “trial” compression because the output need not be kept once it is measured.
- Any kind of lossless compression engine may be used, such as, for example, a run-length encoder, a Lempel-Ziv type encoder, or any other known type of lossless data encoding.
- several different lossless compression engines may be applied and the one with the smallest output may be selected.
- one of several different lossless compression engines may be selected based on a type of data identified to be within the uncompressed block 50 , and then only that selected lossless compression engine may be applied.
- Sub-step 212 may either encompass sub-sub-step 213 or sub-sub-step 214 .
- ILC upgrade application 56 performs the trial compression on all of the uncompressed blocks 50 of the preexisting user data of the source/initial storage object 49 stored in persistent storage 44 .
- ILC upgrade application 56 performs the trial compression on a representative subset of the uncompressed blocks 50 of the preexisting user data of the source/initial storage object 49 stored in persistent storage 44 . In one embodiment, in sub-sub-sub-step 215 , ILC upgrade application 56 randomly selects the representative subset of the uncompressed blocks 50 .
- ILC upgrade application 56 selects a respective number of uncompressed blocks 50 embodying that type of data in proportion to a respective prevalence of that type of data within the source/initial storage object 49 .
- sub-sub-sub-step 216 may include selecting (possibly randomly) 1,000 uncompressed blocks 50 that embody video data, 1,000 uncompressed blocks 50 that embody database data, and 500 uncompressed blocks 50 that embody text-based data for representative trial compression.
- ILC upgrade application 56 In sub-step 214 , ILC upgrade application 56 generates the compressibility metric (R) based on a compressed size of the resulting trial-compressed blocks and an uncompressed size of the uncompressed blocks 50 . Since in most systems, all uncompressed blocks 50 have the same size (e.g., 8 kilobytes), the uncompressed size is just the number of selected uncompressed blocks 50 (sub-sub-step 214 ) or the total number of uncompressed blocks 50 (sub-sub-step 213 ) multiplied by the standard size of an uncompressed block 50 . In one embodiment the compressibility metric (R) is calculated by dividing the uncompressed size by the compressed size.
- ILC upgrade application 56 calculates an overall expected compression ratio (R′) 62 for the resulting/target storage object 49 ′, 49 ′′ based on (i) an overhead parameter 60 specific to the ILC feature and (ii) the compressibility metric (R) 58 .
- Step 220 may either encompass sub-step 222 or sub-step 226 .
- the overhead parameter is defined to be a value, A, that represents the maximum permitted number (e.g., twelve) of compressed extents 150 per segment 149 (see FIG. 2 ) allowed by the ILC feature.
- ILC upgrade application 56 calculates the overall expected compression ratio (R′) 62 using the value A as well as the compressibility metric (R) 58 .
- R′ the overall expected compression ratio
- ILC upgrade application 56 calculates the overall expected compression ratio (R′) 62 by calculating the value of (A*R)/(A+R) (or an equivalent).
- the overhead parameter is another value, F that is pre-specified for the ILC feature.
- F is 1.66.
- ILC upgrade application 56 calculates the overall expected compression ratio (R′) 62 calculating the value of 1+(R ⁇ 1)/F (or an equivalent).
- ILC upgrade application 56 constrains the overall expected compression ratio (R′) 62 to not exceed the value A, which represents the maximum permitted number (e.g., twelve) of compressed extents 150 per segment 149 (see FIG. 2 ) allowed by the ILC feature. This is because the design of arrangement 100 (see FIG.
- ILC upgrade application 56 constrains R′ to be no less than a minimum compression ratio to trigger compression, such as, for example, 1.33.
- a minimum compression ratio to trigger compression such as, for example, 1.33.
- ILC upgrade application 56 determined whether or not the calculated overall expected compression ratio (R′) 62 is greater than the pre-defined ILC activation threshold 64 . If it is, then operation proceeds with step 140 . If the calculated overall expected compression ratio (R′) 62 is not greater than the pre-defined ILC activation threshold 64 , then operation proceeds directly to step 250 .
- step 230 has been expressed assuming a definition of R 58 as defined by an uncompressed size divided by a compressed size. However, in embodiments in which R 58 is defined as the inverse, the formulae of sub-steps 224 and 226 must be modified accordingly, and step 230 would have the opposite trigger.
- step 240 because the overall compression ratio (R′) 62 is high enough, ILC upgrade application 56 causes the ILC feature to be implemented with respect to the storage object 49 .
- step 240 takes the form of sub-step 242 , while in other embodiments, step 240 takes the form of sub-step 248 .
- ILC upgrade application 56 implements the ILC feature on the DSS computing device 32 itself by directing the ILC module 48 to implement the ILC feature on all new write instructions 70 to the resulting storage object 49 ′ (which is just a new way to refer to the initial storage object 49 once the ILC feature is enabled).
- the resulting storage object 49 ′ in response to the new write instructions 70 received from a host by the storage driver stack 46 , the resulting storage object 49 ′ newly points (as indicated by the dotted line) to compressed extents 54 (depicted as compressed extents 54 ( a )- 1 , 54 ( a )- 2 , . . .
- Sub-step 242 may include setting a flag in connection with the resulting storage object 49 ′ so that the storage diver stack 46 knows to route write requests directed at the resulting storage object 49 ′ through the ILC module 48 .
- sub-step 242 included ILC upgrade application 56 installing the ILC module 48 on the DSS computing device 32 as an upgrade to the storage driver stack 46 .
- sub-step 242 also includes sub-sub-step 244 .
- ILC upgrade application 56 performs a background compression on the uncompressed blocks 50 of preexisting data so that the metadata structures of the resulting storage object 49 ′ no longer point to the uncompressed blocks 50 ( 1 ), 50 ( 2 ), . . . of the preexisting data (as indicated by the dashed lines), but instead point to compressed extents 54 within data segments 52 of persistent storage 44 that represent compressed versions of those previously uncompressed blocks 50 ( 1 ), 50 ( 2 ), . . . .
- ILC upgrade application 56 causes the ILC feature to be implemented on the remote DSS computing device 32 ′ for target storage object 49 ′′, which is a migrated version of the source storage object 49 .
- ILC upgrade application 56 directs the migration module 66 to migrate the source storage object 49 to the target storage object 49 ′′ on the remote DSS computing device 32 ′.
- uncompressed blocks 50 of preexisting user data of the source storage object 49 are transferred to the remote DSS computing device 32 ′, they progress down the storage driver stack 46 of the remote DSS computing device 32 ′, and ILC module 48 of the remote DSS computing device 32 ′ intercepts them before being written to persistent storage 44 of remote DSS computing device 32 ′.
- ILC module 48 of remote DSS computing device 32 ′ compresses the uncompressed blocks 50 ( 1 ), 50 ( 2 ), . . . of preexisting user data of the source storage object 49 into compressed extents 50 ( m )- 1 , 50 ( m )- 2 , . . . of a data segment 52 ( m ) in persistent storage 44 of the remote DSS computing device 32 ′.
- data segment 52 ( m ) includes Q compressed extents 50 (depicted as compressed extents 50 ( m )- 1 , 50 ( m )- 2 , . . . , 50 ( m )-Q), where Q is some integer between 1 and A, inclusive.
- target storage object 49 ′′ points to the compressed extents 50 ( m )- 1 , 50 ( m )- 2 , . . . instead of to uncompressed blocks 50 ( 1 ), 50 ( 2 ), . . . .
- ILC upgrade application 56 directs the ILC module 48 of the remote DSS computing device 32 ′ to implement the ILC feature on all new write instructions 70 to the target storage object 49 ′′.
- the target storage object 49 ′′ in response to the new write instructions 70 received from a host by the storage driver stack 46 , the target storage object 49 ′′ newly points (as indicated by the dotted line) to compressed extents 54 ( a )- 1 , 54 ( a )- 2 , . . . , 54 ( a )-P within a data segment 52 ( a ) of persistent storage 44 of the remote DSS computing device 32 ′.
- method 200 ends at step 250 .
- FIG. 4 illustrates an example method 300 performed by a computing device (e.g., DSS computing device 32 ) for defining the value of F that may be specified for the ILC feature (see sub-step 226 of FIG. 2 ) in accordance with various embodiments. It should be understood that one or more of the steps or sub-steps of method 400 may be omitted in some embodiments. Similarly, in some embodiments, one or more steps or sub-steps may be combined together or performed in a different order.
- a computing device e.g., DSS computing device 32
- FIG. 4 illustrates an example method 300 performed by a computing device for defining the value of F that may be specified for the ILC feature (see sub-step 226 of FIG. 2 ) in accordance with various embodiments. It should be understood that one or more of the steps or sub-steps of method 400 may be omitted in some embodiments. Similarly, in some embodiments, one or more steps or sub-steps may be combined together or performed in a different order.
- a computing device scans a plurality of storage objects, ⁇ S 1 , S 2 , . . . , S n ⁇ on which the ILC feature has already been implemented to obtain, for each such storage object S i of the set, (I) a compressibility metric, R i , that indicates a representative block-level compressibility of user data of that storage object S i , and (II) an actual overall compression ratio, R′ i , of that storage object S i resulting from the ILC feature.
- the words “comprising,” “including,” “containing,” and “having” are intended to set forth certain items, steps, elements, or aspects of something in an open-ended fashion.
- the word “set” means one or more of something. This is the case regardless of whether the phrase “set of” is followed by a singular or plural object and regardless of whether it is conjugated with a singular or plural verb.
- ordinal expressions such as “first,” “second,” “third,” and so on, may be used as adjectives herein, such ordinal expressions are used for identification purposes and, unless specifically indicated, are not intended to imply any ordering or sequence.
- a “second” event may take place before or after a “first event,” or even if no first event ever occurs.
- an identification herein of a particular element, feature, or act as being a “first” such element, feature, or act should not be construed as requiring that there must also be a “second” or other such element, feature or act. Rather, the “first” item may be the only one.
- one embodiment includes a tangible non-transitory computer-readable storage medium (such as, for example, a hard disk, a floppy disk, an optical disk, flash memory, etc.) programmed with instructions, which, when performed by a computer or a set of computers, cause one or more of the methods described in various embodiments to be performed.
- a computer that is programmed to perform one or more of the methods described in various embodiments.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
-
- LEN 114: the length of the corresponding extent of compressed data; e.g., in bytes.
- LA 116: the logical address (e.g., A0, A1, A2, . . . , A11) of the corresponding extent of compressed data within the file.
- CP 118: a compression procedure (or algorithm) used to compress the data, such as LZ-L3, LZH-L4, “Hardware,” and so on.
Claims (15)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US15/966,584 US10585604B2 (en) | 2018-04-30 | 2018-04-30 | Tool for selectively deploying inline compression |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US15/966,584 US10585604B2 (en) | 2018-04-30 | 2018-04-30 | Tool for selectively deploying inline compression |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20190332288A1 US20190332288A1 (en) | 2019-10-31 |
| US10585604B2 true US10585604B2 (en) | 2020-03-10 |
Family
ID=68292510
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US15/966,584 Active 2038-09-25 US10585604B2 (en) | 2018-04-30 | 2018-04-30 | Tool for selectively deploying inline compression |
Country Status (1)
| Country | Link |
|---|---|
| US (1) | US10585604B2 (en) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11226740B2 (en) | 2019-10-30 | 2022-01-18 | EMC IP Holding Company LLC | Selectively performing inline compression based on data entropy |
| US11513739B2 (en) | 2019-07-31 | 2022-11-29 | EMC IP Holding Company LLC | File layer to block layer communication for block organization in storage |
| US11593312B2 (en) | 2019-07-31 | 2023-02-28 | EMC IP Holding Company LLC | File layer to block layer communication for selective data reduction |
| US11829624B2 (en) | 2019-04-29 | 2023-11-28 | EMC IP Holding Company LLC | Method, device, and computer readable medium for data deduplication |
| US12405734B2 (en) | 2023-10-27 | 2025-09-02 | Dell Products L.P. | Adaptively selecting compression process based on end-to-end performance |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20150149739A1 (en) * | 2013-11-25 | 2015-05-28 | Research & Business Foundation Sungkyunkwan University | Method of storing data in distributed manner based on technique of predicting data compression ratio, and storage device and system using same |
| US9779023B1 (en) | 2015-06-30 | 2017-10-03 | EMC IP Holding Company LLC | Storing inline-compressed data in segments of contiguous physical blocks |
| US9985649B1 (en) | 2016-06-29 | 2018-05-29 | EMC IP Holding Company LLC | Combining hardware and software approaches for inline data compression |
-
2018
- 2018-04-30 US US15/966,584 patent/US10585604B2/en active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20150149739A1 (en) * | 2013-11-25 | 2015-05-28 | Research & Business Foundation Sungkyunkwan University | Method of storing data in distributed manner based on technique of predicting data compression ratio, and storage device and system using same |
| US9779023B1 (en) | 2015-06-30 | 2017-10-03 | EMC IP Holding Company LLC | Storing inline-compressed data in segments of contiguous physical blocks |
| US9985649B1 (en) | 2016-06-29 | 2018-05-29 | EMC IP Holding Company LLC | Combining hardware and software approaches for inline data compression |
Non-Patent Citations (10)
| Title |
|---|
| "Framework for Inline Compression Performance Assessment," U.S. Appl. No. 15/281,252, filed Sep. 30, 2016. |
| Ivan Bassov, et al.; "Compressing Data in Line Using Weighted Compression Budgets," U.S. Appl. No. 15/392,639, filed Dec. 28, 2016. |
| Philippe Armangau, et al.; "Compression of Host I/O Data in a Storage Processor of a Data Storage System With Selection of Data Compression Components Based on a Current Fullness Level of a Persistent Cache," U.S. Appl. No. 15/957,065, filed Apr. 19, 2018. |
| Philippe Armangau, et al.; "Managing Inline Data Compression in Storage Systems," U.S. Appl. No. 15/393,443, filed Dec. 29, 2016. |
| Philippe Armangau, et al.; "Overwriting Compressed Data Extents," U.S. Appl. No. 15/499,206, filed Apr. 27, 2017. |
| Philippe Armangau, et al.; "Techniques for Efficiently Organizing Storage of Compressed Extents," U.S. Appl. No. 15/966,878, filed Apr. 30, 2018. |
| Soumyadeep Sen, et al.; "Unaligned IO Cache for Inline Compression Optimization," U.S. Appl. No. 15/884,739, filed Jan. 31, 2018. |
| Yaming Kuang, et al.; "Recovering Compressed Data to Reduce Data Loss," U.S. Appl. No. 15/395,968, filed Dec. 30, 2016. |
| Yining Si, et al.; "Inline Compression With Small-Write Compression Avoidance," U.S. Appl. No. 15/662,676, filed Jul. 28, 2017. |
| Yining Si, et al.; "Write Tagging for Selective Avoidance of Inline Compression," U.S. Appl. No. 15/499,467, filed Apr. 27, 2017. |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11829624B2 (en) | 2019-04-29 | 2023-11-28 | EMC IP Holding Company LLC | Method, device, and computer readable medium for data deduplication |
| US11513739B2 (en) | 2019-07-31 | 2022-11-29 | EMC IP Holding Company LLC | File layer to block layer communication for block organization in storage |
| US11593312B2 (en) | 2019-07-31 | 2023-02-28 | EMC IP Holding Company LLC | File layer to block layer communication for selective data reduction |
| US11226740B2 (en) | 2019-10-30 | 2022-01-18 | EMC IP Holding Company LLC | Selectively performing inline compression based on data entropy |
| US12405734B2 (en) | 2023-10-27 | 2025-09-02 | Dell Products L.P. | Adaptively selecting compression process based on end-to-end performance |
Also Published As
| Publication number | Publication date |
|---|---|
| US20190332288A1 (en) | 2019-10-31 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10585604B2 (en) | Tool for selectively deploying inline compression | |
| US11586366B2 (en) | Managing deduplication characteristics in a storage system | |
| US9779023B1 (en) | Storing inline-compressed data in segments of contiguous physical blocks | |
| US9122692B1 (en) | Systems and methods for reducing file-system fragmentation when restoring block-level backups utilizing an identification module, an optimization module, and a restore module | |
| US10585856B1 (en) | Utilizing data access patterns to determine compression block size in data storage systems | |
| US9798731B2 (en) | Delta compression of probabilistically clustered chunks of data | |
| US10372687B1 (en) | Speeding de-duplication using a temporal digest cache | |
| US9880928B1 (en) | Storing compressed and uncompressed data in blocks having different allocation unit sizes | |
| US10936228B2 (en) | Providing data deduplication in a data storage system with parallelized computation of crypto-digests for blocks of host I/O data | |
| US10437474B1 (en) | Overwriting compressed data extents | |
| CN112684975A (en) | Data storage method and device | |
| US12174709B2 (en) | Reducing bandwidth during synthetic restores from a deduplication file system | |
| US11106374B2 (en) | Managing inline data de-duplication in storage systems | |
| US10514861B1 (en) | Reporting of space savings due to pattern matching in storage systems | |
| US11526469B1 (en) | File system reorganization in the presence of inline compression | |
| US10606499B2 (en) | Computer system, storage apparatus, and method of managing data | |
| US10613937B2 (en) | Capturing compression efficiency metrics for processing data | |
| US11194498B1 (en) | Inline compression with small-write compression avoidance | |
| US11593312B2 (en) | File layer to block layer communication for selective data reduction | |
| US10409496B1 (en) | Write tagging for selective avoidance of inline compression | |
| US10922027B2 (en) | Managing data storage in storage systems | |
| JP6262878B2 (en) | Storage device | |
| EP4052374B1 (en) | Storage efficiency increase in a storage system | |
| US11513739B2 (en) | File layer to block layer communication for block organization in storage | |
| US10365828B1 (en) | Techniques for efficiently organizing storage of compressed extents |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| AS | Assignment |
Owner name: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLAT Free format text: PATENT SECURITY AGREEMENT (CREDIT);ASSIGNORS:DELL PRODUCTS L.P.;EMC CORPORATION;EMC IP HOLDING COMPANY LLC;REEL/FRAME:046286/0653 Effective date: 20180529 Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., A Free format text: PATENT SECURITY AGREEMENT (NOTES);ASSIGNORS:DELL PRODUCTS L.P.;EMC CORPORATION;EMC IP HOLDING COMPANY LLC;REEL/FRAME:046366/0014 Effective date: 20180529 Owner name: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT, NORTH CAROLINA Free format text: PATENT SECURITY AGREEMENT (CREDIT);ASSIGNORS:DELL PRODUCTS L.P.;EMC CORPORATION;EMC IP HOLDING COMPANY LLC;REEL/FRAME:046286/0653 Effective date: 20180529 Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT, TEXAS Free format text: PATENT SECURITY AGREEMENT (NOTES);ASSIGNORS:DELL PRODUCTS L.P.;EMC CORPORATION;EMC IP HOLDING COMPANY LLC;REEL/FRAME:046366/0014 Effective date: 20180529 |
|
| AS | Assignment |
Owner name: EMC IP HOLDING COMPANY LLC, MASSACHUSETTS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BASSOV, IVAN;REEL/FRAME:046077/0361 Effective date: 20180504 |
|
| 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 |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT RECEIVED |
|
| 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., 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: EMC IP HOLDING COMPANY LLC, TEXAS Free format text: RELEASE OF SECURITY INTEREST AT REEL 046286 FRAME 0653;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058298/0093 Effective date: 20211101 Owner name: EMC CORPORATION, MASSACHUSETTS Free format text: RELEASE OF SECURITY INTEREST AT REEL 046286 FRAME 0653;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058298/0093 Effective date: 20211101 Owner name: DELL PRODUCTS L.P., TEXAS Free format text: RELEASE OF SECURITY INTEREST AT REEL 046286 FRAME 0653;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058298/0093 Effective date: 20211101 |
|
| AS | Assignment |
Owner name: EMC IP HOLDING COMPANY LLC, TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (046366/0014);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:060450/0306 Effective date: 20220329 Owner name: EMC CORPORATION, MASSACHUSETTS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (046366/0014);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:060450/0306 Effective date: 20220329 Owner name: DELL PRODUCTS L.P., TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (046366/0014);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:060450/0306 Effective date: 20220329 |
|
| AS | Assignment |
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 (053546/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:071642/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 (053546/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:071642/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 (053546/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:071642/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 (053546/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:071642/0001 Effective date: 20220329 Owner name: EMC CORPORATION, MASSACHUSETTS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:071642/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 (053546/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:071642/0001 Effective date: 20220329 Owner name: EMC IP HOLDING COMPANY LLC, TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:071642/0001 Effective date: 20220329 |
|
| 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 |