US11093170B2 - Dataset splitting based on workload footprint analysis - Google Patents
Dataset splitting based on workload footprint analysis Download PDFInfo
- Publication number
- US11093170B2 US11093170B2 US16/372,929 US201916372929A US11093170B2 US 11093170 B2 US11093170 B2 US 11093170B2 US 201916372929 A US201916372929 A US 201916372929A US 11093170 B2 US11093170 B2 US 11093170B2
- Authority
- US
- United States
- Prior art keywords
- data
- split
- input
- determining
- application
- 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
- 238000004458 analytical method Methods 0.000 title abstract description 5
- 238000003860 storage Methods 0.000 claims abstract description 152
- 238000000034 method Methods 0.000 claims abstract description 134
- 238000004891 communication Methods 0.000 claims description 24
- 230000000694 effects Effects 0.000 claims description 20
- 238000012545 processing Methods 0.000 claims description 16
- 238000012544 monitoring process Methods 0.000 claims description 9
- 230000006399 behavior Effects 0.000 claims description 5
- 238000010801 machine learning Methods 0.000 claims description 4
- 230000004044 response Effects 0.000 claims 1
- 238000013500 data storage Methods 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 116
- 238000007726 management method Methods 0.000 description 31
- 238000005516 engineering process Methods 0.000 description 11
- 230000008859 change Effects 0.000 description 10
- 230000003287 optical effect Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 230000037406 food intake Effects 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000002609 medium Substances 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000002096 quantum dot Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000029305 taxis Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 239000006163 transport media Substances 0.000 description 1
Images
Classifications
-
- 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
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- 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
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- 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
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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
- 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
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- 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
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- 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
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Definitions
- the present application relates generally to techniques for splitting a computer dataset between multiple storage locations based on a workload footprint analysis of that dataset.
- a computer dataset can be split between multiple computer storage locations (e.g., on premises storage and cloud storage). These different storage locations can have different characteristics, e.g., in terms of cost or performance.
- FIG. 1 illustrates a block diagram of an example computer system that can facilitate splitting a computer dataset between multiple storage locations based on a workload footprint analysis of that dataset, in accordance with certain embodiments of this disclosure
- FIG. 2 illustrates an example split of a dataset, in accordance with certain embodiments of this disclosure
- FIG. 3 illustrates an example process flow for determining a working dataset, in accordance with certain embodiments of this disclosure
- FIG. 4 illustrates an example process flow for determining input/output (I/O) on a dataset, in accordance with certain embodiments of this disclosure
- FIG. 5 illustrates an example process flow for determining an application that corresponds to I/O on a dataset, in accordance with certain embodiments of this disclosure
- FIG. 6 illustrates an example process flow for determining a split for a dataset, in accordance with certain embodiments of this disclosure
- FIG. 7 illustrates an example process flow for determining how a working dataset changes over time, in accordance with certain embodiments of this disclosure
- FIG. 8 illustrates an example process flow for determining a split for a dataset that changes over time, in accordance with certain embodiments of this disclosure
- FIG. 9 illustrates an example process flow for responding to a misconfiguration, in accordance with certain embodiments of this disclosure.
- FIG. 10 illustrates another example process flow for determining a split for a dataset, in accordance with certain embodiments of this disclosure
- FIG. 11 illustrates an example block diagram of a computer operable to execute certain embodiments of this disclosure.
- Different applications can access storage objects (e.g., logical unit numbers (LUNs), file systems, etc.) differently.
- the corresponding I/O patterns of these different accesses by different applications can be different, e.g., in terms of block size, read/write split, random access/sequential access split, etc.
- each application can have its own workload footprint, which can represent what part of a dataset is accessed by the I/O. If a workload footprint is small (compared to the overall dataset), and relatively stable, then the unused or infrequently used part of the dataset (sometimes referred to as a “cold” part of the dataset) can be offloaded to cheaper storage (or cloud storage). This offloading of some data of a dataset can be an example of splitting the dataset.
- federated tiered storage FTS
- a computer system can download data that will likely be accessed in the future (which can be referred to as the data becoming “hot”) and offload data that will likely become cold.
- a problem with data splitting is that a user of a computer system might have no detailed information about the system's workload. As a result, a user might not be able to understand if there is a benefit from data splitting.
- a solution to these problems can involve automatic workload footprint detection, evaluating footprint stability, and creating a recommendation for dataset distribution.
- this recommendation for a split to a dataset can be automatically be applied to the dataset.
- a storage array can monitor the I/O access patterns for the different storage objects that it holds.
- This pattern-related information can include block size, read/write split, and random access/sequential access split.
- the storage array can monitor the working set related information, such as by monitoring which regions of logical address space are accessed.
- a fully automated storage tiering (FAST) technology can be used to collect this data.
- the storage array can aggregate this collected data and send it to a central location, such as a data lake (which can be a single storage of all data for the computer storage system, including both raw data and transformed data, such as a report generated based on the raw data), or a CLOUDIQ data monitoring application, using a Call Home communication link between the computer storage system and the central location.
- a data lake which can be a single storage of all data for the computer storage system, including both raw data and transformed data, such as a report generated based on the raw data
- CLOUDIQ data monitoring application using a Call Home communication link between the computer storage system and the central location.
- the received data can be processed.
- the I/O patterns can be used to detect the application generating the I/O. Then, information can be maintained about workload footprints and a stability of a footprint for particular applications. Additionally, the working set related information can be used to identify the workload footprint, and how it can change over time.
- the system can evaluate whether dataset splitting between two storage locations (e.g., two arrays, or an array and cloud storage) is appropriate.
- the system can perform one or more corrective actions.
- the system can notify a user that he or she can benefit from dataset splitting, or that the current split is suboptimal as it can degrade the performance of this particular workload.
- the system can provide a recommended configuration change to the user.
- the system can apply the recommended configuration change automatically.
- a workload footprint can have different periods in its life cycle. These periods can be of activity or inactivity.
- An example involves a state tax agency database, which can be accessed intensively during a short period of time when taxes are collected.
- the workload can have an intensive I/O, and a workload footprint equal to the size of the dataset.
- the I/O and the workload footprint can be small.
- activity periods can have different sub-periods. For example, data can be ingested first, and then processed second. Workload footprints and I/O access patterns for these sub-periods can be different.
- a workload footprint is small and relatively stable, then the cold part of the dataset can be offloaded to a cheaper (or slower, etc.) storage type.
- FTS can be used to split the dataset.
- the computer storage system can offload the data that is becoming cold and download the data that is becoming hot.
- different media can be determined to be used for storing the data that is becoming hot.
- a computer storage system can utilize low-endurance solid state drives (SSDs) for read-intensive data, and higher-endurance SSDs for write-intensive data.
- SSDs solid state drives
- a solution that addresses a workload footprint changing over time can be as follows.
- a computer storage system can monitor the I/O access patterns for the storage objects that it holds. Information about these I/O access patterns can include block size, read/write split, and random/sequential split.
- the storage system can monitor the working set related information, such as by monitoring which regions of logical address space are accessed.
- a FAST technology can be used to collect this data.
- the storage array can aggregate this collected data and send it to a central location, such as a data lake (which can be a single storage of all data for the computer storage system, including both raw data and transformed data, such as a report generated based on the raw data), or a CLOUDIQ data monitoring application, using a Call Home communication link between the computer storage system and the central location.
- a data lake which can be a single storage of all data for the computer storage system, including both raw data and transformed data, such as a report generated based on the raw data
- CLOUDIQ data monitoring application using a Call Home communication link between the computer storage system and the central location.
- the received data can be processed.
- the I/O patterns can be used to detect the application generating the I/O. Then, information can be maintained about workload footprints and a stability of a footprint for particular applications. Additionally, the working set related information can be used to identify the workload footprint, and how it can change over time.
- FIG. 1 illustrates a block diagram of an example computer system 100 that can facilitate splitting a computer dataset between multiple storage locations based on a workload footprint analysis of that dataset, in accordance with certain embodiments of this disclosure.
- Computer system comprises computer host 102 , computer storage 104 , and dataset split management component 110 .
- aspects of computer host 102 , computer storage 104 , and dataset split management component 110 can each be implemented with aspects of computer 1102 of FIG. 11 .
- computer storage 104 comprises storage location 1 106 and storage location 2 108 .
- Computer host 102 can be a computer that communicates with computer storage 104 to access storage resources provided by computer storage 104 . In some examples, it is one or more applications of computer host 102 that accesses storage resources provided by computer storage 104 . This access can be referred to as I/O, and can have various characteristics, such as a rate of access, a ratio of reads to writes, and a ratio of random accesses to sequential accesses.
- Computer storage 104 can be a datacenter, or other data storage, such as a VMAX computer storage system or a POWERMAX computer storage system. As depicted, computer storage 104 can comprise storage location 1 106 and storage location 2 108 . There can be examples that utilize more storage locations than depicted here, or storage locations that are not within computer storage 104 (such as cloud storage that is accessible via a communications network).
- Storage location 1 106 and storage location 2 108 can be differentiated according to some parameter, such as latency for access by computer host 102 , cost, or durability (where a lower-durability storage can be used to store data that is primarily read, while a higher-durability storage can be used to store data that it primarily written).
- some parameter such as latency for access by computer host 102 , cost, or durability (where a lower-durability storage can be used to store data that is primarily read, while a higher-durability storage can be used to store data that it primarily written).
- storage location 1 106 and storage location 2 108 store a dataset that is accessed by computer host 102 . Where a portion of the dataset is accessed, or accessed within a time period, that portion of the dataset can be considered to be the working dataset.
- Computer storage 104 can send information regarding data access to dataset split management component 110 .
- This information can include information about the dataset and information about the characteristics of the I/O (e.g., as a rate of access, a ratio of reads to writes, a ratio of random accesses to sequential accesses, etc.).
- Dataset split management component 110 can take this information and determine an application utilized by computer host 102 in accessing the dataset, and the working dataset. Based on the application and the working dataset, dataset split management component 110 can determine a split for the data between storage location 1 106 and storage location 2 108 . In some examples, dataset split management component 110 can then implement the split by moving data between storage location 1 106 and storage location 2 108 .
- Dataset split management component 110 can implement aspects of the process flows of FIGS. 3-10 in the course of determining a split for a dataset.
- FIG. 2 illustrates an example split 200 of a dataset, in accordance with certain embodiments of this disclosure.
- the split 200 can be implemented between storage location 1 106 of FIG. 1 and storage location 2 108 , as determined by data split management component 110 .
- Split 200 comprises dataset 202 , which in turn comprises dataset subportion 1 210 and dataset subportion 2 212 .
- the separation of dataset 202 into dataset subportion 1 210 and dataset subportion 2 212 can be identified as being a split 204 .
- dataset 202 is split into more than two subportions.
- Dataset subportion 1 210 is stored in storage location 1 206 (which can be similar to storage location 1 106 of FIG. 1 ).
- Dataset subportion 2 212 is stored in storage location 2 208 (which can be similar to storage location 1 108 of FIG. 1 ).
- FIG. 3 illustrates an example process flow 300 for determining a working dataset, in accordance with certain embodiments of this disclosure.
- process flow 300 is an example process flow, and that there can be embodiments that implement more or fewer operations than are depicted in process flow 300 , or that implement the operations of process flow 300 in a different order than is depicted in process flow 300 .
- process flow 300 can be implemented with computer storage 104 and/or dataset split management component 110 of FIG. 1 .
- Process flow 300 begins with 302 , and then moves to operation 304 .
- Operation 304 depicts monitoring I/O access to a dataset. This I/O access can be from computer host 102 to a dataset stored by computer storage 104 , and can be monitored by computer storage 104 . After operation 304 , process flow 300 moves to operation 306 .
- Operation 306 depicts determining logical address spaces accessed by the I/O.
- Computer storage 104 can present all or a portion of its storage resources to computer host 102 with a logical address space that abstracts away where the data is actually stored. For example, computer host 102 can be presented with a single, contiguous logical address space for the dataset, while the dataset is actually stored in multiple discrete locations across multiple disks.
- computer host 102 can refer to various logical addresses of the dataset, and these referenced logical addresses can be monitored and stored by computer storage 104 . After operation 306 , process flow 300 moves to operation 308 .
- Operation 308 depicts determining a working dataset based on the logical address spaces accessed.
- computer storage 104 can determine a working dataset as all logical address spaces accessed by computer host 102 .
- computer storage 104 can determine a working dataset as those logical address spaces accessed by computer host 102 that have been accessed within a predefined time period (e.g., accessed within the past hour, or the past month).
- process flow 300 moves to 310 , where process flow 300 ends.
- FIG. 4 illustrates an example process flow 400 for determining I/O on a dataset, in accordance with certain embodiments of this disclosure.
- process flow 400 is an example process flow, and that there can be embodiments that implement more or fewer operations than are depicted in process flow 400 , or that implement the operations of process flow 400 in a different order than is depicted in process flow 400 .
- process flow 400 can be implemented with computer storage 104 and/or dataset split management component 110 of FIG. 1 .
- Process flow 400 begins with 402 , and then moves to operation 404 .
- Operation 404 depicts monitoring I/O access to a dataset.
- operation 404 can be implemented in a similar manner as operation 304 of FIG. 3 .
- process flow 400 moves to operation 406 .
- Operation 406 depicts determining a block size corresponding to the I/O access.
- a block size can vary between disks used to store data in computer storage 104 , and can be determined by computer storage 104 , which can access an application programming interface (API) of the disk to query the disk for the block size the disk is using.
- API application programming interface
- Operation 408 depicts determining a read/write split corresponding to the I/O access.
- computer storage 104 can determine an amount of data that is read from computer storage 104 by computer host 102 , as well as an amount of data that is written to computer storage 104 by computer host 102 , and maintain a metric of each. In some examples, the metric identifies how they are related, such as a ratio of reads to writes. After operation 408 , process flow 400 moves to operation 410 .
- Operation 410 depicts determining a random/sequential split corresponding to the I/O access.
- a sequential read or write can comprise a read or write or a sequential sequence of logical address space that is referenced by computer host 102 .
- a random read or write can then comprise a read or write that is not classified as sequential. In some examples, a short sequence of otherwise sequential reads or writes below a certain length can be considered to be random reads or writes.
- process flow 400 moves to 412 , where process flow 400 ends.
- FIG. 5 illustrates an example process flow 500 for determining an application that corresponds to I/O on a dataset, in accordance with certain embodiments of this disclosure.
- process flow 500 is an example process flow, and that there can be embodiments that implement more or fewer operations than are depicted in process flow 500 , or that implement the operations of process flow 500 in a different order than is depicted in process flow 500 .
- process flow 500 can be implemented with computer storage 104 and/or dataset split management component 110 of FIG. 1 .
- Process flow 500 begins with 502 , and then moves to operation 504 .
- Operation 504 depicts determining an I/O access pattern for a dataset.
- dataset split management component 110 can receive information about the I/O from computer storage 104 that was generated according to process flow 400 of FIG. 4 .
- Dataset split management component 110 can process this information to determine patterns in the I/O access for the dataset.
- machine learning techniques can be implemented to determine the patterns in the I/O access for the dataset. After operation 504 , process flow 500 moves to operation 506 .
- Operation 506 depicts determining an application corresponding to the I/O access pattern.
- dataset split management component 110 maintains stored associations between various I/O access patterns and applications that generate those I/O access patterns. In such examples, in operation 506 , dataset split management component 110 compares the I/O access pattern to the stored I/O access patterns.
- dataset split management component 110 finds a stored I/O access pattern that is sufficiently similar to the I/O access pattern, dataset split management component 110 can determine that the application corresponding to the I/O access pattern is the application corresponding to this sufficiently similar stored I/O access pattern. After operation 506 , process flow 500 moves to 508 where process flow 500 ends.
- FIG. 6 illustrates an example process flow 600 for determining a split for a dataset, in accordance with certain embodiments of this disclosure.
- process flow 600 is an example process flow, and that there can be embodiments that implement more or fewer operations than are depicted in process flow 600 , or that implement the operations of process flow 600 in a different order than is depicted in process flow 600 .
- process flow 600 can be implemented with computer storage 104 and/or dataset split management component 110 of FIG. 1 .
- Process flow 600 begins with 602 , and then moves to operation 604 .
- Operation 604 depicts determining an application that is performing I/O access to a dataset.
- operation 604 can be implemented in a similar manner as process flow 500 of FIG. 5 . After operation 604 , process flow 600 moves to operation 606 .
- Operation 606 depicts determining a working dataset of the dataset.
- operation 606 can be implemented in a similar manner as operation 308 of FIG. 3 . After operation 606 , process flow 600 move to operation 608 .
- Operation 608 depicts determining a split for the dataset.
- a split can be an arrangement of the dataset across multiple storage locations (e.g., a first portion of the dataset is stored in storage location 1 106 of FIG. 1 , and a second portion of the dataset is stored in storage location 2 108 of FIG. 1 ).
- Dataset split management component 110 can determine the split based on the application identified in operation 604 and the working dataset determined in operation 606 .
- dataset split management component 110 utilizes other information in determining the split, such as a latency of data access by computer host 102 to various storage locations. After operation 608 , process flow 600 moves to 610 , where process flow 600 ends.
- FIG. 7 illustrates an example process flow 700 for determining how a working dataset changes over time, in accordance with certain embodiments of this disclosure.
- process flow 700 is an example process flow, and that there can be embodiments that implement more or fewer operations than are depicted in process flow 700 , or that implement the operations of process flow 700 in a different order than is depicted in process flow 700 .
- process flow 700 can be implemented with computer storage 104 and/or dataset split management component 110 of FIG. 1 .
- Process flow 700 begins with 702 , and then moves to operation 704 .
- Operation 704 depicts monitoring I/O access to a dataset.
- operation 704 can be implemented in a similar manner as operation 304 of FIG. 3 . After operation 704 , process flow 700 moves to operation 706 .
- Operation 706 depicts determining periods of different I/O activities. These different periods can be periods like inactive (or low activity), data ingestion, and data processing, and can have different underlying I/O activities. For example, an inactive period can have little-to-no I/O. A period of data ingestion can have mainly writing I/O, and a period of data processing can have a mainly reading I/O. Dataset split management component 110 can process the monitored I/O to identify these different periods.
- a split for the dataset can be determined for each period, and the split can be modified over time based on these periods (e.g., usually a first split is implemented which corresponds to a period of inactivity; but near the end of a month, a second split is implemented that corresponds to a period of data ingestion, followed shortly thereafter by a third split that corresponds to a period of data processing, before returning to the first split for most of the next month).
- process flow 700 moves to 708 , where process flow 700 ends.
- FIG. 8 illustrates an example process flow 800 for determining a split for a dataset that changes over time, in accordance with certain embodiments of this disclosure.
- process flow 800 is an example process flow, and that there can be embodiments that implement more or fewer operations than are depicted in process flow 800 , or that implement the operations of process flow 800 in a different order than is depicted in process flow 800 .
- process flow 800 can be implemented with computer storage 104 and/or dataset split management component 110 of FIG. 1 .
- Process flow 800 begins with 802 , and then moves to operation 804 .
- Operation 804 depicts determining periods of different I/O activities. In some examples, operation 804 can be implemented in a similar manner as operation 706 of FIG. 7 . After operation 804 , process flow 800 moves to operation 806 .
- Operation 806 depicts determining a split for different periods of different I/O activities.
- dataset split management component 110 of FIG. 1 can determine a split in a manner similar to as described for operation 608 , but for each identified period of different I/O activities.
- an amount of time and/or processing resources to effectuate the split e.g., an amount of time to copy data of the dataset to storage locations identified by a particular split
- process flow 800 move to 808 , where process flow 800 ends.
- FIG. 9 illustrates an example process flow 900 for responding to a misconfiguration, in accordance with certain embodiments of this disclosure.
- process flow 900 is an example process flow, and that there can be embodiments that implement more or fewer operations than are depicted in process flow 900 , or that implement the operations of process flow 900 in a different order than is depicted in process flow 900 .
- process flow 900 can be implemented with computer storage 104 and/or dataset split management component 110 of FIGACT. 1 .
- Process flow 900 begins with 902 , and then moves to operation 904 .
- Operation 904 depicts that there is a misconfiguration for a dataset split.
- a misconfiguration can be a deviation from a split determined operation 608 of FIG. 6 or operation 806 of FIG. 8 .
- process flow 900 moves to operation 906 .
- Operation 906 depicts implementing a mitigation to the misconfiguration for the dataset split.
- operation 906 comprises notifying a user that he or she can benefit from the dataset being split in a particular way, or that the current split is suboptimal because it degrades performance for a particular workload.
- operation 906 comprises providing a recommended configuration for a split to a user.
- operation 906 comprises implementing the split by transferring data of a dataset between storage locations. After operation 906 , process flow 900 moves to 908 , where process flow 900 ends.
- FIG. 10 illustrates another example process flow 1000 for determining a split for a dataset, in accordance with certain embodiments of this disclosure.
- process flow 1000 is an example process flow, and that there can be embodiments that implement more or fewer operations than are depicted in process flow 1000 , or that implement the operations of process flow 1000 in a different order than is depicted in process flow 1000 .
- process flow 1000 can be implemented with computer storage 104 and/or dataset split management component 110 of FIG. 1 .
- Process flow 1000 begins with 1002 , and then moves to operation 1004 .
- Operation 1004 depicts monitoring an I/O access of data of a set of data stored on a first portion of the system by a remote device.
- operation 1004 comprises determining a first application utilized by a remote device corresponding to an I/O access of a data of a set of data stored on a first portion of the system by a remote device.
- operation 1004 comprises determining a first application utilized by a remote computer corresponding to access of a data of a set of data stored on a first portion of the system.
- computer storage 104 of FIG. 1 can monitor I/O access of data of a set of data stored on computer storage 104 by computer host 102 .
- the I/O access of the data comprises an indication of a first amount of reads from the data and a second amount of writes to the data. That is, the I/O access of data can comprise a read/write split. In some examples, the I/O access of the data comprises an indication of a first amount of random accesses of the data and a second amount of sequential accesses of the data. That is, the I/O access of data can comprise a random/sequential split. In some examples, the I/O access of the data comprises an indication of a block size of a storage object used to store the data.
- process flow 1000 moves to operation 1006 .
- Operation 1006 depicts identifying a region of logical address space corresponding to the access of the data.
- operation 1006 comprises determining a footprint of the data being accessed by the first application based on a region of logical address space corresponding to the access of data.
- the logical address space may be a logical address space utilized by a computer host (e.g., computer host 102 of FIG. 1 ) to address storage offered by computer storage 104 .
- the regional of logical address space is not a contiguous region, but comprises multiple separate portions of the logical address space.
- process flow 1000 moves to operation 1008 .
- Operation 1008 depicts determining a first application utilized by the remote device corresponding to the I/O access of the data.
- a computer application that executes on computer host 102 of FIG. 1 initiates the data access.
- dataset split management component 110 of FIG. 1 can determine the first application.
- dataset split management component 110 can receive information about the I/O access of the data from computer storage 104 .
- Dataset split management component 110 can also maintain an association between various I/O access patterns and corresponding applications that generate those I/O access patterns in a computer memory.
- Dataset split management component 110 can compare the I/O access received from computer storage 104 with these stored associations of I/O access patterns and corresponding applications to determine an I/O access pattern (and, thus, an application) that matches the I/O access received from computer storage 104 .
- comparing the I/O to known I/O patterns for applications is expressed as determining that the I/O access of the data has a predefined level of similarity with a sample I/O access of a group of sample I/O accesses, the sample I/O access corresponding to the first application.
- determining the first application utilized by the remote device comprises determining a second application utilized by the remote device corresponding to the I/O access of the data. That is, the I/O can be generated by multiple applications of a computer host (e.g., computer host 102 of FIG. 1 ).
- process flow 1000 moves to operation 1010 .
- Operation 1010 depicts determining a footprint of the data being accessed by the first application based on the region of logical address space.
- the footprint (sometimes referred to as a workset footprint) can be the data referred to by the logical address space accessed.
- the logical address space accessed within a given predetermined time period (e.g., the past hour) can be considered in determining the footprint of the data being accessed by the first application.
- process flow 1000 moves to operation 1012 .
- Operation 1012 depicts determining a first split of storing the set of data between the first portion of the system and a second portion of the system based on the first application and the footprint.
- This first split can comprise storing hot data in a low-latency storage (e.g., storage location 1 106 of FIG. 1 ), and storing cold data in a higher-latency storage (e.g., storage location 2 108 ).
- operation 1012 comprises determining the first split based on a latency associated with accessing the set of data by the remote device. That is, latency can be considered in determining how to split the data.
- operation 1012 comprises determining a second split of storing the set of data between the first portion of the system and a second portion of the system based on the first application and the footprint. That is, a split can change over time, such as where I/O access patterns change over time.
- operation 1012 comprises, at the second time, storing the set of data according to the second split. That is, data can be moved between storage locations over time where the split changes over time.
- determining the second split comprises determining that the first split corresponds to a first footprint, and that the second split corresponds to a second footprint. That is, a split can change over time where a workset footprint of a dataset changes over time.
- operation 1012 comprises determining a second split of storing the set of data between the first portion of the system and a second portion of the system based on known I/O activity associated with the first application. That is, in some examples, a prediction can be made about how the split will change over time based on the application being used.
- operation 1012 comprises determining a second split of storing the set of data between the first portion of the system and a second portion of the system based on observed user behavior associated with the remote device. That is, in some examples, a prediction can be made about how the split will change over time based on observed user behavior. This observed user behavior can relate to how a user is using an application to generate I/O to computer storage.
- operation 1012 comprises determining a second split of storing the set of data between the first portion of the system and a second portion of the system based on performing machine learning on the remote device or a second device. That is, a predication can be made to how a split will change over time based on using machine learning techniques.
- the footprint is associated with a type of activity
- operation 1012 comprises determining the first split based on the type of activity.
- the type of activity comprises at least one from a set, the set comprising no activity, ingesting the data, and processing the data.
- No activity can generally comprise a period of little-to-no I/O access of a dataset.
- Ingesting data can generally comprise a period where data is written to a dataset.
- Processing data can generally comprise a period where data is read from a dataset, and, possibly processed data is written back to the dataset.
- process flow 1000 moves to operation 1014 .
- Operation 1014 depicts storing an indication of the first split in the first memory or in a second memory.
- operation 1014 comprises storing an indication of the first split in a memory. After a split has been determined, this result can be stored in a computer memory, and, optionally, other actions can be taken regarding the split, such as implementing the split on the dataset.
- operation 1014 comprises notifying a first user associated with the remote computer of the first split.
- Notifying the first user can comprise presenting a notification of the recommended first split in a user interface accessible to the first user.
- notifying the first user comprises providing a recommended configuration to the first user. This recommended configuration can comprise the split of the dataset.
- operation 1014 comprises storing the set of data between the first portion of the system and the second portion of the system in accordance with the first split. That is, in some examples, the split can be automatically applied to the dataset without manual intervention by a user.
- process flow 1000 moves to 1016 , where process flow 1000 ends.
- FIG. 11 illustrates a block diagram of a computer 1102 operable to execute the disclosed storage architecture in accordance with aspects described herein.
- aspects of computer 1102 can be used to implement aspects of computer host 102 , computer storage 104 , and/or dataset split management component 110 of FIG. 1 , and/or storage location 1 206 and/or storage location 2 208 of FIG. 2 .
- computer 1102 can implement aspects of the operating procedures of FIGS. 3-10 to provide for a type-based message bus with message type hierarches for non-object oriented applications.
- FIG. 11 illustrates a block diagram of a computer 1102 operable to execute the disclosed communication architecture.
- FIG. 11 and the following discussion are intended to provide a brief, general description of a suitable computing environment 1100 in which the various aspects of the specification can be implemented. While the specification has been described above in the general context of computer-executable instructions that can run on one or more computers, those skilled in the art will recognize that the specification also can be implemented in combination with other program modules and/or as a combination of hardware and software.
- program modules include routines, programs, components, data structures, etc., that perform particular tasks or implement particular abstract data types.
- inventive methods can be practiced with other computer system configurations, including single-processor or multiprocessor computer systems, minicomputers, mainframe computers, as well as personal computers, hand-held computing devices, microprocessor-based or programmable consumer electronics, and the like, each of which can be operatively coupled to one or more associated devices.
- the illustrated aspects of the specification can also be practiced in distributed computing environments where certain tasks are performed by remote processing devices that are linked through a communications network.
- program modules can be located in both local and remote memory storage devices.
- Computer-readable storage media can be any available storage media that can be accessed by the computer and includes both volatile and nonvolatile media, removable and non-removable media.
- Computer-readable storage media can be implemented in connection with any method or technology for storage of information such as computer-readable instructions, program modules, structured data, or unstructured data.
- Computer-readable storage media can include, but are not limited to, random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, compact disc read only memory (CD-ROM), digital versatile disc (DVD; sometimes referred to as digital video disc) or other optical disc storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or other tangible and/or non-transitory media which can be used to store desired information.
- Computer-readable storage media can be accessed by one or more local or remote computing devices, e.g., via access requests, queries or other data retrieval protocols, for a variety of operations with respect to the information stored by the medium.
- Communications media typically embody computer-readable instructions, data structures, program modules or other structured or unstructured data in a data signal such as a modulated data signal, e.g., a carrier wave or other transport mechanism, and includes any information delivery or transport media.
- modulated data signal or signals can refer to a signal that has one or more of its characteristics set or changed in such a manner as to encode information in one or more signals.
- communication media include wired media, such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF), infrared and other wireless media.
- RF radio frequency
- the example environment 1100 for implementing various aspects of the specification includes a computer 1102 , the computer 1102 including a processing unit 1104 , a system memory 1106 and a system bus 1108 .
- the component(s), server(s), node(s), cluster(s), system(s), and/or device(s) disclosed herein can each include at least a portion of the computer 1102 .
- the system bus 1108 can couple system components including, but not limited to, the system memory 1106 to the processing unit 1104 .
- the processing unit 1104 can be any of various commercially-available or custom processors. Dual microprocessors and other multi-processor architectures can also be employed as the processing unit 1104 .
- the system bus 1108 can be any of several types of bus structure that can further interconnect to a memory bus (with or without a memory controller), a peripheral bus, and a local bus using any of a variety of commercially available bus architectures.
- the system memory 1106 can include ROM 1110 and RAM 1112 .
- a basic input/output system (BIOS) can be stored in a non-volatile memory 1110 such as ROM, erasable programmable read-only memory (EPROM), EEPROM, where the BIOS can contain the basic routines that help to transfer information between elements within the computer 1102 , such as during startup.
- the RAM 1112 can also include a high-speed RAM such as static RAM for caching data, or NVRAM.
- the computer 1102 further includes an internal hard disk drive (HDD) 1114 , which internal hard disk drive 1114 can also be configured for external use in a suitable chassis (not shown), a magnetic floppy disk drive (FDD) 1116 , (e.g., to read from or write to a removable diskette 1118 ) and an optical disc drive 1120 , (e.g., reading a CD-ROM disc 1122 or, to read from or write to other high capacity optical media such as the DVD).
- the hard disk drive 1114 , magnetic disk drive 1116 and optical disc drive 1120 can be connected to the system bus 1108 by a hard disk drive interface 1124 , a magnetic disk drive interface 1126 and an optical drive interface 1128 , respectively.
- the interface 1124 for external drive implementations can include at least one or both of Universal Serial Bus (USB) and Institute of Electrical and Electronics Engineers (IEEE) 1194 interface technologies. Other external drive connection technologies are within contemplation of the subject disclosure.
- the drives and their associated computer-readable storage media can provide nonvolatile storage of data, data structures, computer-executable instructions, and so forth.
- the drives and storage media can accommodate the storage of any data in a suitable digital format.
- computer-readable storage media refers to a HDD, a removable magnetic diskette, and a removable optical media such as a CD or DVD, it should be appreciated by those skilled in the art that other types of storage media which are readable by a computer, such as zip drives, magnetic cassettes, flash memory cards, cartridges, and the like, can also be used in the example operating environment, and further, that any such storage media can contain computer-executable instructions for performing the methods of the specification.
- program modules can be stored in the drives and RAM 1112 , including an operating system 1130 , one or more application programs 1132 , other program modules 1134 and program data 1136 . All or portions of the operating system, applications, modules, and/or data can also be cached in the RAM 1112 . It is appreciated that the specification can be implemented with various commercially available operating systems or combinations of operating systems.
- a user can enter commands and information into the computer 1102 through one or more wired or wireless input devices, e.g., a keyboard 1138 and/or a pointing device, such as a mouse 1140 or a touch screen or touchpad (not illustrated).
- a keyboard 1138 and/or a pointing device such as a mouse 1140 or a touch screen or touchpad (not illustrated).
- These and other input devices can be connected to the processing unit 1104 through an input device interface 1142 that is coupled to the system bus 1108 , but can be connected by other interfaces, such as a parallel port, an IEEE 1194 port, a game port, a USB port, an infrared (IR) interface, etc.
- a monitor 1144 or other type of display device can also be connected to the system bus 1108 via an interface, such as a video adapter 1146 .
- the computer 1102 can operate in a networked environment using logical connections via wired and/or wireless communications to one or more remote computers, such as a remote computer(s) 1148 .
- the remote computer(s) 1148 can be a workstation, a server computer, a router, a personal computer, portable computer, microprocessor-based entertainment appliance, a peer device or other common network node, and can include many or all the elements described relative to the computer 1102 , although, for purposes of brevity, only a memory/storage device 1150 is illustrated.
- the logical connections depicted include wired/wireless connectivity to a local area network (LAN) 1152 and/or larger networks, e.g., a wide area network (WAN) 1154 .
- LAN and WAN networking environments can be commonplace in offices and companies, and facilitate enterprise-wide computer networks, such as intranets, all of which can connect to a global communications network, e.g., the Internet.
- the computer 1102 When used in a LAN networking environment, the computer 1102 is connected to the local network 1152 through a wired and/or wireless communication network interface or adapter 1156 .
- the adapter 1156 can facilitate wired or wireless communication to the LAN 1152 , which can also include a wireless access point disposed thereon for communicating with the wireless adapter 1156 .
- the computer 1102 can include a modem 1158 , or is connected to a communications server on the WAN 1154 , or has other means for establishing communications over the WAN 1154 , such as by way of the Internet.
- the modem 1158 which can be internal or external and a wired or wireless device, can be connected to the system bus 1108 via the serial port interface 1142 .
- program modules depicted relative to the computer 1102 can be stored in the remote memory/storage device 1150 . It will be appreciated that the network connections shown are example and other means of establishing a communications link between the computers can be used.
- the computer 1102 can be operable to communicate with any wireless devices or entities operatively disposed in wireless communication, e.g., desktop and/or portable computer, server, communications satellite, etc. This includes at least Wireless Fidelity (Wi-Fi) and BLUETOOTH wireless technologies.
- Wi-Fi Wireless Fidelity
- BLUETOOTH wireless technologies e.g., Bluetooth, Bluetooth, etc.
- the communication can be a predefined structure as with a conventional network or simply an ad hoc communication between at least two devices.
- Wi-Fi can allow a connection to the Internet from a couch at home, a bed in a hotel room, or a conference room at work, without wires.
- Wi-Fi can be a wireless technology similar to that used in a cell phone that enables such devices, e.g., computers, to send and receive data indoors and out; anywhere within the range of a base station.
- Wi-Fi networks can use radio technologies called IEEE 802.11 (a, b, g, n, etc.) to provide secure, reliable, fast wireless connectivity.
- a Wi-Fi network can be used to connect computers to each other, to the Internet, and to wired networks (which can use an IEEE 802.3 standard or Ethernet).
- Wi-Fi networks can operate in the unlicensed 5 GHz radio band at a 54 Mbps (802.11a) data rate, and/or a 2.4 GHz radio band at an 9 Mbps (802.11b), a 54 Mbps (802.11g) data rate, or up to a 600 Mbps (802.11n) data rate for example, or with products that contain both bands (dual band), so the networks can provide real-world performance similar to the basic “10BaseT” wired Ethernet networks used in many offices.
- processor can refer to substantially any computing processing unit or device comprising, but not limited to comprising, single-core processors; single-processors with software multithread execution capability; multi-core processors; multi-core processors with software multithread execution capability; multi-core processors with hardware multithread technology; parallel platforms; and parallel platforms with distributed shared memory in a single machine or multiple machines.
- a processor can refer to an integrated circuit, a state machine, an application specific integrated circuit (ASIC), a digital signal processor (DSP), a programmable gate array (PGA) including a field programmable gate array (FPGA), a programmable logic controller (PLC), a complex programmable logic device (CPLD), a discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein.
- a processor may also be implemented as a combination of computing processing units.
- One or more processors can be utilized in supporting a virtualized computing environment.
- the virtualized computing environment may support one or more virtual machines representing computers, servers, or other computing devices.
- components such as processors and storage devices may be virtualized or logically represented.
- a processor executes instructions to perform “operations”, this could include the processor performing the operations directly and/or facilitating, directing, or cooperating with another device or component to perform the operations.
- nonvolatile memory can include ROM, programmable ROM (PROM), EPROM, EEPROM, or flash memory.
- Volatile memory can include RAM, which acts as external cache memory.
- RAM can be available in many forms such as synchronous RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), and direct Rambus RAM (DRRAM).
- SRAM synchronous RAM
- DRAM dynamic RAM
- SDRAM synchronous DRAM
- DDR SDRAM double data rate SDRAM
- ESDRAM enhanced SDRAM
- SLDRAM Synchlink DRAM
- DRRAM direct Rambus RAM
- the disclosed memory components of systems or methods herein are intended to comprise, without being limited to comprising, these and any other suitable types of memory.
- program modules can be located in both local and remote memory storage devices.
- a component can be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, computer-executable instruction(s), a program, and/or a computer.
- a component can be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, computer-executable instruction(s), a program, and/or a computer.
- an application running on a controller and the controller can be a component.
- One or more components may reside within a process and/or thread of execution and a component may be localized on one computer and/or distributed between two or more computers.
- an interface can include input/output (I/O) components as well as associated processor, application, and/or API components.
- the various embodiments can be implemented as a method, apparatus, or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof to control a computer to implement one or more aspects of the disclosed subject matter.
- An article of manufacture can encompass a computer program accessible from any computer-readable device or computer-readable storage/communications media.
- computer readable storage media can include but are not limited to magnetic storage devices (e.g., hard disk, floppy disk, magnetic strips . . . ), optical discs (e.g., CD, DVD . . . ), smart cards, and flash memory devices (e.g., card, stick, key drive . . . ).
- magnetic storage devices e.g., hard disk, floppy disk, magnetic strips . . .
- optical discs e.g., CD, DVD . . .
- smart cards e.g., card, stick, key drive . . .
- flash memory devices e.g., card
- the word “example” or “exemplary” is used herein to mean serving as an example, instance, or illustration. Any aspect or design described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects or designs. Rather, use of the word exemplary is intended to present concepts in a concrete fashion.
- the term “or” is intended to mean an inclusive “or” rather than an exclusive “or.” That is, unless specified otherwise, or clear from context, “X employs A or B” is intended to mean any of the natural inclusive permutations. That is, if X employs A; X employs B; or X employs both A and B, then “X employs A or B” is satisfied under any of the foregoing instances.
- the articles “a” and “an” as used in this application and the appended claims should generally be construed to mean “one or more” unless specified otherwise or clear from context to be directed to a singular form.
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)
- Debugging And Monitoring (AREA)
Abstract
Description
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/372,929 US11093170B2 (en) | 2019-04-02 | 2019-04-02 | Dataset splitting based on workload footprint analysis |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/372,929 US11093170B2 (en) | 2019-04-02 | 2019-04-02 | Dataset splitting based on workload footprint analysis |
Publications (2)
Publication Number | Publication Date |
---|---|
US20200319820A1 US20200319820A1 (en) | 2020-10-08 |
US11093170B2 true US11093170B2 (en) | 2021-08-17 |
Family
ID=72662314
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/372,929 Active 2039-06-07 US11093170B2 (en) | 2019-04-02 | 2019-04-02 | Dataset splitting based on workload footprint analysis |
Country Status (1)
Country | Link |
---|---|
US (1) | US11093170B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240004788A1 (en) * | 2022-07-01 | 2024-01-04 | Micron Technology, Inc. | Adaptive configuration of memory devices using host profiling |
Citations (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020095532A1 (en) * | 2001-01-16 | 2002-07-18 | International Business Machines Corporation: | System, method, and computer program for explicitly tunable I/O device controller |
US20050005066A1 (en) * | 2003-07-03 | 2005-01-06 | Shinichi Nakayama | Storage system and storage device system |
US20050055523A1 (en) * | 2003-06-27 | 2005-03-10 | Hitachi, Ltd. | Data processing system |
US20050273565A1 (en) * | 2004-04-28 | 2005-12-08 | Yusuke Hirakawa | Data processing system |
US20060085609A1 (en) * | 2004-10-19 | 2006-04-20 | Hitachi, Ltd. | Remote copy system |
US20060117154A1 (en) * | 2003-09-09 | 2006-06-01 | Hitachi, Ltd. | Data processing system |
US20060174156A1 (en) * | 2005-02-01 | 2006-08-03 | Sridhar Balasubramanian | Cache redundancy for lsi raid controllers |
US20070022142A1 (en) * | 2005-07-20 | 2007-01-25 | International Business Machines Corporation | System and method to generate domain knowledge for automated system management by combining designer specifications with data mining activity |
US20070220371A1 (en) * | 2006-02-06 | 2007-09-20 | International Business Machines Corporation | Technique for mapping goal violations to anamolies within a system |
US20070254922A1 (en) * | 2006-04-26 | 2007-11-01 | Yuri Hiraiwa | Computer system and control method for the computer system |
US20080109589A1 (en) * | 2004-04-28 | 2008-05-08 | Toshiyuki Honda | Nonvolatile Storage Device And Data Write Method |
US20090216986A1 (en) * | 2008-02-25 | 2009-08-27 | Fujitsu Limited | Apparatus and method for managing logical volume in distributed storage systems |
US20110078395A1 (en) * | 2009-09-30 | 2011-03-31 | Hitachi, Ltd. | Computer system managing volume allocation and volume allocation management method |
US20120047287A1 (en) * | 2010-08-23 | 2012-02-23 | International Business Machines Corporation | Using information on input/output (i/o) sizes of accesses to an extent to determine a type of storage device for the extent |
US20120079172A1 (en) * | 2010-09-24 | 2012-03-29 | Kabushiki Kaisha Toshiba | Memory system |
US20120079097A1 (en) * | 2010-09-29 | 2012-03-29 | International Business Machines Corporation | Proactive identification of hotspots in a cloud computing environment |
US20120254640A1 (en) * | 2011-03-28 | 2012-10-04 | International Business Machines Corporation | Allocation of storage resources in a networked computing environment based on energy utilization |
US20120278512A1 (en) * | 2011-04-29 | 2012-11-01 | International Business Machines Corporation | System, Method and Program Product to Schedule Transfer of Data |
US20120278511A1 (en) * | 2011-04-29 | 2012-11-01 | International Business Machines Corporation | System, method and program product to manage transfer of data to resolve overload of a storage system |
US20130081015A1 (en) * | 2011-09-26 | 2013-03-28 | Fujitsu Limited | Storage system |
US20130086324A1 (en) * | 2011-09-30 | 2013-04-04 | Gokul Soundararajan | Intelligence for controlling virtual storage appliance storage allocation |
US20130166724A1 (en) * | 2011-12-22 | 2013-06-27 | Lakshmi Narayanan Bairavasundaram | Dynamic Instantiation and Management of Virtual Caching Appliances |
US20130198449A1 (en) * | 2012-01-27 | 2013-08-01 | International Business Machines Corporation | Multi-tier storage system configuration adviser |
US20130275391A1 (en) * | 2012-04-17 | 2013-10-17 | Fusion-Io, Inc. | Data Expiry in a Non-Volatile Device |
US20140156877A1 (en) * | 2012-12-05 | 2014-06-05 | Emc Corporation | Storage resource usage analysis for customized application options |
US20150142942A1 (en) * | 2013-11-15 | 2015-05-21 | Netapp, Inc. | Network storage management at scale using service level objectives |
US20150347040A1 (en) * | 2014-05-30 | 2015-12-03 | Sandisk Enterprise Ip Llc | Using History of I/O Sizes and I/O Sequences to Trigger Coalesced Writes in a Non-Volatile Storage Device |
US20150347266A1 (en) * | 2014-05-30 | 2015-12-03 | Vmware, Inc. | Analyzing I/O Traces |
US20160048448A1 (en) * | 2013-03-25 | 2016-02-18 | Ajou University Industry-Academic Cooperation Foundation | Method for mapping page address based on flash memory and system therefor |
US20160139847A1 (en) * | 2014-11-13 | 2016-05-19 | Kabushiki Kaisha Toshiba | Memory device and storage system having the same |
US9372637B1 (en) * | 2015-08-21 | 2016-06-21 | International Business Machines Corporation | Inferring application type based on input-output characteristics of application storage resources |
US20160202933A1 (en) * | 2015-01-09 | 2016-07-14 | International Business Machines Corporation | Impact-based migration scheduling |
US20160274792A1 (en) * | 2013-11-22 | 2016-09-22 | Nec Corporation | Storage apparatus, method, and program |
US20170206015A1 (en) * | 2016-01-14 | 2017-07-20 | Linkedin Corporation | Performance-based migration among data storage devices |
US9830256B1 (en) * | 2013-04-19 | 2017-11-28 | Amazon Technologies, Inc. | Block device workload analysis |
US20180052715A1 (en) * | 2015-05-14 | 2018-02-22 | Hitachi, Ltd. | Computer system including server storage system |
US20180067780A1 (en) * | 2015-06-30 | 2018-03-08 | Hitachi, Ltd. | Server storage system management system and management method |
US20180074724A1 (en) * | 2015-04-07 | 2018-03-15 | Telefonaktiebolaget Lm Ericsson (Publ) | Workload aware storage platform |
US20180316650A1 (en) * | 2013-06-04 | 2018-11-01 | Attobahn, Inc. | Viral Molecular Network Architecture and Design |
US20180373429A1 (en) * | 2016-02-22 | 2018-12-27 | Hitachi, Ltd. | Computer system, control method for computer system, and recording medium |
US20190065278A1 (en) * | 2017-08-31 | 2019-02-28 | Cisco Technology, Inc. | Tenant-specific policy generation and enforcement within containers |
US20190278632A1 (en) * | 2018-03-09 | 2019-09-12 | Fujitsu Limited | Information processing apparatus and information processing system |
US20200042242A1 (en) * | 2018-07-31 | 2020-02-06 | SK Hynix Inc. | Controller and operation method thereof |
US10565501B1 (en) * | 2013-04-19 | 2020-02-18 | Amazon Technologies, Inc. | Block device modeling |
US20200278793A1 (en) * | 2019-03-01 | 2020-09-03 | International Business Machines Corporation | Data placement on storage devices |
US20200311280A1 (en) * | 2019-03-28 | 2020-10-01 | EMC IP Holding Company LLC | Intrusion detection |
-
2019
- 2019-04-02 US US16/372,929 patent/US11093170B2/en active Active
Patent Citations (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020095532A1 (en) * | 2001-01-16 | 2002-07-18 | International Business Machines Corporation: | System, method, and computer program for explicitly tunable I/O device controller |
US20050055523A1 (en) * | 2003-06-27 | 2005-03-10 | Hitachi, Ltd. | Data processing system |
US20050005066A1 (en) * | 2003-07-03 | 2005-01-06 | Shinichi Nakayama | Storage system and storage device system |
US20060117154A1 (en) * | 2003-09-09 | 2006-06-01 | Hitachi, Ltd. | Data processing system |
US20080109589A1 (en) * | 2004-04-28 | 2008-05-08 | Toshiyuki Honda | Nonvolatile Storage Device And Data Write Method |
US20050273565A1 (en) * | 2004-04-28 | 2005-12-08 | Yusuke Hirakawa | Data processing system |
US20060085609A1 (en) * | 2004-10-19 | 2006-04-20 | Hitachi, Ltd. | Remote copy system |
US20060174156A1 (en) * | 2005-02-01 | 2006-08-03 | Sridhar Balasubramanian | Cache redundancy for lsi raid controllers |
US20070022142A1 (en) * | 2005-07-20 | 2007-01-25 | International Business Machines Corporation | System and method to generate domain knowledge for automated system management by combining designer specifications with data mining activity |
US20070220371A1 (en) * | 2006-02-06 | 2007-09-20 | International Business Machines Corporation | Technique for mapping goal violations to anamolies within a system |
US20070254922A1 (en) * | 2006-04-26 | 2007-11-01 | Yuri Hiraiwa | Computer system and control method for the computer system |
US20090216986A1 (en) * | 2008-02-25 | 2009-08-27 | Fujitsu Limited | Apparatus and method for managing logical volume in distributed storage systems |
US20110078395A1 (en) * | 2009-09-30 | 2011-03-31 | Hitachi, Ltd. | Computer system managing volume allocation and volume allocation management method |
US20120047287A1 (en) * | 2010-08-23 | 2012-02-23 | International Business Machines Corporation | Using information on input/output (i/o) sizes of accesses to an extent to determine a type of storage device for the extent |
US20120079172A1 (en) * | 2010-09-24 | 2012-03-29 | Kabushiki Kaisha Toshiba | Memory system |
US20120079097A1 (en) * | 2010-09-29 | 2012-03-29 | International Business Machines Corporation | Proactive identification of hotspots in a cloud computing environment |
US20120254640A1 (en) * | 2011-03-28 | 2012-10-04 | International Business Machines Corporation | Allocation of storage resources in a networked computing environment based on energy utilization |
US20120278512A1 (en) * | 2011-04-29 | 2012-11-01 | International Business Machines Corporation | System, Method and Program Product to Schedule Transfer of Data |
US20120278511A1 (en) * | 2011-04-29 | 2012-11-01 | International Business Machines Corporation | System, method and program product to manage transfer of data to resolve overload of a storage system |
US20130081015A1 (en) * | 2011-09-26 | 2013-03-28 | Fujitsu Limited | Storage system |
US20130086324A1 (en) * | 2011-09-30 | 2013-04-04 | Gokul Soundararajan | Intelligence for controlling virtual storage appliance storage allocation |
US20130166724A1 (en) * | 2011-12-22 | 2013-06-27 | Lakshmi Narayanan Bairavasundaram | Dynamic Instantiation and Management of Virtual Caching Appliances |
US20130198449A1 (en) * | 2012-01-27 | 2013-08-01 | International Business Machines Corporation | Multi-tier storage system configuration adviser |
US20130275391A1 (en) * | 2012-04-17 | 2013-10-17 | Fusion-Io, Inc. | Data Expiry in a Non-Volatile Device |
US20140156877A1 (en) * | 2012-12-05 | 2014-06-05 | Emc Corporation | Storage resource usage analysis for customized application options |
US20160048448A1 (en) * | 2013-03-25 | 2016-02-18 | Ajou University Industry-Academic Cooperation Foundation | Method for mapping page address based on flash memory and system therefor |
US10565501B1 (en) * | 2013-04-19 | 2020-02-18 | Amazon Technologies, Inc. | Block device modeling |
US9830256B1 (en) * | 2013-04-19 | 2017-11-28 | Amazon Technologies, Inc. | Block device workload analysis |
US20180316650A1 (en) * | 2013-06-04 | 2018-11-01 | Attobahn, Inc. | Viral Molecular Network Architecture and Design |
US20150142942A1 (en) * | 2013-11-15 | 2015-05-21 | Netapp, Inc. | Network storage management at scale using service level objectives |
US20160274792A1 (en) * | 2013-11-22 | 2016-09-22 | Nec Corporation | Storage apparatus, method, and program |
US20150347266A1 (en) * | 2014-05-30 | 2015-12-03 | Vmware, Inc. | Analyzing I/O Traces |
US20150347040A1 (en) * | 2014-05-30 | 2015-12-03 | Sandisk Enterprise Ip Llc | Using History of I/O Sizes and I/O Sequences to Trigger Coalesced Writes in a Non-Volatile Storage Device |
US20160139847A1 (en) * | 2014-11-13 | 2016-05-19 | Kabushiki Kaisha Toshiba | Memory device and storage system having the same |
US20160202933A1 (en) * | 2015-01-09 | 2016-07-14 | International Business Machines Corporation | Impact-based migration scheduling |
US20180074724A1 (en) * | 2015-04-07 | 2018-03-15 | Telefonaktiebolaget Lm Ericsson (Publ) | Workload aware storage platform |
US20180052715A1 (en) * | 2015-05-14 | 2018-02-22 | Hitachi, Ltd. | Computer system including server storage system |
US20180067780A1 (en) * | 2015-06-30 | 2018-03-08 | Hitachi, Ltd. | Server storage system management system and management method |
US9372637B1 (en) * | 2015-08-21 | 2016-06-21 | International Business Machines Corporation | Inferring application type based on input-output characteristics of application storage resources |
US20170206015A1 (en) * | 2016-01-14 | 2017-07-20 | Linkedin Corporation | Performance-based migration among data storage devices |
US20180373429A1 (en) * | 2016-02-22 | 2018-12-27 | Hitachi, Ltd. | Computer system, control method for computer system, and recording medium |
US20190065278A1 (en) * | 2017-08-31 | 2019-02-28 | Cisco Technology, Inc. | Tenant-specific policy generation and enforcement within containers |
US20190278632A1 (en) * | 2018-03-09 | 2019-09-12 | Fujitsu Limited | Information processing apparatus and information processing system |
US20200042242A1 (en) * | 2018-07-31 | 2020-02-06 | SK Hynix Inc. | Controller and operation method thereof |
US20200278793A1 (en) * | 2019-03-01 | 2020-09-03 | International Business Machines Corporation | Data placement on storage devices |
US20200311280A1 (en) * | 2019-03-28 | 2020-10-01 | EMC IP Holding Company LLC | Intrusion detection |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240004788A1 (en) * | 2022-07-01 | 2024-01-04 | Micron Technology, Inc. | Adaptive configuration of memory devices using host profiling |
US12019539B2 (en) * | 2022-07-01 | 2024-06-25 | Micron Technology, Inc. | Adaptive configuration of memory devices using host profiling |
Also Published As
Publication number | Publication date |
---|---|
US20200319820A1 (en) | 2020-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11303499B2 (en) | Moving nodes in a distributed system | |
US9077579B1 (en) | Systems and methods for facilitating access to shared resources within computer clusters | |
US10789140B2 (en) | Facilitation of replication progress tracking | |
US10372711B2 (en) | System and method predicting effect of cache on query elapsed response time during application development stage | |
CN103065084B (en) | In the windows hidden process detection method that external machine of virtual machine is carried out | |
US8539492B1 (en) | Managing data dependencies among multiple jobs using separate tables that store job results and dependency satisfaction | |
US9460001B2 (en) | Systems and methods for identifying access rate boundaries of workloads | |
US11474715B2 (en) | Storage system configuration change tracking for root cause/troubleshooting | |
US20180373516A1 (en) | Techniques for distributing code to components of a computing system | |
US10776218B2 (en) | Availability-driven data recovery in cloud storage systems | |
CN107632779B (en) | Data processing method and device and server | |
US11221862B2 (en) | Capturing data from a live web application to populate a demo application | |
US11283861B2 (en) | Connection management during non-disruptive upgrade of nodes | |
US11093170B2 (en) | Dataset splitting based on workload footprint analysis | |
US9965374B2 (en) | Profile guided indirect function call check for control flow integrity | |
US20210152624A1 (en) | Identifying and Deleting Idle Remote Sessions in a Distributed File System | |
US20170132027A1 (en) | Systems and methods for coordinating data caching on virtual storage appliances | |
US11403190B2 (en) | Dynamic snapshot scheduling for data storage | |
US9690886B1 (en) | System and method for a simulation of a block storage system on an object storage system | |
US9053100B1 (en) | Systems and methods for compressing database objects | |
US9563687B1 (en) | Storage configuration in data warehouses | |
US11500749B2 (en) | Distributed data store for testing data center services | |
US20230205578A1 (en) | Error Avoidance Load Balancing Across Distributed Clustered Containerized Environments | |
US11429593B2 (en) | Maintaining a shared state among networked computing devices using a shared data store | |
US11561934B2 (en) | Data storage method and method for executing an application with reduced access time to the stored data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: EMC IP HOLDING COMPANY LLC, MASSACHUSETTS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:FOMIN, ALEXEY;ZAGREBIN, YURI;DALMATOV, NICKOLAY;REEL/FRAME:048768/0124 Effective date: 20190402 |
|
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, NORTH CAROLINA Free format text: SECURITY AGREEMENT;ASSIGNORS:DELL PRODUCTS L.P.;EMC CORPORATION;EMC IP HOLDING COMPANY LLC;AND OTHERS;REEL/FRAME:050405/0534 Effective date: 20190917 |
|
AS | Assignment |
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;AND OTHERS;REEL/FRAME:050724/0466 Effective date: 20191010 |
|
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: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT, TEXAS Free format text: SECURITY INTEREST;ASSIGNORS:DELL PRODUCTS L.P.;EMC CORPORATION;EMC IP HOLDING COMPANY LLC;REEL/FRAME:053311/0169 Effective date: 20200603 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: ADVISORY ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
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 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: WYSE TECHNOLOGY L.L.C., CALIFORNIA Free format text: RELEASE OF SECURITY INTEREST AT REEL 050405 FRAME 0534;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058001/0001 Effective date: 20211101 Owner name: EMC IP HOLDING COMPANY LLC, TEXAS Free format text: RELEASE OF SECURITY INTEREST AT REEL 050405 FRAME 0534;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058001/0001 Effective date: 20211101 Owner name: EMC CORPORATION, MASSACHUSETTS Free format text: RELEASE OF SECURITY INTEREST AT REEL 050405 FRAME 0534;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058001/0001 Effective date: 20211101 Owner name: DELL PRODUCTS L.P., TEXAS Free format text: RELEASE OF SECURITY INTEREST AT REEL 050405 FRAME 0534;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058001/0001 Effective date: 20211101 |
|
AS | Assignment |
Owner name: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.), TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0466);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:060753/0486 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 (050724/0466);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:060753/0486 Effective date: 20220329 Owner name: EMC CORPORATION, MASSACHUSETTS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0466);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:060753/0486 Effective date: 20220329 Owner name: DELL PRODUCTS L.P., TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0466);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:060753/0486 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 (053311/0169);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:060438/0742 Effective date: 20220329 Owner name: EMC CORPORATION, MASSACHUSETTS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:060438/0742 Effective date: 20220329 Owner name: DELL PRODUCTS L.P., TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:060438/0742 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 |