DETAILED ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Response to Amendment/Arguments
(Submitted 11/20/2025)
In regard to 101 rejections
The examiner reviewed the applicant arguments from Page 11 to 13. The examiner see that there no mental steps involved after the amendment. The examiner notes that the claims 5-8, 15 and 20-21 are CANCELED.
In CONCLUSION, the examiner WITHDRAWS the 101 rejections on claims 1-4, 9-14, 16-19 and 22-25.
In regard to 103 rejections
- The applicant argues regarding the prior art from Page 14-16.
Examiner’s Response:
Without conceding the applicant arguments, the examiner notes that the applicant has amended the independent claims 1, 11 and 16. It appears that previously might have stated the focus of the invention is “hash model” and it appears the focus of the invention now shifted to the “storage capacity issue and resolution”. As a result, the applicant has “Kenney” as the primary reference.
The applicant arguments on Page 14 with regard to reference “Bartz” is moot as result of new grounds of rejection. As a result there is a strong 103 combination motivation to teach the amended claims. Without further conceding the argument, in view of the amendments, the applicant’s arguments are MOOT as a result of using new of ground of rejections. Interestingly, the examiner submits that the instant case is merely associating a system issue (storage system capacity ) with machine learning and has no details on how a machine learning detects the issue and provide resolution. There are not even mention of the weights and/or learning rate (hyperparameters) that is normally used for training detail in any of these claims. However, as the applicant has overcome the 101 rejections, the examiner submits that prior art supports strongly by using cited two new reference “Guo” and “Kil” to teach the amended claims.
In CONCLUSION, the examiner rejects independent claims 1, 11, 16 and the dependent claims 2-4, 9-10,
12-14, 17-19, and 22-25 under 103 as a FINAL REJECTION.
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1, 3, 10-11, 13, 16, 18, 22, and 24 are rejected under 35 U.S.103 unpatentable over
Chadd Kenney et.al. (hereinafter Kenney) US 10853148 B1.
In view of Ruiqi Guo (hereinafter Guo) US 2019/0114343 A1.
In view of David Kil (hereinafter Kil) US 2002/0138492 A1,
In regard to claim 1: (Currently Amended)
Kenney discloses:
- A computer-implemented method comprising: obtaining a dataset comprising configuration data for at least one storage system for a given duration between onset of least one storage system capacity issue and resolution of the at least one storage system capacity issue;
In [Col 66, lines 38-42]:
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure.
In [Col 41, lines 44-57]:
load models may be created for storage systems that have different hardware configurations, load models may be created for storage systems that have different software configurations, load models may be created for storage systems that have different configuration settings, or any combination thereof.
In [Col 48, lines 37-50]:
when the predicted performance load on the storage system (408) is expected to exceed performance capacity of the storage system (408) within a predetermined period of time, when additional storage systems are added to or removed from a cluster, when other storage systems within a cluster are modified (e.g., a hardware or software updated occurs), when the storage system (408) itself is modified, and so on. In such an example, the recommendation may be presented (e.g., via a GUI, via a message) to a system administrator or other user that can take action in response to the recommendation. Likewise, the recommendation may be sent to an upgrade module or other automated module that may carry out the recommended course of action (e.g., installing a software patch, migrating a workload).
identifying one or more items of the configuration data associated with one or more
configuration changes unrelated to the resolution of the at least one storage system capacity issue by processing the dataset using one or more machine learning-based feature selection techniques
in [Col 28, lines 48-54]:
Storage systems in accordance with some embodiments of the present disclosure may utilize object storage, where data is managed as objects. Each object may include the data itself, a variable amount of metadata, and a globally unique identifier, where object storage can be implemented at multiple levels (e.g., device level, system level, interface level).
(BRI: metadata is a core feature of object storage that includes descriptive information about a stored object)
in [Col 40, lines 36-40]:
the data (404) collected from a plurality of storage systems (402, 406) may be embodied, for example, as telemetry data that is periodically sent from the storage systems (402, 406) to a centralized management service (not illustrated).
In [Col 40, lines 46-53]:
The information describing various performance characteristics of the storage system can include, for example, the number of IOPS being serviced by the storage system, the utilization rates of various computing resources (e.g., CPU utilization) within the storage system, the utilization rates of various networking resources (e.g., network bandwidth utilization) within the storage system,
In [Col 48, lines 29-33]:
The recommendation that is generated (804) may include, for example, a recommendation to perform a hardware or software upgrade on the storage system (804), a recommendation to move a workload from the storage system (408) to another storage system
- creating an updated dataset by , filtering the one or more identified items of the
configuration data from the dataset,
in [Col 34, lines 11-20]:
Small file performance of the storage tier may be critical as many types of inputs, including text, audio, or images will be natively stored as small files. If the storage tier does not handle small files well, an extra step will be required to pre-process and group samples into larger files. Storage, built on top of spinning disks, that relies on SSD as a caching tier, may fall short of the performance needed. Because training with random input batches results in more accurate models, the entire data set must be accessible with full performance.
In [Col 37, lines 1-9]:
Consider a specific example of inventory management in a warehouse, distribution center, or similar location. A large inventory, warehousing, shipping, order-fulfillment, manufacturing or other operation has a large amount of inventory on inventory shelves, and high resolution digital cameras that produce a firehose of large data. All of this data may be taken into an image processing system, which may reduce the amount of data to a firehose of small data. All of the small data may be stored on-premises in storage.
In [Col 37, lines 16-18]:
The above scenario is a prime candidate for an embodiment of the configurable processing and storage systems described above
- grouping at least a portion of the configuration data within the updated dataset into two or more groups
In [Col 1, lines 49-50]:
FIG. 2G depicts authorities and storage resources in blades of a storage cluster, in accordance with some embodiments.
In [Col 11, lines 65-67], in [Col 12, lines 1-4]:
The embodiments depicted with reference to FIGS. 2A-G illustrate a storage cluster that stores user data, such as user data originating from one or more user or client systems or other sources external to the storage cluster. The storage cluster distributes user data across storage nodes housed within a chassis, or across multiple chassis, using erasure coding and redundant copies of metadata.
- wherein at least one of the groups is associated with a storage system capacity issue and at least one of the groups is associated with resolution of the storage system capacity issue,
In [Col 32, lines 31-41]:
Data is the heart of modern AI and deep learning algorithms. Before training can begin, one problem that must be addressed revolves around collecting the labeled data that is crucial for training an accurate AI model. A full scale AI deployment may be required to continuously collect, clean, transform, label, and store large amounts of data. Adding additional high quality data points directly translates to more to more accurate models and better insights. Data samples may undergo a series of processing steps including, but not limited to: 1) ingesting the data from an external source into the training system and storing the data in raw form,
In [Col 32, lines 44-50]:
exploring parameters and models, quickly testing with a smaller dataset, and iterating to converge on the most promising models to push into the production cluster, 4) executing training phases to select random batches of input data, including both new and older samples, and feeding those into production GPU servers for computation to update model parameters,
in [Col 1, lines 49-50]:
FIG. 2G depicts authorities and storage resources in blades of a storage cluster, in accordance with some embodiments.
In [Col 11, lines 65-67], in [Col 12, lines 1-4]:
The embodiments depicted with reference to FIGS. 2A-G illustrate a storage cluster that stores user data, such as user data originating from one or more user or client systems or other sources external to the storage cluster. The storage cluster distributes user data across storage nodes housed within a chassis, or across multiple chassis, using erasure coding and redundant copies of metadata.
In [Col 48, lines 35-43]:
when the predicted performance load on the storage system (408) reaches a predetermined threshold, when the predicted performance load on the storage system (408) is expected to exceed performance capacity of the storage system (408) within a predetermined period of time, when additional storage systems are added to or removed from a cluster, when other storage systems within a cluster are modified (e.g., a hardware or software updated occurs), when the storage system (408) itself is modified, and so on.
- automatically learning one or more connections between the at least one of the groups associated with the storage system capacity issue and the at least one of the groups associated with resolution of the storage system capacity issue
[Col 31, lines 10-23]:
the storage systems include compute resources, storage resources, and a wide variety of other resources, the storage systems may be well suited to support applications that are resource intensive such as, for example, AI applications. Such AI applications may enable devices to perceive their environment and take actions that maximize their chance of success at some goal
[Col 31, lines 10-23]:
the storage systems described above may also be well suited to support other types of applications that are resource intensive such as, for example, machine learning applications. Machine learning applications may perform various types of data analysis to automate analytical model building. Using algorithms that iteratively learn from data, machine learning applications can enable computers to learn without being explicitly programmed.
(BRI: using algorithms that iteratively learn from data is a core way AI systems achieve automatic (or autonomous) learning)
In [Col 48, lines 37-41]:
when the predicted performance load on the storage system (408) is expected to exceed performance capacity of the storage system (408) within a predetermined period of time, when additional storage systems are added to or removed from a cluster,
In [Col 41, lines 44-57]:
load models may be created for storage systems that have different hardware configurations, load models may be created for storage systems that have different software configurations, load models may be created for storage systems that have different configuration settings, or any combination thereof.
[Col 47, lines 50-56]:
each of the one or more of workloads may be defined by one or more volumes on the storage system . In such an example , a workload may be defined by one or more volumes on the storage system in the sense that servicing I/O operations directed to a particular volume is a workload that a storage system must support.
(BRI: creating and testing different hardware and software configurations can help resolve storage capacity issues, based on matching the configuration to your actual workload. This may involve hardware upgrades, software optimizations, or a combination of both)
- converting each of at least a plurality of records within the two or more groups of the configuration data to a respective signature,
[Col 27, lines 39-47]:
telemetry data may describe various operating characteristics of the storage system 306 and may be analyzed, for example, to determine the health of the storage system 306, to identify workloads that are executing on the storage system 306, to predict when the storage system 306 will run out of various resources, to recommend configuration changes, hardware or software upgrades, workflow migrations, or other actions that may improve the operation of the storage system 306.
[Col 34, lines 61-67]:
the storage systems described above may be configured to support the storage of (among of types of data) blockchains. Such blockchains may be embodied as a continuously growing list of records, called blocks, which are linked and secured using cryptography. Each block in a blockchain may contain a hash pointer as a link to a previous block, a timestamp, transaction data, and
[Col 35, lines 1-4]:
so on. Blockchains may be designed to be resistant to modification of the data and can serve as an open, distributed ledger that can record transactions between two parties efficiently and in a verifiable and permanent way.
(BRI: a blockchain can represent a cryptographic signature of configuration data because its hash-linked structure provides an unchangeable, verifiable record of the data)
- using the at least one hash function, wherein the respective signature is less than a predefined size corresponding to a memory in which the respective signature is to be stored;
[Col 35, lines 1-12]:
Blockchains may be designed to be resistant to modification of the data and can serve as an open, distributed ledger that can record transactions between two parties efficiently and in a verifiable and permanent way. This makes blockchains potentially suitable for the recording of events, medical records, and other records management activities, such as identity management, transaction processing, and others. In addition to supporting the storage and use of blockchain technologies, the storage systems described above may also support the storage and use of derivative items such as, for example, open source blockchains and related tools
[Col 35, lines 14-16]:
blockchain products that enable developers to build their own distributed ledger projects, and others
[Col 35, lines 24-25]:
blockchain ledger for any healthcare provider, or permissioned health care providers, to access and update.
(BRI: this is storing a signature)
[Col 15, lines 62-67]:
If there is a change in where a particular segment of data is located, e.g., during a data move or a data reconstruction, the authority 168 for that data segment should be consulted, at that non-volatile solid state storage 152 or storage node 150 having that authority 168. In order to locate a particular piece of data, embodiments calculate a hash value for a data
[Col 16, lines 1-2]
segment or apply an inode number or a data segment number.
[Col 22, lines 4-12]:
In the compute and storage planes 256, 258 of FIG. 2E, the authorities 168 interact with the underlying physical resources (i.e., devices). From the point of view of an authority 168, its resources are striped over all of the physical devices. From the point of view of a device, it provides resources to all authorities 168, irrespective of where the authorities happen to run. Each authority 168 has allocated or has been allocated one or more partitions 260 of storage memory in the storage units 152
[Col 22, lines 15-19]:
Authorities can be associated with differing amounts of physical storage of the system. For example, one authority 168 could have a larger number of partitions 260 or larger sized partitions 260 in one or more storage units 152 than one or more other authorities 168.
(BRI: hash value represents a “hash function” and when the data segment changes, its hash differ from the stored hash and as it is signed , the signature also differs and the size of the signature can be controlled)
- correlating (a) the content-based similarity between
In [Col 43, lines 1-10]:
predicting (418) performance load on the storage system (408), a load model (412) may be used that was developed for storage systems that most closely resemble the storage system (408) whose performance load is being predicted. Consider an example in which load models are constructed for systems using some combination of three system attributes: model number, system software version number, and storage capacity. In such an example, assume that the table below maps various load models with various system configurations:
ii) the at least one of the at least a plurality of records from the at least one of the groups associated with the storage system capacity issue
in [Col 38, lines 43-48]:
AI platforms may be configured to scan all incoming storage system telemetry data against a library of issue fingerprints to predict and resolve incidents in real-time, before they impact customer environments, and captures hundreds of variables related to performance that are used to forecast performance load.
(ii) the at least one of the at least a plurality of records from the at least one of the groups associated with resolution of the storage system capacity issue,
in [Col 38, lines 43-48]:
AI platforms may be configured to scan all incoming storage system telemetry data against a library of issue fingerprints to predict and resolve incidents in real-time, before they impact customer environments, and captures hundreds of variables related to performance that are used to forecast performance load.
- with (b) the respective signatures corresponding to (i) the at least one of the at least a plurality of records from the at least one of the groups associated with the storage system capacity issue and
In [Col 34, lines 61-67]:
the storage systems described above may be configured to support the storage of (among of types of data) blockchains. Such blockchains may be embodied as a continuously growing list of records, called blocks, which are linked and secured using cryptography. Each block in a blockchain may contain a hash pointer as a link to a previous block, a timestamp, transaction data, and so on.
(BRI: Each block includes a cryptographic hash of the previous block, a timestamp, and transaction data, which are secured using a digital signature for each transaction.) ** check signature
In [Col 15, lines 61-67], in [Col 16, lines 1-8]:
If there is a change in where a particular segment of data is located, e.g., during a data move or a data reconstruction, the authority 168 for that data segment should be consulted, at that non-volatile solid state storage 152 or storage node 150 having that authority 168. In order to locate a particular piece of data, embodiments calculate a hash value for a data segment or apply an inode number or a data segment number. The output of this operation points to a non-volatile solid state storage 152 having the authority 168 for that particular piece of data. In some embodiments there are two stages to this operation. The first stage maps an entity identifier (ID), e.g., a segment number, inode number, or directory number to an authority identifier. This mapping may include a calculation such as a hash or a bit mask.
In [Col 38, lines 43-48]:
AI platforms may be configured to scan all incoming storage system telemetry data against a library of issue fingerprints to predict and resolve incidents in real-time, before they impact customer environments, and captures hundreds of variables related to performance that are used to forecast performance load.
(ii) the at least one of the at least a plurality of records from the at least one of the groups associated with resolution of the storage system capacity issue;
In [Col 38, lines 43-48]:
AI platforms may be configured to scan all incoming storage system telemetry data against a library of issue fingerprints to predict and resolve incidents in real-time, before they impact customer environments, and captures hundreds of variables related to performance that are used to forecast performance load.
(BRI: load model for storage systems that most closely resemble the target storage system is the similarity can be based on a correlation metric or other similarity measures)
- predicting, by processing input configuration data for the at least one storage system using the one or more artificial intelligence-based hash models, one or more storage system capacity issues for the at least one storage system;
In [Col 30, lines 63-67], in [Col 31, lines 1-4]:
the storage system 306 depicted in FIG. 3B may be useful for supporting various types of software applications. For example, the storage system 306 may be useful in supporting artificial intelligence (‘AI’) applications, database applications, DevOps projects, electronic design automation tools, event-driven software applications, high performance computing applications, simulation applications, high-speed data capture and analysis applications, machine learning applications,
in [Col 15, lines 62-67] and [Col 16, lines 1-11]:
If there is a change in where a particular segment of data is located, e.g., during a data move or a data reconstruction, the authority 168 for that data segment should be consulted, at that non-volatile solid state storage 152 or storage node 150 having that authority 168. In order to locate a particular piece of data, embodiments calculate a hash value for a data segment or apply an inode number or a data segment number. The output of this operation points to a non-volatile solid state storage 152 having the authority 168 for that particular piece of data. In some embodiments there are two stages to this operation. The first stage maps an entity identifier (ID), e.g., a segment number, inode number, or directory number to an authority identifier. This mapping may include a calculation such as a hash or a bit mask. The second stage is mapping the authority identifier to a particular non-volatile solid state storage 152, which may be done through an explicit mapping.
In [Col 27, lines 41-47]:
to determine the health of the storage system 306, to identify workloads that are executing on the storage system 306, to predict when the storage system 306 will run out of various resources, to recommend configuration changes, hardware or software upgrades, workflow migrations, or other actions that may improve the operation of the storage system 306.
- and performing at least one automated action, action, pertaining to preemptive storage capacity issue resolution, in response to the one or more predicted storage system capacity issues, wherein performing at least one automated action comprises:
[Col 30, lines 39-47]:
The software resources 314 may include software modules that intelligently group together I/O operations to facilitate better usage of the underlying storage resource 308, software modules that perform data migration operations to migrate from within a storage system, as well as software modules that perform other functions. Such software resources 314 may be embodied as one or more software containers or in many other ways.
[Col 34, lines 2-10]:
the ability of the storage systems to scale capacity and performance as either the dataset grows or the throughput requirements grow, the ability of the storage systems to support files or objects, the ability of the storage systems to tune performance for large or small files (i.e., no need for the user to provision filesystems), the ability of the storage systems to support non-disruptive upgrades of hardware and software even during production model training, and for many other reasons.
In [Col 27, lines 23-30]:
through the usage of a SaaS service model where the cloud services provider 302 offers application software, databases, as well as the platforms that are used to run the applications to the storage system 306 and users of the storage system 306, providing the storage system 306 and users of the storage system 306 with on-demand software and eliminating the need to install and run the application on local computers,
In [Col 27, lines 39-47]:
telemetry data may describe various operating characteristics of the storage system 306 and may be analyzed, for example, to determine the health of the storage system 306, to identify workloads that are executing on the storage system 306, to predict when the storage system 306 will run out of various resources, to recommend configuration changes, hardware or software upgrades, workflow migrations, or other actions that may improve the operation of the storage system 306.
[Col 48, lines 3-6]:
The example method depicted in FIG. 8 also includes determining (802) when the predicted performance load on the storage system (408) will exceed performance capacity of the storage system (408).
- automatically resolving at least one of the one or more predicted storage system capacity issues for the at least one storage system, wherein the at least one storage system comprises at least one storage system, and wherein automatically resolving the at least one of the one or more predicted storage system capacity issues comprises modifying storage capacity of the at least one storage system by one or more of: (i) reclaiming used storage for at least one of one or more logical storage volumes of the at least one storage system and one or more file systems of the at least one storage system, and (ii) adding one or more storage devices to the at least one storage system;
In [Col 31, lines 24-28]:
Machine learning applications may perform various types of data analysis to automate analytical model building. Using algorithms that iteratively learn from data, machine learning applications can enable computers to learn without being explicitly programmed.
In [Col 27, lines 41-47]:
to determine the health of the storage system 306, to identify workloads that are executing on the storage system 306, to predict when the storage system 306 will run out of various resources, to recommend configuration changes, hardware or software upgrades, workflow migrations, or other actions that may improve the operation of the storage system 306.
In [Col 48, lines 26-50]:
The example method depicted in FIG. 8 also includes generating (804), in dependence upon predicted performance load on the storage system (408), a recommendation. The recommendation that is generated (804) may include, for example, a recommendation to perform a hardware or software upgrade on the storage system (804), a recommendation to move a workload from the storage system (408) to another storage system, and so on. In such an example, rules may be in place such that recommendations are generated (804), for example, when the predicted performance load on the storage system (408) reaches a predetermined threshold, when the predicted performance load on the storage system (408) is expected to exceed performance capacity of the storage system (408) within a predetermined period of time, when additional storage systems are added to or removed from a cluster, when other storage systems within a cluster are modified (e.g., a hardware or software updated occurs), when the storage system (408) itself is modified, and so on. In such an example, the recommendation may be presented (e.g., via a GUI, via a message) to a system administrator or other user that can take action in response to the recommendation. Likewise, the recommendation may be sent to an upgrade module or other automated module that may carry out the recommended course of action (e.g., installing a software patch, migrating a workload).
- and automatically re-training at least a portion of the one or more artificial intelligence-based hash models based at least in part on resulting data pertaining to the automatic resolution of the at least one predicted storage system capacity issue; wherein the method is performed by at least one processing device comprising a processor coupled to a memory.
In [Col 33, lines 51-52]:
continued improvement of models with larger data set sizes.
(BRI: improving a model with a larger dataset typically involves a form of retraining or fine-tuning)
In [Col 44, lines 33-37]:
the load model that is used to predict (504) updated performance load on the storage system (408) may be different than the load model that was used to predict (418) performance load on the storage system (408) prior to receiving (502) information schema describing one or more modifications to the storage system (408).
In [Col 32, lines 34-41]:
A full scale AI deployment may be required to continuously collect, clean, transform, label, and store large amounts of data. Adding additional high quality data points directly translates to more accurate models and better insights. Data samples may undergo a series of processing steps including, but not limited to: 1) ingesting the data from an external source into the training system
In [Col 31, lines 29-47]:
the storage systems described above may also include graphics processing units (‘GPUs’), occasionally referred to as visual processing unit (‘VPUs’). Such GPUs may be embodied as specialized electronic circuits that rapidly manipulate and alter memory to accelerate the creation of images in a frame buffer intended for output to a display device. Such GPUs may be included within any of the computing devices that are part of the storage systems described above, including as one of many individually scalable components of a storage system, where other examples of individually scalable components of such storage system can include storage components, memory components, compute components (e.g., CPUs, FPGAs, ASICs), networking components, software components, and others. In addition to GPUs, the storage systems described above may also include neural network processors (‘NNPs’) for use in various aspects of neural network processing. Such NNPs may be used in place of (or in addition to) GPUs and may be also be independently scalable.
(BRI: the load model used to predict performance load on a storage system may be different after the system undergoes modifications. The original model may need to be updated, which can involve a full or partial re-training process, especially if the changes significantly alter the underlying data distribution or system behavior.)
Kenney does not explicitly disclose:
- wherein training the one or more artificial intelligence-based hash models comprises
- automatically learning one or more connections between the at least one of the groups associated with the storage system capacity issue and the at least one of the groups associated with resolution of the storage system capacity issue using at least one hash function in conjunction with at least one similarity metric, and wherein using the at least one hash function in conjunction with the at least one similarity metric comprises
However, Guo discloses:
- wherein training the one or more artificial intelligence-based hash models comprises
[0005]:
The computer system includes a machine-learned hashing model configured to receive an input and, in response, output a binary hash for the input. The binary hash includes a binary value for each of a plurality of binary variables. The computer system includes a machine-learned generative model configured to receive the binary hash and, in response, output a reconstruction of the input.
- automatically learning one or more connections between the at least one of the groups associated with the storage system capacity issue and the at least one of the groups associated with resolution of the storage system capacity issue using at least one hash function in conjunction with at least one similarity metric, and wherein using the at least one hash function in conjunction with the at least one similarity metric comprises
[0003]:
To alleviate the time and storage bottlenecks, two research directions have been studied extensively: (1) partition the dataset so that only a subset of data points is searched; (2) represent the data as codes so that similarity computation can be carried out more efficiently. The former often resorts to search-tree or bucket-based lookup; while the latter relies on binary hashing or quantization. These two groups of techniques are orthogonal and are typically employed together in practice.
[0026] :
In view of the above, aspects of the present disclosure are directed to speeding up search via binary hashing. One aspect of binary hashing is to utilize a hash function, f(.) X
→
{
0
,
1
}
l
, which maps the original samples in X ∈
R
d
to l-bit binary vectors h ∈
{
0
,
1
}
l
while preserving the similarity measure. Example similarity measures include Euclidean distance or inner product. Search with such binary representations can be efficiently conducted using, for example, Hamming distance computation, which is supported via POPCNT on modern CPUs and GPUs. Quantization based techniques have been shown to give stronger empirical results and can also be used. However, quantization based techniques also tend to be less efficient than Hamming search over binary codes.
[0036]:
The machine-learned generative model 121 can be or include various types of models, including, as examples, probabilistic models, linear models, and/or non-linear models, or combinations thereof. As one example, the machine-learned generative model 121 can be or include a machine-learned Gaussian model. As another example, the machine-learned generative model 121 can be or include a machine-learned restricted Markov Random Fields model.
[0035]:
According to an aspect of the present disclosure, the machine-learned hashing model 120 can be jointly trained with a machine-learned generative model 121. The machine-learned generative model 121 can receive the binary hash 12 and, in response, output a reconstruction of the input 10, shown as reconstructed input 14 in FIG. 1A. Thus, the machine-learned generative model 121 can be a generative model that seeks to reconstruct the input 10 based on the binary hash 12. As such, in some implementations, the machine-learned generative model 121 can be referred to as a decoder mode
(BRI: a hash model and a generative model jointly learned may enable automatic learning and representation optimization without manual feature engineering as the system learns both the representation (hash codes) and the generative mapping directly from raw data.
[0216]:
The computing system 102 can include a model trainer 122 that trains the machine-learned models 120 and 121 using various training or learning techniques, such as, for example, backwards propagation of errors. The model trainer 122 can perform a number of generalization techniques (e.g., weight decays, dropouts, etc.) to improve the generalization capability of the models being trained. In some implementations, the model trainer 122 can perform or be leveraged to perform one or more (e.g., all) operations of method 1100 of FIG. 11.
[0041]:
In some implementations, the objective function 16 can describe a difference between the input 10 and the reconstructed input 14. For example, the objective function 16 can evaluate a difference or loss between the input 10 and the reconstructed input 14.
[0043]: training the model(s) based on the objective function 16 can include performing distributional stochastic gradient descent to optimize the objective function 16. In some implementations, training the model(s) based on the objective function 16 can include optimizing one or more distributions of the plurality of binary variables
It would have obvious to one of ordinary skill in the art before the effective filing date of the present application to combine Kenney, Kil and Guo.
Kenney teaches automatic learning and providing a storage system capacity issue and automatic resolution of at least storage system capacity issue.
Kil teaches determining content-based similarity associated to the storage system capacity issue and resolution.
Guo teaches hash based model and automatic learning in conjunction with similarity metric and hash function.
One of ordinary skill would have motivation to combine Kenney , Kil and Guo that can improved the generalization capability of the models being trained (Guo [0216]).
Kenney and Guo do not explicitly disclose:
- determining content-based similarity, using the at least one similarity metric, between (i) at least one of the at least a plurality of records from the at least one of the groups associated with the storage system capacity issue
- and (ii) at least one of the at least a plurality of records from the at least one of the groups associated with resolution of the storage system capacity issue;
However, Kil discloses:
- determining content-based similarity, using the at least one similarity metric, between (i) at least one of the at least a plurality of records from the at least one of the groups associated with the storage system capacity issue
[0022]:
One embodiment is a data mining algorithm selection method for selecting a data mining algorithm for data mining analysis of a problem set. The data mining algorithm selection method includes the act of providing data to be analyzed by data mining, the act of providing a training database, the act of extracting features that classify the data
[0022]:
Extracting features in this data mining algorithm selection method may also include the act of identifying a point of diminishing returns in the number of features and the act of estimating the robustness of features.
[0022]:
Estimating feature robustness can include calculating the entropy of each subset as a statistical measure of similarity. This data mining algorithm selection method can also include identifying parameters using the identified parameters in selecting a data mining algorithm. The parameter can include user preferences, real-time deployment issues, available memory, the size of training data, and/or available throughput. Selecting a data mining algorithm can use a simple classifier.
(BRI: the available memory is the portion of the total memory free for the application to use)
[0083]:
In the embodiment pictured in FIG. 5, a detect data mismatch code module (520) estimates feature robustness with the similarity metric as a function of temporal segments and randomly partitioned segments.
PNG
media_image1.png
832
573
media_image1.png
Greyscale
[0083]:
The parameters identified by the parameterize code module (540) are appended to the vector of metafeatures generated by the characterize distribution code module (530) for use by a classify code module (550) in identifying the most appropriate data mining algorithms.
- and (ii) at least one of the at least a plurality of records from the at least one of the groups associated with resolution of the storage system capacity issue;
[0022]:
Estimating feature robustness can include calculating the entropy of each subset as a statistical measure of similarity. This data mining algorithm selection method can also include identifying parameters using the identified parameters in selecting a data mining algorithm. The parameter can include user preferences, real-time deployment issues, available memory, the size of training data, and/or available throughput. Selecting a data mining algorithm can use a simple classifier.
[0022]:
data mining algorithm selection method can also include selecting more than one data mining algorithm and fusing the selected data mining algorithms into a composite data mining algorithm.
[0043]:
Referring now to FIG. 1, there is shown a program flowchart illustrating the sequence operations in a first embodiment of a program (100) for improved data mining algorithm ("DM-algorithm") selection based on the good feature distribution, or probability density function.
[0043]:
This embodiment includes a calculate-optimal-problem-dimension process (110).
[0044]:
In this embodiment the calculate-optimal-problem-dimension process (110) may also in one mode assess feature robustness. The calculate-optimal-problem-dimension process (110) in this embodiment identifies the point at which adding more features does not enhance DM-algorithm performance. It may reduce the problem dimension using techniques such as subspace filtering, single dimensional feature ranking, multidimensional (MD) combinatorial optimization,
[0044]:
This step is analogous to understanding how many input features are required to form a sufficient statistic for a given problem.
[0045]:
The metafeatures describe what the good features in the feature subset look like in the multidimensional feature space using a variety of statistical, vector quantization, transform.
[0066]:
The transform-to-DM-algorithm-space process (350) may utilize a classification database (365). This transform-to-DM-algorithm-space process (350) maps input metafeatures to a dependent variable, which records classification performance of each classifier under a range of operational parameters. The transform-to-DM-algorithm-space process (350) may incorporate an optimization algorithm that uses the classification database (365) to find the mapping function.
[0064]:
The get-case-constraints process (340) may query the user for preferences and assess resources at runtime, or that information may be encoded along with the input data sets.
[0022]:
This embodiment may also select more than one data mining algorithm and fuse the selected data mining algorithms into a composite data mining algorithm.
( BRI: the size of training data can indeed impact memory usage during deployment and techniques such as quantization can help reduce the model size and memory footprint making more efficient to run on devices with limited resources. Perhaps as known to the POSITA, fusing also help to reduce the memory requirements that depends on the algorithms used)
It would have obvious to one of ordinary skill in the art before the effective filing date of the present application to combine Kenney, Guo and Kil.
Kenney teaches providing a system issue and automatic resolution of at least storage capacity issue.
Guo teaches hash based model and automatic learning in conjunction with similarity metric and hash function.
Kil teaches determining content-based similarity associated to the storage system issue and resolution.
One of ordinary skill would have motivation to combine Kenney , Guo and Kil that provide overall improvement of the performance (Kil [0101])
In regard to claim 3: (Original)
Kenney discloses:
- creating the updated dataset comprises processing configuration changes in the configuration data remaining in the updated dataset.
In [Col 32, lines 42-45]:
leaning and transforming the data in a format convenient for training, including linking data samples to the appropriate label, 3) exploring parameters and models, quickly testing with a smaller dataset
In regard to claim 10 (Currently Amended)
Kenney discloses:
- wherein the at least one storage system capacity issue comprises at least one storage system capacity issue attributed to one or more storage objects within the at least one storage system
In [Col 38, lines 43-46]:
AI platforms may be configured to scan all incoming storage system telemetry data against a library of issue fingerprints to predict and resolve incidents in real-time,
In [Col 48, line 34-39]:
rules may be in place such that recommendations are generated (804), when the predicted performance load on the storage system (408) reaches a predetermined threshold, when the predicted performance load on the storage system (408) is expected to exceed performance capacity of the storage system (408) within a predetermined period of time,
In regard to claim 11: (Currently Amended)
Kenney discloses:
- A non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device causes the at least one processing device
In [Col 65, 1-24]:
- to obtain a dataset comprising configuration data for at least one storage system for a given duration between onset of least one storage system issue and resolution of the at least one storage system capacity issue;
In [Col 41, lines 44-57]:
load models may be created for storage systems that have different hardware configurations, load models may be created for storage systems that have different software configurations, load models may be created for storage systems that have different configuration settings, or any combination thereof.
In [Col 48, lines 37-50]:
when the predicted performance load on the storage system (408) is expected to exceed performance capacity of the storage system (408) within a predetermined period of time, when additional storage systems are added to or removed from a cluster, when other storage systems within a cluster are modified (e.g., a hardware or software updated occurs), when the storage system (408) itself is modified, and so on. In such an example, the recommendation may be presented (e.g., via a GUI, via a message) to a system administrator or other user that can take action in response to the recommendation. Likewise, the recommendation may be sent to an upgrade module or other automated module that may carry out the recommended course of action (e.g., installing a software patch, migrating a workload).
to identify one or more items of the configuration data associated with one or more
configuration changes unrelated to the resolution of the at least one storage system capacity issue by processing the dataset using one or more machine learning-based feature selection techniques
in [Col 28, lines 48-54]:
Storage systems in accordance with some embodiments of the present disclosure may utilize object storage, where data is managed as objects. Each object may include the data itself, a variable amount of metadata, and a globally unique identifier, where object storage can be implemented at multiple levels (e.g., device level, system level, interface level).
(BRI: metadata is a core feature of object storage that includes descriptive information about a stored object)
in [Col 40, lines 36-40]:
the data (404) collected from a plurality of storage systems (402, 406) may be embodied, for example, as telemetry data that is periodically sent from the storage systems (402, 406) to a centralized management service (not illustrated).
40, 46-53
The information describing various performance characteristics of the storage system can include, for example, the number of IOPS being serviced by the storage system, the utilization rates of various computing resources (e.g., CPU utilization) within the storage system, the utilization rates of various networking resources (e.g., network bandwidth utilization) within the storage system,
In [Col 48, lines 29-33]:
The recommendation that is generated (804) may include, for example, a recommendation to perform a hardware or software upgrade on the storage system (804), a recommendation to move a workload from the storage system (408) to another storage system
- to create an updated dataset by , filtering the one or more identified items of the
configuration data from the dataset,
in [Col 34, lines 11-20]:
Small file performance of the storage tier may be critical as many types of inputs, including text, audio, or images will be natively stored as small files. If the storage tier does not handle small files well, an extra step will be required to pre-process and group samples into larger files. Storage, built on top of spinning disks, that relies on SSD as a caching tier, may fall short of the performance needed. Because training with random input batches results in more accurate models, the entire data set must be accessible with full performance.
In [Col 37, lines 1-9]:
Consider a specific example of inventory management in a warehouse, distribution center, or similar location. A large inventory, warehousing, shipping, order-fulfillment, manufacturing or other operation has a large amount of inventory on inventory shelves, and high resolution digital cameras that produce a firehose of large data. All of this data may be taken into an image processing system, which may reduce the amount of data to a firehose of small data. All of the small data may be stored on-premises in storage.
In [Col 37, lines 16-18]:
The above scenario is a prime candidate for an embodiment of the configurable processing and storage systems described above
- to group at least a portion of the configuration data within the updated dataset into two or
more groups
In [Col 1, lines 49-50]:
FIG. 2G depicts authorities and storage resources in blades of a storage cluster, in accordance with some embodiments.
In [Col 11, lines 65-67], in [Col 12, lines 1-4]:
The embodiments depicted with reference to FIGS. 2A-G illustrate a storage cluster that stores user data, such as user data originating from one or more user or client systems or other sources external to the storage cluster. The storage cluster distributes user data across storage nodes housed within a chassis, or across multiple chassis, using erasure coding and redundant copies of metadata.
- to train one or more artificial intelligence-based hash models, based at least in part on the two or more groups of the configuration data, wherein at least one of the groups is associated with a storage system capacity issue and at least one of the groups is associated with resolution of the storage system capacity issue,
In [Col 32, lines 31-41]:
Data is the heart of modern AI and deep learning algorithms. Before training can begin, one problem that must be addressed revolves around collecting the labeled data that is crucial for training an accurate AI model. A full scale AI deployment may be required to continuously collect, clean, transform, label, and store large amounts of data. Adding additional high quality data points directly translates to more to more accurate models and better insights. Data samples may undergo a series of processing steps including, but not limited to: 1) ingesting the data from an external source into the training system and storing the data in raw form,
In [Col 32, lines 44-50]:
exploring parameters and models, quickly testing with a smaller dataset, and iterating to converge on the most promising models to push into the production cluster, 4) executing training phases to select random batches of input data, including both new and older samples, and feeding those into production GPU servers for computation to update model parameters,
in [Col 1, lines 49-50]:
FIG. 2G depicts authorities and storage resources in blades of a storage cluster, in accordance with some embodiments.
In [Col 11, lines 65-67], in [Col 12, lines 1-4]:
The embodiments depicted with reference to FIGS. 2A-G illustrate a storage cluster that stores user data, such as user data originating from one or more user or client systems or other sources external to the storage cluster. The storage cluster distributes user data across storage nodes housed within a chassis, or across multiple chassis, using erasure coding and redundant copies of metadata.
In [Col 48, lines 35-43]:
when the predicted performance load on the storage system (408) reaches a predetermined threshold, when the predicted performance load on the storage system (408) is expected to exceed performance capacity of the storage system (408) within a predetermined period of time, when additional storage systems are added to or removed from a cluster, when other storage systems within a cluster are modified (e.g., a hardware or software updated occurs), when the storage system (408) itself is modified, and so on.
- converting each of at least a plurality of records within the two or more groups of the configuration data to a respective signature, using the at least one hash function;
[Col 27, lines 39-47]:
telemetry data may describe various operating characteristics of the storage system 306 and may be analyzed, for example, to determine the health of the storage system 306, to identify workloads that are executing on the storage system 306, to predict when the storage system 306 will run out of various resources, to recommend configuration changes, hardware or software upgrades, workflow migrations, or other actions that may improve the operation of the storage system 306.
[Col 34, lines 61-67]:
the storage systems described above may be configured to support the storage of (among of types of data) blockchains. Such blockchains may be embodied as a continuously growing list of records, called blocks, which are linked and secured using cryptography. Each block in a blockchain may contain a hash pointer as a link to a previous block, a timestamp, transaction data, and
[Col 35, lines 1-4]:
so on. Blockchains may be designed to be resistant to modification of the data and can serve as an open, distributed ledger that can record transactions between two parties efficiently and in a verifiable and permanent way.
(BRI: a blockchain can represent a cryptographic signature of configuration data because its hash-linked structure provides an unchangeable, verifiable record of the data)
- wherein the respective signature is less than a predefined size corresponding to a memory in which the respective signature is to be stored;
[Col 35, lines 1-12]:
Blockchains may be designed to be resistant to modification of the data and can serve as an open, distributed ledger that can record transactions between two parties efficiently and in a verifiable and permanent way. This makes blockchains potentially suitable for the recording of events, medical records, and other records management activities, such as identity management, transaction processing, and others. In addition to supporting the storage and use of blockchain technologies, the storage systems described above may also support the storage and use of derivative items such as, for example, open source blockchains and related tools
[Col 35, lines 14-16]:
blockchain products that enable developers to build their own distributed ledger projects, and others
[Col 35, lines 24-25]:
blockchain ledger for any healthcare provider, or permissioned health care providers, to access and update.
(BRI: this is storing a signature)
[Col 15, lines 62-67]:
If there is a change in where a particular segment of data is located, e.g., during a data move or a data reconstruction, the authority 168 for that data segment should be consulted, at that non-volatile solid state storage 152 or storage node 150 having that authority 168. In order to locate a particular piece of data, embodiments calculate a hash value for a data
[Col 16, lines 1-2]
segment or apply an inode number or a data segment number.
[Col 22, lines 4-12]:
In the compute and storage planes 256, 258 of FIG. 2E, the authorities 168 interact with the underlying physical resources (i.e., devices). From the point of view of an authority 168, its resources are striped over all of the physical devices. From the point of view of a device, it provides resources to all authorities 168, irrespective of where the authorities happen to run. Each authority 168 has allocated or has been allocated one or more partitions 260 of storage memory in the storage units 152
[Col 22, lines 15-19]:
Authorities can be associated with differing amounts of physical storage of the system. For example, one authority 168 could have a larger number of partitions 260 or larger sized partitions 260 in one or more storage units 152 than one or more other authorities 168.
(BRI: hash value represents a “hash function” and when the data segment changes, its hash differ from the stored hash and as it is signed , the signature also differs and the size of the signature can be controlled)
- correlating (a) the content-based similarity between
In [Col 43, lines 1-10]:
predicting (418) performance load on the storage system (408), a load model (412) may be used that was developed for storage systems that most closely resemble the storage system (408) whose performance load is being predicted. Consider an example in which load models are constructed for systems using some combination of three system attributes: model number, system software version number, and storage capacity. In such an example, assume that the table below maps various load models with various system configurations:
- with (b) the respective signatures corresponding to
(i) the at least one of the at least a plurality of records from the at least one of the groups associated with the storage system capacity issue and
In [Col 34, lines 61-67]:
the storage systems described above may be configured to support the storage of (among of types of data) blockchains. Such blockchains may be embodied as a continuously growing list of records, called blocks, which are linked and secured using cryptography. Each block in a blockchain may contain a hash pointer as a link to a previous block, a timestamp, transaction data, and so on.
(BRI: Each block includes a cryptographic hash of the previous block, a timestamp, and transaction data, which are secured using a digital signature for each transaction.)
In [Col 15, lines 61-67], in [Col 16, lines 1-8]:
If there is a change in where a particular segment of data is located, e.g., during a data move or a data reconstruction, the authority 168 for that data segment should be consulted, at that non-volatile solid state storage 152 or storage node 150 having that authority 168. In order to locate a particular piece of data, embodiments calculate a hash value for a data segment or apply an inode number or a data segment number. The output of this operation points to a non-volatile solid state storage 152 having the authority 168 for that particular piece of data. In some embodiments there are two stages to this operation. The first stage maps an entity identifier (ID), e.g., a segment number, inode number, or directory number to an authority identifier. This mapping may include a calculation such as a hash or a bit mask.
In [Col 38, lines 43-48]:
AI platforms may be configured to scan all incoming storage system telemetry data against a library of issue fingerprints to predict and resolve incidents in real-time, before they impact customer environments, and captures hundreds of variables related to performance that are used to forecast performance load.
(ii) the at least one of the at least a plurality of records from the at least one of the groups associated with resolution of the storage system capacity issue;
In [Col 38, lines 43-48]:
AI platforms may be configured to scan all incoming storage system telemetry data against a library of issue fingerprints to predict and resolve incidents in real-time, before they impact customer environments, and captures hundreds of variables related to performance that are used to forecast performance load.
(BRI: load model for storage systems that most closely resemble the target storage system is the similarity can be based on a correlation metric or other similarity measures)
- to predict, by processing input configuration data for the at least one storage system using the one or more artificial intelligence-based hash models, one or more storage system capacity issues for the at least one system;
In [Col 30, lines 63-67] and in [Col 31, lines 1-4]:
the storage system 306 depicted in FIG. 3B may be useful for supporting various types of software applications. For example, the storage system 306 may be useful in supporting artificial intelligence (‘AI’) applications, database applications, DevOps projects, electronic design automation tools, event-driven software applications, high performance computing applications, simulation applications, high-speed data capture and analysis applications, machine learning applications,
in [Col 15, lines 62-67] and [Col 16, lines 1-11]:
If there is a change in where a particular segment of data is located, e.g., during a data move or a data reconstruction, the authority 168 for that data segment should be consulted, at that non-volatile solid state storage 152 or storage node 150 having that authority 168. In order to locate a particular piece of data, embodiments calculate a hash value for a data segment or apply an inode number or a data segment number. The output of this operation points to a non-volatile solid state storage 152 having the authority 168 for that particular piece of data. In some embodiments there are two stages to this operation. The first stage maps an entity identifier (ID), e.g., a segment number, inode number, or directory number to an authority identifier. This mapping may include a calculation such as a hash or a bit mask. The second stage is mapping the authority identifier to a particular non-volatile solid state storage 152, which may be done through an explicit mapping.
In [Col 27, lines 41-47]:
to determine the health of the storage system 306, to identify workloads that are executing on the storage system 306, to predict when the storage system 306 will run out of various resources, to recommend configuration changes, hardware or software upgrades, workflow migrations, or other actions that may improve the operation of the storage system 306.
- to perform at least one automated action pertaining to preemptive storage system capacity issue resolution, in response to the one or more predicted storage system capacity issues, wherein performing at least one automated action comprises:
[Col 30, lines 39-47]:
The software resources 314 may include software modules that intelligently group together I/O operations to facilitate better usage of the underlying storage resource 308, software modules that perform data migration operations to migrate from within a storage system, as well as software modules that perform other functions. Such software resources 314 may be embodied as one or more software containers or in many other ways.
[Col 34, lines 2-10]:
the ability of the storage systems to scale capacity and performance as either the dataset grows or the throughput requirements grow, the ability of the storage systems to support files or objects, the ability of the storage systems to tune performance for large or small files (i.e., no need for the user to provision filesystems), the ability of the storage systems to support non-disruptive upgrades of hardware and software even during production model training, and for many other reasons.
In [Col 27, lines 23-30]:
through the usage of a SaaS service model where the cloud services provider 302 offers application software, databases, as well as the platforms that are used to run the applications to the storage system 306 and users of the storage system 306, providing the storage system 306 and users of the storage system 306 with on-demand software and eliminating the need to install and run the application on local computers,
In [Col 27, lines 39-47]:
telemetry data may describe various operating characteristics of the storage system 306 and may be analyzed, for example, to determine the health of the storage system 306, to identify workloads that are executing on the storage system 306, to predict when the storage system 306 will run out of various resources, to recommend configuration changes, hardware or software upgrades, workflow migrations, or other actions that may improve the operation of the storage system 306.
[Col 48, lines 3-6]:
The example method depicted in FIG. 8 also includes determining (802) when the predicted performance load on the storage system (408) will exceed performance capacity of the storage system (408).
- automatically resolving at least one of the one or more predicted storage system capacity issues for the at least one system, wherein automatically resolving the at least one of the one or more predicted storage system capacity issues comprises modifying storage capacity of the at least one storage system by: (i) reclaiming used storage for at least one of one or more logical storage volumes of the at least one storage system and one or more file systems of the at least one storage system, and (ii) adding one or more storage devices to the at least one storage system;
In [Col 31, lines 24-28]:
Machine learning applications may perform various types of data analysis to automate analytical model building. Using algorithms that iteratively learn from data, machine learning applications can enable computers to learn without being explicitly programmed.
In [Col 27, lines 41-47]:
to determine the health of the storage system 306, to identify workloads that are executing on the storage system 306, to predict when the storage system 306 will run out of various resources, to recommend configuration changes, hardware or software upgrades, workflow migrations, or other actions that may improve the operation of the storage system 306.
In [Col 48, lines 26-50]:
The example method depicted in FIG. 8 also includes generating (804), in dependence upon predicted performance load on the storage system (408), a recommendation. The recommendation that is generated (804) may include, for example, a recommendation to perform a hardware or software upgrade on the storage system (804), a recommendation to move a workload from the storage system (408) to another storage system, and so on. In such an example, rules may be in place such that recommendations are generated (804), for example, when the predicted performance load on the storage system (408) reaches a predetermined threshold, when the predicted performance load on the storage system (408) is expected to exceed performance capacity of the storage system (408) within a predetermined period of time, when additional storage systems are added to or removed from a cluster, when other storage systems within a cluster are modified (e.g., a hardware or software updated occurs), when the storage system (408) itself is modified, and so on. In such an example, the recommendation may be presented (e.g., via a GUI, via a message) to a system administrator or other user that can take action in response to the recommendation. Likewise, the recommendation may be sent to an upgrade module or other automated module that may carry out the recommended course of action (e.g., installing a software patch, migrating a workload).
- automatically re-training at least a portion of the one or more artificial intelligence-based hash models based at least in part on resulting data pertaining to the automatic resolution of the at least one predicted storage system capacity issue
In [Col 33, lines 51-52]:
continued improvement of models with larger data set sizes.
In [Col 44, lines 33-37]:
the load model that is used to predict (504) updated performance load on the storage system (408) may be different than the load model that was used to predict (418) performance load on the storage system (408) prior to receiving (502) information describing one or more modifications to the storage system (408).
In [Col 32, lines 34-41]:
A full scale AI deployment may be required to continuously collect, clean, transform, label, and store large amounts of data. Adding additional high quality data points directly translates to more accurate models and better insights. Data samples may undergo a series of processing steps including, but not limited to: 1) ingesting the data from an external source into the training system
In [Col 31, lines 29-47]:
the storage systems described above may also include graphics processing units (‘GPUs’), occasionally referred to as visual processing unit (‘VPUs’). Such GPUs may be embodied as specialized electronic circuits that rapidly manipulate and alter memory to accelerate the creation of images in a frame buffer intended for output to a display device. Such GPUs may be included within any of the computing devices that are part of the storage systems described above, including as one of many individually scalable components of a storage system, where other examples of individually scalable components of such storage system can include storage components, memory components, compute components (e.g., CPUs, FPGAs, ASICs), networking components, software components, and others. In addition to GPUs, the storage systems described above may also include neural network processors (‘NNPs’) for use in various aspects of neural network processing. Such NNPs may be used in place of (or in addition to) GPUs and may be also be independently scalable.
Kenney does not explicitly disclose:
- wherein training the one or more artificial intelligence-based hash models comprises
- automatically learning one or more connections between the at least one of the groups associated with the storage system capacity issue and the at least one of the groups associated with resolution of the storage system capacity issue using at least one hash function in conjunction with at least one similarity metric, and wherein using the at least one hash function in conjunction with the at least one similarity metric comprises
However, Guo discloses:
- wherein training the one or more artificial intelligence-based hash models comprises
[0005]:
The computer system includes a machine-learned hashing model configured to receive an input and, in response, output a binary hash for the input. The binary hash includes a binary value for each of a plurality of binary variables. The computer system includes a machine-learned generative model configured to receive the binary hash and, in response, output a reconstruction of the input.
- automatically learning one or more connections between the at least one of the groups associated with the storage system capacity issue and the at least one of the groups associated with resolution of the storage system capacity issue using at least one hash function in conjunction with at least one similarity metric, and wherein using the at least one hash function in conjunction with the at least one similarity metric comprises
[0003]:
To alleviate the time and storage bottlenecks, two research directions have been studied extensively: (1) partition the dataset so that only a subset of data points is searched; (2) represent the data as codes so that similarity computation can be carried out more efficiently. The former often resorts to search-tree or bucket-based lookup; while the latter relies on binary hashing or quantization. These two groups of techniques are orthogonal and are typically employed together in practice.
[0026] :
In view of the above, aspects of the present disclosure are directed to speeding up search via binary hashing. One aspect of binary hashing is to utilize a hash function, f(.) X
→
{
0
,
1
}
l
, which maps the original samples in X ∈
R
d
to l-bit binary vectors h ∈
{
0
,
1
}
l
while preserving the similarity measure. Example similarity measures include Euclidean distance or inner product. Search with such binary representations can be efficiently conducted using, for example, Hamming distance computation, which is supported via POPCNT on modern CPUs and GPUs. Quantization based techniques have been shown to give stronger empirical results and can also be used. However, quantization based techniques also tend to be less efficient than Hamming search over binary codes.
[0036]:
The machine-learned generative model 121 can be or include various types of models, including, as examples, probabilistic models, linear models, and/or non-linear models, or combinations thereof. As one example, the machine-learned generative model 121 can be or include a machine-learned Gaussian model. As another example, the machine-learned generative model 121 can be or include a machine-learned restricted Markov Random Fields model.
[0035]:
According to an aspect of the present disclosure, the machine-learned hashing model 120 can be jointly trained with a machine-learned generative model 121. The machine-learned generative model 121 can receive the binary hash 12 and, in response, output a reconstruction of the input 10, shown as reconstructed input 14 in FIG. 1A. Thus, the machine-learned generative model 121 can be a generative model that seeks to reconstruct the input 10 based on the binary hash 12. As such, in some implementations, the machine-learned generative model 121 can be referred to as a decoder mode
(BRI: a hash model and a generative model jointly learned may enable automatic learning and representation optimization without manual feature engineering as the system learns both the representation (hash codes) and the generative mapping directly from raw data.
[0216]:
The computing system 102 can include a model trainer 122 that trains the machine-learned models 120 and 121 using various training or learning techniques, such as, for example, backwards propagation of errors. The model trainer 122 can perform a number of generalization techniques (e.g., weight decays, dropouts, etc.) to improve the generalization capability of the models being trained. In some implementations, the model trainer 122 can perform or be leveraged to perform one or more (e.g., all) operations of method 1100 of FIG. 11.
[0041]:
In some implementations, the objective function 16 can describe a difference between the input 10 and the reconstructed input 14. For example, the objective function 16 can evaluate a difference or loss between the input 10 and the reconstructed input 14.
[0043]: training the model(s) based on the objective function 16 can include performing distributional stochastic gradient descent to optimize the objective function 16. In some implementations, training the model(s) based on the objective function 16 can include optimizing one or more distributions of the plurality of binary variables
It would have obvious to one of ordinary skill in the art before the effective filing date of the present application to combine Kenney, Kil and Guo.
Kenney teaches automatic learning and providing a storage system capacity issue and automatic resolution of at least storage system capacity issue.
Kil teaches determining content-based similarity associated to the storage system capacity issue and resolution.
Guo teaches hash based model and automatic learning in conjunction with similarity metric and hash function.
One of ordinary skill would have motivation to combine Kenney , Kil and Guo that can improved the generalization capability of the models being trained (Guo [0216]).
Kenny and Guo do not explicitly disclose:
- correlating (a) the content-based similarity between (i) the at least one of the at least a plurality of records from the at least one of the groups associated with the storage system capacity issue
- and (ii) the at least one of the at least a plurality of records from the at least one of the groups associated with resolution of the storage system capacity issue,
- and (ii) the at least one of the at least a plurality of records from the at least one of the groups associated with resolution of the storage system capacity issue;
However, Kil discloses:
- determining content-based similarity, using the at least one similarity metric, between (i) at least one of the at least a plurality of records from the at least one of the groups associated with the storage system capacity issue
[0022]:
One embodiment is a data mining algorithm selection method for selecting a data mining algorithm for data mining analysis of a problem set. The data mining algorithm selection method includes the act of providing data to be analyzed by data mining, the act of providing a training database, the act of extracting features that classify the data
[0022]:
Extracting features in this data mining algorithm selection method may also include the act of identifying a point of diminishing returns in the number of features and the act of estimating the robustness of features.
[0022]:
Estimating feature robustness can include calculating the entropy of each subset as a statistical measure of similarity. This data mining algorithm selection method can also include identifying parameters using the identified parameters in selecting a data mining algorithm. The parameter can include user preferences, real-time deployment issues, available memory, the size of training data, and/or available throughput. Selecting a data mining algorithm can use a simple classifier.
(BRI: the available memory is the portion of the total memory free for the application to use)
[0083]:
In the embodiment pictured in FIG. 5, a detect data mismatch code module (520) estimates feature robustness with the similarity metric as a function of temporal segments and randomly partitioned segments.
PNG
media_image1.png
832
573
media_image1.png
Greyscale
[0083]:
The parameters identified by the parameterize code module (540) are appended to the vector of metafeatures generated by the characterize distribution code module (530) for use by a classify code module (550) in identifying the most appropriate data mining algorithms.
- and (ii) at least one of the at least a plurality of records from the at least one of the groups associated with resolution of the storage system capacity issue;
[0022]:
Estimating feature robustness can include calculating the entropy of each subset as a statistical measure of similarity. This data mining algorithm selection method can also include identifying parameters using the identified parameters in selecting a data mining algorithm. The parameter can include user preferences, real-time deployment issues, available memory, the size of training data, and/or available throughput. Selecting a data mining algorithm can use a simple classifier.
[0022]:
data mining algorithm selection method can also include selecting more than one data mining algorithm and fusing the selected data mining algorithms into a composite data mining algorithm.
[0043:
Referring now to FIG. 1, there is shown a program flowchart illustrating the sequence operations in a first embodiment of a program (100) for improved data mining algorithm ("DM-algorithm") selection based on the good feature distribution, or probability density function.
[0043]:
This embodiment includes a calculate-optimal-problem-dimension process (110).
[0044]:
In this embodiment the calculate-optimal-problem-dimension process (110) may also in one mode assess feature robustness. The calculate-optimal-problem-dimension process (110) in this embodiment identifies the point at which adding more features does not enhance DM-algorithm performance. It may reduce the problem dimension using techniques such as subspace filtering, single dimensional feature ranking, multidimensional (MD) combinatorial optimization,
[0044]:
This step is analogous to understanding how many input features are required to form a sufficient statistic for a given problem.
[0045]:
The metafeatures describe what the good features in the feature subset look like in the multidimensional feature space using a variety of statistical, vector quantization, transform.
[0066]:
The transform-to-DM-algorithm-space process (350) may utilize a classification database (365). This transform-to-DM-algorithm-space process (350) maps input metafeatures to a dependent variable, which records classification performance of each classifier under a range of operational parameters. The transform-to-DM-algorithm-space process (350) may incorporate an optimization algorithm that uses the classification database (365) to find the mapping function.
[0064]:
The get-case-constraints process (340) may query the user for preferences and assess resources at runtime, or that information may be encoded along with the input data sets.
[0022]:
This embodiment may also select more than one data mining algorithm and fuse the selected data mining algorithms into a composite data mining algorithm.
( BRI: the size of training data can indeed impact memory usage during deployment and techniques such as quantization can help reduce the model size and memory footprint making more efficient to run on devices with limited resources. Perhaps as known to the POSITA, fusing also help to reduce the memory requirements that depends on the algorithms used)
It would have obvious to one of ordinary skill in the art before the effective filing date of the present application to combine Kenney, and Kil.
Kenney teaches providing a storge system capacity issue and automatic resolution of at least one storage system capacity issue.
Kil teaches determining content-based similarity associated to the storage system capacity issue and resolution.
One of ordinary skill would have motivation to combine Kenney , and Kil that provide overall improvement of the performance (Kil [0101])
In regard to claim 13: (Original)
Kenney discloses:
- creating the updated dataset comprises processing configuration changes in the configuration data remaining in the updated dataset.
In [Col 32, lines 42-45]:
leaning and transforming the data in a format convenient for training, including linking data samples to the appropriate label, 3) exploring parameters and models, quickly testing with a smaller dataset
In regard to claim 16: (Currently Amended)
Kenney discloses:
- An apparatus comprising: at least one processing device comprising a processor coupled to a memory: the at least one processing device being configured:
In [Col 66, 11-27]:
- to obtain a dataset comprising configuration data for at least one storage system for a given duration between onset of least one storage system capacity issue and resolution of the at least one storage system capacity issue;
In [Col 41, lines 44-57]:
load models may be created for storage systems that have different hardware configurations, load models may be created for storage systems that have different software configurations, load models may be created for storage systems that have different configuration settings, or any combination thereof.
48, 37-50
In [Col 48, lines 37-50]:
when the predicted performance load on the storage system (408) is expected to exceed performance capacity of the storage system (408) within a predetermined period of time, when additional storage systems are added to or removed from a cluster, when other storage systems within a cluster are modified (e.g., a hardware or software updated occurs), when the storage system (408) itself is modified, and so on. In such an example, the recommendation may be presented (e.g., via a GUI, via a message) to a system administrator or other user that can take action in response to the recommendation. Likewise, the recommendation may be sent to an upgrade module or other automated module that may carry out the recommended course of action (e.g., installing a software patch, migrating a workload).
- to identify one or more items of the configuration data associated with one or more
configuration changes unrelated to the resolution of the at least one storage system capacity issue by processing the dataset using one or more machine learning-based feature selection techniques
[Col 28, lines 48-54]:
Storage systems in accordance with some embodiments of the present disclosure may utilize object storage, where data is managed as objects. Each object may include the data itself, a variable amount of metadata, and a globally unique identifier, where object storage can be implemented at multiple levels (e.g., device level, system level, interface level).
[Col 40, lines 36-40]:
the data (404) collected from a plurality of storage systems (402, 406) may be embodied, for example, as telemetry data that is periodically sent from the storage systems (402, 406) to a centralized management service (not illustrated).
In [Col 40, lines 46-53]:
The information describing various performance characteristics of the storage system can include, for example, the number of IOPS being serviced by the storage system, the utilization rates of various computing resources (e.g., CPU utilization) within the storage system, the utilization rates of various networking resources (e.g., network bandwidth utilization) within the storage system,
In [Col 48, lines 29-33]:
The recommendation that is generated (804) may include, for example, a recommendation to perform a hardware or software upgrade on the storage system (804), a recommendation to move a workload from the storage system (408) to another storage system
- to create an updated dataset by , filtering the one or more identified items of the
configuration data from the dataset,
[Col 34, lines 11-20]:
Small file performance of the storage tier may be critical as many types of inputs, including text, audio, or images will be natively stored as small files. If the storage tier does not handle small files well, an extra step will be required to pre-process and group samples into larger files. Storage, built on top of spinning disks, that relies on SSD as a caching tier, may fall short of the performance needed. Because training with random input batches results in more accurate models, the entire data set must be accessible with full performance.
In [Col 37, lines 1-9]:
Consider a specific example of inventory management in a warehouse, distribution center, or similar location. A large inventory, warehousing, shipping, order-fulfillment, manufacturing or other operation has a large amount of inventory on inventory shelves, and high resolution digital cameras that produce a firehose of large data. All of this data may be taken into an image processing system, which may reduce the amount of data to a firehose of small data. All of the small data may be stored on-premises in storage.
In [Col 37, lines 16-18]:
The above scenario is a prime candidate for an embodiment of the configurable processing and storage systems described above
- to group at least a portion of the configuration data within the updated dataset into two or
more groups
[Col 1, lines 49-50]:
FIG. 2G depicts authorities and storage resources in blades of a storage cluster, in accordance with some embodiments.
In [Col 11, lines 65-67], in [Col 12, lines 1-4]:
The embodiments depicted with reference to FIGS. 2A-G illustrate a storage cluster that stores user data, such as user data originating from one or more user or client systems or other sources external to the storage cluster. The storage cluster distributes user data across storage nodes housed within a chassis, or across multiple chassis, using erasure coding and redundant copies of metadata.
- to train one or more artificial intelligence-based hash models, based at least in part on the two or more groups of the configuration data, wherein at least one of the groups is associated with a storage system capacity issue and at least one of the groups is associated with resolution of the storage system capacity issue,
In [Col 32, lines 31-41]:
Data is the heart of modern AI and deep learning algorithms. Before training can begin, one problem that must be addressed revolves around collecting the labeled data that is crucial for training an accurate AI model. A full scale AI deployment may be required to continuously collect, clean, transform, label, and store large amounts of data. Adding additional high quality data points directly translates to more to more accurate models and better insights. Data samples may undergo a series of processing steps including, but not limited to: 1) ingesting the data from an external source into the training system and storing the data in raw form,
In [Col 32, lines 44-50]:
exploring parameters and models, quickly testing with a smaller dataset, and iterating to converge on the most promising models to push into the production cluster, 4) executing training phases to select random batches of input data, including both new and older samples, and feeding those into production GPU servers for computation to update model parameters,
in [Col 1, lines 49-50]:
FIG. 2G depicts authorities and storage resources in blades of a storage cluster, in accordance with some embodiments.
In [Col 11, lines 65-67], in [Col 12, lines 1-4]:
The embodiments depicted with reference to FIGS. 2A-G illustrate a storage cluster that stores user data, such as user data originating from one or more user or client systems or other sources external to the storage cluster. The storage cluster distributes user data across storage nodes housed within a chassis, or across multiple chassis, using erasure coding and redundant copies of metadata.
In [Col 48, lines 35-43]:
when the predicted performance load on the storage system (408) reaches a predetermined threshold, when the predicted performance load on the storage system (408) is expected to exceed performance capacity of the storage system (408) within a predetermined period of time, when additional storage systems are added to or removed from a cluster, when other storage systems within a cluster are modified (e.g., a hardware or software updated occurs), when the storage system (408) itself is modified, and so on.
- converting each of at least a plurality of records within the two or more groups of the configuration data to a respective signature, using the at least one hash function;
[Col 27, lines 39-47]:
telemetry data may describe various operating characteristics of the storage system 306 and may be analyzed, for example, to determine the health of the storage system 306, to identify workloads that are executing on the storage system 306, to predict when the storage system 306 will run out of various resources, to recommend configuration changes, hardware or software upgrades, workflow migrations, or other actions that may improve the operation of the storage system 306.
[Col 34, lines 61-67]:
the storage systems described above may be configured to support the storage of (among of types of data) blockchains. Such blockchains may be embodied as a continuously growing list of records, called blocks, which are linked and secured using cryptography. Each block in a blockchain may contain a hash pointer as a link to a previous block, a timestamp, transaction data, and
[Col 35, lines 1-4]:
so on. Blockchains may be designed to be resistant to modification of the data and can serve as an open, distributed ledger that can record transactions between two parties efficiently and in a verifiable and permanent way.
(BRI: a blockchain can represent a cryptographic signature of configuration data because its hash-linked structure provides an unchangeable, verifiable record of the data)
- wherein the respective signature is less than a predefined size corresponding to a memory in which the respective signature is to be stored;
[Col 35, lines 1-12]:
Blockchains may be designed to be resistant to modification of the data and can serve as an open, distributed ledger that can record transactions between two parties efficiently and in a verifiable and permanent way. This makes blockchains potentially suitable for the recording of events, medical records, and other records management activities, such as identity management, transaction processing, and others. In addition to supporting the storage and use of blockchain technologies, the storage systems described above may also support the storage and use of derivative items such as, for example, open source blockchains and related tools
[Col 35, lines 14-16]:
blockchain products that enable developers to build their own distributed ledger projects, and others
[Col 35, lines 24-25]:
blockchain ledger for any healthcare provider, or permissioned health care providers, to access and update.
(BRI: this is storing a signature)
[Col 15, lines 62-67]:
If there is a change in where a particular segment of data is located, e.g., during a data move or a data reconstruction, the authority 168 for that data segment should be consulted, at that non-volatile solid state storage 152 or storage node 150 having that authority 168. In order to locate a particular piece of data, embodiments calculate a hash value for a data
[Col 16, lines 1-2]
segment or apply an inode number or a data segment number.
[Col 22, lines 4-12]:
In the compute and storage planes 256, 258 of FIG. 2E, the authorities 168 interact with the underlying physical resources (i.e., devices). From the point of view of an authority 168, its resources are striped over all of the physical devices. From the point of view of a device, it provides resources to all authorities 168, irrespective of where the authorities happen to run. Each authority 168 has allocated or has been allocated one or more partitions 260 of storage memory in the storage units 152
[Col 22, lines 15-19]:
Authorities can be associated with differing amounts of physical storage of the system. For example, one authority 168 could have a larger number of partitions 260 or larger sized partitions 260 in one or more storage units 152 than one or more other authorities 168.
(BRI: hash value represents a “hash function” and when the data segment changes, its hash differ from the stored hash and as it is signed , the signature also differs and the size of the signature can be controlled)
- correlating (a) the content-based similarity between
In [Col 43, lines 1-10]:
predicting (418) performance load on the storage system (408), a load model (412) may be used that was developed for storage systems that most closely resemble the storage system (408) whose performance load is being predicted. Consider an example in which load models are constructed for systems using some combination of three system attributes: model number, system software version number, and storage capacity. In such an example, assume that the table below maps various load models with various system configurations:
ii) the at least one of the at least a plurality of records from the at least one of the groups associated with the storage system capacity issue
in [Col 38, lines 43-48]:
AI platforms may be configured to scan all incoming storage system telemetry data against a library of issue fingerprints to predict and resolve incidents in real-time, before they impact customer environments, and captures hundreds of variables related to performance that are used to forecast performance load.
(ii) the at least one of the at least a plurality of records from the at least one of the groups associated with resolution of the storage system capacity issue,
in [Col 38, lines 43-48]:
AI platforms may be configured to scan all incoming storage system telemetry data against a library of issue fingerprints to predict and resolve incidents in real-time, before they impact customer environments, and captures hundreds of variables related to performance that are used to forecast performance load.
- with (b) the respective signatures corresponding to
(i) the at least one of the at least a plurality of records from the at least one of the groups associated with the storge system capacity issue and
In [Col 34, lines 61-67]:
the storage systems described above may be configured to support the storage of (among of types of data) blockchains. Such blockchains may be embodied as a continuously growing list of records, called blocks, which are linked and secured using cryptography. Each block in a blockchain may contain a hash pointer as a link to a previous block, a timestamp, transaction data, and so on.
(BRI: Each block includes a cryptographic hash of the previous block, a timestamp, and transaction data, which are secured using a digital signature for each transaction.)
In [Col 15, lines 61-67], in [Col 16, lines 1-8]:
If there is a change in where a particular segment of data is located, e.g., during a data move or a data reconstruction, the authority 168 for that data segment should be consulted, at that non-volatile solid state storage 152 or storage node 150 having that authority 168. In order to locate a particular piece of data, embodiments calculate a hash value for a data segment or apply an inode number or a data segment number. The output of this operation points to a non-volatile solid state storage 152 having the authority 168 for that particular piece of data. In some embodiments there are two stages to this operation. The first stage maps an entity identifier (ID), e.g., a segment number, inode number, or directory number to an authority identifier. This mapping may include a calculation such as a hash or a bit mask.
In [Col 38, lines 43-48]:
AI platforms may be configured to scan all incoming storage system telemetry data against a library of issue fingerprints to predict and resolve incidents in real-time, before they impact customer environments, and captures hundreds of variables related to performance that are used to forecast performance load.
(ii) the at least one of the at least a plurality of records from the at least one of the groups associated with resolution of the storage system capacity issue;
- to predict, by processing input configuration data for the at least one storage system using the one or more artificial intelligence-based hash models, one or more storage system capacity issues for the at least one storage system;
In [Col 30, lines 63-67], in [Col 31, lines 1-4]:
the storage system 306 depicted in FIG. 3B may be useful for supporting various types of software applications. For example, the storage system 306 may be useful in supporting artificial intelligence (‘AI’) applications, database applications, DevOps projects, electronic design automation tools, event-driven software applications, high performance computing applications, simulation applications, high-speed data capture and analysis applications, machine learning applications,
in [Col 15, lines 62-67] and [Col 16, lines 1-11]:
If there is a change in where a particular segment of data is located, e.g., during a data move or a data reconstruction, the authority 168 for that data segment should be consulted, at that non-volatile solid state storage 152 or storage node 150 having that authority 168. In order to locate a particular piece of data, embodiments calculate a hash value for a data segment or apply an inode number or a data segment number. The output of this operation points to a non-volatile solid state storage 152 having the authority 168 for that particular piece of data. In some embodiments there are two stages to this operation. The first stage maps an entity identifier (ID), e.g., a segment number, inode number, or directory number to an authority identifier. This mapping may include a calculation such as a hash or a bit mask. The second stage is mapping the authority identifier to a particular non-volatile solid state storage 152, which may be done through an explicit mapping.
In [Col 27, lines 41-47]:
to determine the health of the storage system 306, to identify workloads that are executing on the storage system 306, to predict when the storage system 306 will run out of various resources, to recommend configuration changes, hardware or software upgrades, workflow migrations, or other actions that may improve the operation of the storage system 306.
- to perform at least one automated action in response to the one or more predicted storage system capacity issues, wherein performing at least one automated action comprises:
In [Col 27, lines 23-30]:
through the usage of a SaaS service model where the cloud services provider 302 offers application software, databases, as well as the platforms that are used to run the applications to the storage system 306 and users of the storage system 306, providing the storage system 306 and users of the storage system 306 with on-demand software and eliminating the need to install and run the application on local computers,
In [Col 27, lines 39-47]:
telemetry data may describe various operating characteristics of the storage system 306 and may be analyzed, for example, to determine the health of the storage system 306, to identify workloads that are executing on the storage system 306, to predict when the storage system 306 will run out of various resources, to recommend configuration changes, hardware or software upgrades, workflow migrations, or other actions that may improve the operation of the storage system 306.
- automatically resolving at least one of the one or more predicted storage system capacity issues for the at least one storage system, wherein automatically resolving the at least one of the one or more predicted storage system capacity issues comprises modifying storage capacity of the at least one storage system by one or more of: (i) reclaiming used storage for at least one of one or more logical storage volumes of the at least one storage system and one or more file systems of the at least one storage system, and (ii) adding one or more storage devices to the at least one storage system;
In [Col 31, lines 24-28]:
Machine learning applications may perform various types of data analysis to automate analytical model building. Using algorithms that iteratively learn from data, machine learning applications can enable computers to learn without being explicitly programmed.
In [Col 27, lines 41-47]:
to determine the health of the storage system 306, to identify workloads that are executing on the storage system 306, to predict when the storage system 306 will run out of various resources, to recommend configuration changes, hardware or software upgrades, workflow migrations, or other actions that may improve the operation of the storage system 306.
In [Col 48, lines 26-50]:
The example method depicted in FIG. 8 also includes generating (804), in dependence upon predicted performance load on the storage system (408), a recommendation. The recommendation that is generated (804) may include, for example, a recommendation to perform a hardware or software upgrade on the storage system (804), a recommendation to move a workload from the storage system (408) to another storage system, and so on. In such an example, rules may be in place such that recommendations are generated (804), for example, when the predicted performance load on the storage system (408) reaches a predetermined threshold, when the predicted performance load on the storage system (408) is expected to exceed performance capacity of the storage system (408) within a predetermined period of time, when additional storage systems are added to or removed from a cluster, when other storage systems within a cluster are modified (e.g., a hardware or software updated occurs), when the storage system (408) itself is modified, and so on. In such an example, the recommendation may be presented (e.g., via a GUI, via a message) to a system administrator or other user that can take action in response to the recommendation. Likewise, the recommendation may be sent to an upgrade module or other automated module that may carry out the recommended course of action (e.g., installing a software patch, migrating a workload).
- automatically re-training at least a portion of the one or more artificial intelligence-based hash models based at least in part on resulting data pertaining to the automatic resolution of the at least one predicted storage system capacity issue.
In [Col 33, lines 51-52]:
continued improvement of models with larger data set sizes.
(BRI: improving a model with a larger dataset typically involves a form of retraining or fine-tuning)
In [Col 44, lines 33-37]:
the load model that is used to predict (504) updated performance load on the storage system (408) may be different than the load model that was used to predict (418) performance load on the storage system (408) prior to receiving (502) information describing one or more modifications to the storage system (408).
In [Col 32, lines 34-41]:
A full scale AI deployment may be required to continuously collect, clean, transform, label, and store large amounts of data. Adding additional high quality data points directly translates to more accurate models and better insights. Data samples may undergo a series of processing steps including, but not limited to: 1) ingesting the data from an external source into the training system
In [Col 31, lines 29-47]:
the storage systems described above may also include graphics processing units (‘GPUs’), occasionally referred to as visual processing unit (‘VPUs’). Such GPUs may be embodied as specialized electronic circuits that rapidly manipulate and alter memory to accelerate the creation of images in a frame buffer intended for output to a display device. Such GPUs may be included within any of the computing devices that are part of the storage systems described above, including as one of many individually scalable components of a storage system, where other examples of individually scalable components of such storage system can include storage components, memory components, compute components (e.g., CPUs, FPGAs, ASICs), networking components, software components, and others. In addition to GPUs, the storage systems described above may also include neural network processors (‘NNPs’) for use in various aspects of neural network processing. Such NNPs may be used in place of (or in addition to) GPUs and may be also be independently scalable.
Kenney does not explicitly disclose:
- wherein training the one or more artificial intelligence-based hash models comprises
- automatically learning one or more connections between the at least one of the groups associated with the storage system capacity issue and the at least one of the groups associated with resolution of the storage system capacity issue using at least one hash function in conjunction with at least one similarity metric, and wherein using the at least one hash function in conjunction with the at least one similarity metric comprises
However, Guo discloses:
- wherein training the one or more artificial intelligence-based hash models comprises
[0005]:
The computer system includes a machine-learned hashing model configured to receive an input and, in response, output a binary hash for the input. The binary hash includes a binary value for each of a plurality of binary variables. The computer system includes a machine-learned generative model configured to receive the binary hash and, in response, output a reconstruction of the input.
- automatically learning one or more connections between the at least one of the groups associated with the storage system capacity issue and the at least one of the groups associated with resolution of the storage system capacity issue using at least one hash function in conjunction with at least one similarity metric, and wherein using the at least one hash function in conjunction with the at least one similarity metric comprises
[0003]:
To alleviate the time and storage bottlenecks, two research directions have been studied extensively: (1) partition the dataset so that only a subset of data points is searched; (2) represent the data as codes so that similarity computation can be carried out more efficiently. The former often resorts to search-tree or bucket-based lookup; while the latter relies on binary hashing or quantization. These two groups of techniques are orthogonal and are typically employed together in practice.
[0026] :
In view of the above, aspects of the present disclosure are directed to speeding up search via binary hashing. One aspect of binary hashing is to utilize a hash function, f(.) X
→
{
0
,
1
}
l
, which maps the original samples in X ∈
R
d
to l-bit binary vectors h ∈
{
0
,
1
}
l
while preserving the similarity measure. Example similarity measures include Euclidean distance or inner product. Search with such binary representations can be efficiently conducted using, for example, Hamming distance computation, which is supported via POPCNT on modern CPUs and GPUs. Quantization based techniques have been shown to give stronger empirical results and can also be used. However, quantization based techniques also tend to be less efficient than Hamming search over binary codes.
[0036]:
The machine-learned generative model 121 can be or include various types of models, including, as examples, probabilistic models, linear models, and/or non-linear models, or combinations thereof. As one example, the machine-learned generative model 121 can be or include a machine-learned Gaussian model. As another example, the machine-learned generative model 121 can be or include a machine-learned restricted Markov Random Fields model.
[0035]:
According to an aspect of the present disclosure, the machine-learned hashing model 120 can be jointly trained with a machine-learned generative model 121. The machine-learned generative model 121 can receive the binary hash 12 and, in response, output a reconstruction of the input 10, shown as reconstructed input 14 in FIG. 1A. Thus, the machine-learned generative model 121 can be a generative model that seeks to reconstruct the input 10 based on the binary hash 12. As such, in some implementations, the machine-learned generative model 121 can be referred to as a decoder mode
(BRI: a hash model and a generative model jointly learned may enable automatic learning and representation optimization without manual feature engineering as the system learns both the representation (hash codes) and the generative mapping directly from raw data.
[0216]:
The computing system 102 can include a model trainer 122 that trains the machine-learned models 120 and 121 using various training or learning techniques, such as, for example, backwards propagation of errors. The model trainer 122 can perform a number of generalization techniques (e.g., weight decays, dropouts, etc.) to improve the generalization capability of the models being trained. In some implementations, the model trainer 122 can perform or be leveraged to perform one or more (e.g., all) operations of method 1100 of FIG. 11.
[0041]:
In some implementations, the objective function 16 can describe a difference between the input 10 and the reconstructed input 14. For example, the objective function 16 can evaluate a difference or loss between the input 10 and the reconstructed input 14.
[0043]: training the model(s) based on the objective function 16 can include performing distributional stochastic gradient descent to optimize the objective function 16. In some implementations, training the model(s) based on the objective function 16 can include optimizing one or more distributions of the plurality of binary variables
It would have obvious to one of ordinary skill in the art before the effective filing date of the present application to combine Kenney, Kil and Guo.
Kenney teaches automatic learning and providing a storage system capacity issue and automatic resolution of at least storage system capacity issue.
Kil teaches determining content-based similarity associated to the storage system capacity issue and resolution.
Guo teaches hash based model and automatic learning in conjunction with similarity metric and hash function.
One of ordinary skill would have motivation to combine Kenney , Kil and Guo that can improved the generalization capability of the models being trained (Guo [0216]).
Kenney and Guo do not explicitly disclose:
- determining content-based similarity, using the at least one similarity metric, between (i) at least one of the at least a plurality of records from the at least one of the groups associated with the storage system capacity issue
- and (ii) at least one of the at least a plurality of records from the at least one of the groups associated with resolution of the storage system capacity issue;
However, Kil discloses:
- determining content-based similarity, using the at least one similarity metric, between (i) at least one of the at least a plurality of records from the at least one of the groups associated with the storage system capacity issue
[0022]:
One embodiment is a data mining algorithm selection method for selecting a data mining algorithm for data mining analysis of a problem set. The data mining algorithm selection method includes the act of providing data to be analyzed by data mining, the act of providing a training database, the act of extracting features that classify the data
[0022]:
Extracting features in this data mining algorithm selection method may also include the act of identifying a point of diminishing returns in the number of features and the act of estimating the robustness of features.
[0022]:
Estimating feature robustness can include calculating the entropy of each subset as a statistical measure of similarity. This data mining algorithm selection method can also include identifying parameters using the identified parameters in selecting a data mining algorithm. The parameter can include user preferences, real-time deployment issues, available memory, the size of training data, and/or available throughput. Selecting a data mining algorithm can use a simple classifier.
(BRI: the available memory is the portion of the total memory free for the application to use)
[0083]:
In the embodiment pictured in FIG. 5, a detect data mismatch code module (520) estimates feature robustness with the similarity metric as a function of temporal segments and randomly partitioned segments.
PNG
media_image1.png
832
573
media_image1.png
Greyscale
[0083]:
The parameters identified by the parameterize code module (540) are appended to the vector of metafeatures generated by the characterize distribution code module (530) for use by a classify code module (550) in identifying the most appropriate data mining algorithms.
- and (ii) at least one of the at least a plurality of records from the at least one of the groups associated with resolution of the storage system capacity issue;
[0022]:
Estimating feature robustness can include calculating the entropy of each subset as a statistical measure of similarity. This data mining algorithm selection method can also include identifying parameters using the identified parameters in selecting a data mining algorithm. The parameter can include user preferences, real-time deployment issues, available memory, the size of training data, and/or available throughput. Selecting a data mining algorithm can use a simple classifier.
[0022]:
data mining algorithm selection method can also include selecting more than one data mining algorithm and fusing the selected data mining algorithms into a composite data mining algorithm.
[0043:
Referring now to FIG. 1, there is shown a program flowchart illustrating the sequence operations in a first embodiment of a program (100) for improved data mining algorithm ("DM-algorithm") selection based on the good feature distribution, or probability density function.
[0043]:
This embodiment includes a calculate-optimal-problem-dimension process (110).
[0044]:
In this embodiment the calculate-optimal-problem-dimension process (110) may also in one mode assess feature robustness. The calculate-optimal-problem-dimension process (110) in this embodiment identifies the point at which adding more features does not enhance DM-algorithm performance. It may reduce the problem dimension using techniques such as subspace filtering, single dimensional feature ranking, multidimensional (MD) combinatorial optimization,
[0044]:
This step is analogous to understanding how many input features are required to form a sufficient statistic for a given problem.
[0045]:
The metafeatures describe what the good features in the feature subset look like in the multidimensional feature space using a variety of statistical, vector quantization, transform.
[0066]:
The transform-to-DM-algorithm-space process (350) may utilize a classification database (365). This transform-to-DM-algorithm-space process (350) maps input metafeatures to a dependent variable, which records classification performance of each classifier under a range of operational parameters. The transform-to-DM-algorithm-space process (350) may incorporate an optimization algorithm that uses the classification database (365) to find the mapping function.
[0064]:
The get-case-constraints process (340) may query the user for preferences and assess resources at runtime, or that information may be encoded along with the input data sets.
[0022]:
This embodiment may also select more than one data mining algorithm and fuse the selected data mining algorithms into a composite data mining algorithm.
( BRI: the size of training data can indeed impact memory usage during deployment and techniques such as quantization can help reduce the model size and memory footprint making more efficient to run on devices with limited resources. Perhaps as known to the POSITA, fusing also help to reduce the memory requirements that depends on the algorithms used)
It would have obvious to one of ordinary skill in the art before the effective filing date of the present application to combine Kenney, Guo and Kil .
Kenney teaches automatic learning and providing a storage system capacity issue and automatic resolution of at least storage system capacity issue.
Guo teaches hash based model and automatic learning in conjunction with similarity metric and hash function.
Kil teaches determining content-based similarity associated to the storage system capacity issue and resolution.
It would have obvious to one of ordinary skill in the art before the effective filing date of the present application to combine Kenney, Guo and Kil.
Kenney teaches providing a storage system capacity issue and automatic resolution of at least one storage system capacity issue.
Kil teaches determining content-based similarity associated to the storage system capacity issue and resolution.
One of ordinary skill would have motivation to combine Kenney , and Kil that provide overall improvement of the performance (Kil [0101])
In regard to claim 18: (Original)
Kenney discloses:
- creating the updated dataset comprises processing configuration changes in the configuration data remaining in the updated dataset.
In [Col 32, lines 42-45]:
leaning and transforming the data in a format convenient for training, including linking data samples to the appropriate label, 3) exploring parameters and models, quickly testing with a smaller dataset
In regard to claim 22 (Currently Amended)
Kenney discloses:
- wherein the at least one storage system capacity issue comprises at least one storage system capacity issue attributed to one or more storage objects within the at least one storage system
In [Col 38, lines 43-46]:
AI platforms may be configured to scan all incoming storage system telemetry data against a library of issue fingerprints to predict and resolve incidents in real-time,
In [Col 48, line 34-39]:
rules may be in place such that recommendations are generated (804), when the predicted performance load on the storage system (408) reaches a predetermined threshold, when the predicted performance load on the storage system (408) is expected to exceed performance capacity of the storage system (408) within a predetermined period of time,
In regard to claim 24 (Currently Amended)
Kenney discloses:
- wherein the at least one storage system capacity issue comprises at least one storage capacity issue attributed to one or more storage objects within the at least one storage system
In [Col 38, lines 43-46]:
AI platforms may be configured to scan all incoming storage system telemetry data against a library of issue fingerprints to predict and resolve incidents in real-time,
In [Col 48, line 34-39]:
rules may be in place such that recommendations are generated (804), when the predicted performance load on the storage system (408) reaches a predetermined threshold, when the predicted performance load on the storage system (408) is expected to exceed performance capacity of the storage system (408) within a predetermined period of time,
Claims 9, 23 and 25 are rejected under 35 U.S.C. 103 unpatentable over
Chadd Kenney et.al. (hereinafter Kenney) US 10853148 B1,
In view of Ruiqi Guo (hereinafter Guo) US 2019/0114343 A1.
In view of David Kil (hereinafter Kil) US 2002/0138492 A1,
further in view of Kevin Bartz (hereinafter Bartz) US 2011/0066908 A1,
In regard to claim 9: (Original)
Kenney, Guo and Kil do not explicitly disclose:
- preprocessing the obtained dataset using one or more normalization techniques and one or more feature engineering techniques.
However, Bartz discloses:
- preprocessing the obtained dataset using one or more normalization techniques and one or more feature engineering techniques.
In [0071]:
hashes may be used in some embodiments as part of a malware diagnosis process. In such embodiments, if an error report contains a hash of a known instance of polymorphic and metamorphic malware, other components of the error report (e.g., callstacks, categorical features, etc.) may be used to identify a similarity to one or more other error reports in any suitable manner
In [0059]:
In block 304, the comparison of the two error reports begins with a comparison of the two callstacks of the error reports. The callstacks of the two error reports are compared in the example of FIG. 3 by calculating an edit distance between them
In [0060]:
Once an edit distance is calculated in block 304, in block 306 the numeric result of the edit distance (e.g., a count of the number of changes, that may be normalized to a value between 0 and 1 or not) is weighted according to .beta..sub.CS to determine a weighted value for the edit distance. An intermediate value is set equal to this weighted edit distance. Other terms are then computed and added to this intermediate value to compute the total similarity score.
It would have obvious to one of ordinary skill in the art before the effective filing date of the present application to combine Kenney, Guo , Kil and Bartz.
Kenney teaches providing a system issue and automatic resolution of at least storage capacity issue.
Guo teaches hash based model and automatic learning in conjunction with similarity metric and hash function.
Kil teaches determining content-based similarity associated to the storage system issue and resolution.
Bartz teaches preprocessing the dataset.
One of ordinary skill would have motivation to combine Kenney , Guo, Kil and Bartz that may represent software product failure that may lead to a storage failure and configuration errors may be one reason (Bartz [0004], [0036]).
In regard to claim 23: (Previously Presented)
Kenney, Guo and Kil do not explicitly disclose
- preprocess the obtained dataset using one or more normalization techniques and one or more feature engineering techniques.
However, Bartz discloses:
- preprocess the obtained dataset using one or more normalization techniques and one or more feature engineering techniques.
In [0071]:
hashes may be used in some embodiments as part of a malware diagnosis process. In such embodiments, if an error report contains a hash of a known instance of polymorphic and metamorphic malware, other components of the error report (e.g., callstacks, categorical features, etc.) may be used to identify a similarity to one or more other error reports in any suitable manner
In [0059]:
In block 304, the comparison of the two error reports begins with a comparison of the two callstacks of the error reports. The callstacks of the two error reports are compared in the example of FIG. 3 by calculating an edit distance between them
In [0060]:
Once an edit distance is calculated in block 304, in block 306 the numeric result of the edit distance (e.g., a count of the number of changes, that may be normalized to a value between 0 and 1 or not) is weighted according to .beta..sub.CS to determine a weighted value for the edit distance. An intermediate value is set equal to this weighted edit distance. Other terms are then computed and added to this intermediate value to compute the total similarity score.
It would have obvious to one of ordinary skill in the art before the effective filing date of the present application to combine Kenney, Guo , Kil and Bartz.
Kenney teaches providing a system issue and automatic resolution of at least storage capacity issue.
Guo teaches hash based model and automatic learning in conjunction with similarity metric and hash function.
Kil teaches determining content-based similarity associated to the storage system issue and resolution.
Bartz teaches preprocessing the dataset.
One of ordinary skill would have motivation to combine Kenney , Guo, Kil and Bartz that may represent software product failure that may lead to a storage failure and configuration errors may be one reason (Bartz [0004], [0036]).
In regard to claim 25: (Previously Presented)
Kenney, Guo and Kil do not explicitly disclose
- to preprocess the obtained dataset using one or more normalization techniques and one or more feature engineering techniques.
However, Bartz discloses:
- to preprocess the obtained dataset using one or more normalization techniques and one or more feature engineering techniques.
In [0071]:
hashes may be used in some embodiments as part of a malware diagnosis process. In such embodiments, if an error report contains a hash of a known instance of polymorphic and metamorphic malware, other components of the error report (e.g., callstacks, categorical features, etc.) may be used to identify a similarity to one or more other error reports in any suitable manner
In [0059]:
In block 304, the comparison of the two error reports begins with a comparison of the two callstacks of the error reports. The callstacks of the two error reports are compared in the example of FIG. 3 by calculating an edit distance between them
In [0060]:
Once an edit distance is calculated in block 304, in block 306 the numeric result of the edit distance (e.g., a count of the number of changes, that may be normalized to a value between 0 and 1 or not) is weighted according to .beta..sub.CS to determine a weighted value for the edit distance. An intermediate value is set equal to this weighted edit distance. Other terms are then computed and added to this intermediate value to compute the total similarity score.
It would have obvious to one of ordinary skill in the art before the effective filing date of the present application to combine Kenney, Guo , Kil and Bartz.
Kenney teaches providing a system issue and automatic resolution of at least storage capacity issue.
Guo teaches hash based model and automatic learning in conjunction with similarity metric and hash function.
Kil teaches determining content-based similarity associated to the storage system issue and resolution.
Bartz teaches preprocessing the dataset.
One of ordinary skill would have motivation to combine Kenney , Guo, Kil and Bartz that may represent software product failure that may lead to a storage failure and configuration errors may be one reason (Bartz [0004], [0036]).
Claims 2, 4, 12, 14, 17 and 19 are rejected under 35 U.S.C. 103 unpatentable over
Chadd Kenney et.al. (hereinafter Kenney) US 10853148 B1,
In view of Ruiqi Guo (hereinafter Guo) US 2019/0114343 A1.
In view of David Kil (hereinafter Kil) US 2002/0138492 A1,
further in view of Simeonov et.al. (hereinafter Simeonov) US 11210823 B1.
In regard to claim 2: (Original)
Kenney, Guo and Kil do not explicitly disclose
- the one or more machine learning-based feature selection techniques comprise one or more chi-squared tests.
However, Simeonov discloses:
- the one or more machine learning-based feature selection techniques comprise one or more chi-squared tests.
[Col 14, lines 61-67], Col 15, lines 1-8]:
addressing a computationally constrained system, a standard feature selection algorithm such as but not limited to info-theoretic feature selection or chi-square feature selection may be employed for reducing the dimensionality of the space of components being considered. All eliminated components are assigned a value of 0 and the remaining components are evaluated via a framework such as the cumulative differential algorithm described above. This encourages parsimony and concentrates value among the top performers. Note that the feature selector performs its own version of attribution by estimating a rough expected marginal utility according to a rigid and predefined utility function defined in a specified probability measure (see variable importance embodiment below).
It would have obvious to one of ordinary skill in the art before the effective filing date of the present application to combine Kenney, Guo , Kil and Simeonov.
Kenney teaches providing a system issue and automatic resolution of at least storage capacity issue.
Guo teaches hash based model and automatic learning in conjunction with similarity metric and hash function.
Kil teaches determining content-based similarity associated to the storage system issue and resolution.
Simeonov teaches chi-square test.
One of ordinary skill would have motivation to combine Kenney, Guo, Kil, and Simeonov to provide usage metric and utility matric for each component in the systems (Simeonov [Col 3, lines 13-29])
In regard to claim 4: (Previously Presented)
Kenney, Guo and Kil do not explicitly disclose
- grouping the at least a portion of the configuration data comprising using at least one Minihash technique in conjunction with a Jaccard similarity metric.
However, Simeonov discloses:
- grouping the at least a portion of the configuration data comprising using at least one Minihash technique in conjunction with a Jaccard similarity metric.
[Col 30, lines 1-10] :
estimated metrics about the number of unique identities in each segment, the overlap between segments, the number of net new unique identities added as compared to any existing segments already in use and/or given an ordering of segments, the extent to which different segments agree or disagree across identities, etc. These may include a variety of set distance measures, e.g., Jaccard distance,
[Col 30, lines 13-17]:
Embodiments may implement intersection using HLL sketches and the inclusion/exclusion principle and/or using MinHash sketches (as they allow the computation of a Jaccard coefficient).
It would have obvious to one of ordinary skill in the art before the effective filing date of the present application to combine Kenney, Guo , Kil and Simeonov.
Kenney teaches providing a system issue and automatic resolution of at least storage capacity issue.
Guo teaches hash based model and automatic learning in conjunction with similarity metric and hash function.
Kil teaches determining content-based similarity associated to the storage system issue and resolution.
Simeonov teaches chi-square test.
One of ordinary skill would have motivation to combine Kenney, Guo, Kil, and Simeonov to provide usage metric and utility matric for each component in the systems (Simeonov [Col 3, lines 13-29])
In regard to claim 12: (Original)
Kenney, Guo and Kil do not explicitly disclose:
- the one or more machine learning-based feature selection techniques comprise one or more chi-squared tests.
However, Simeonov discloses:
- the one or more machine learning-based feature selection techniques comprise one or more chi-squared tests.
[Col 14, lines 61-67], Col 15, lines 1-8]:
addressing a computationally constrained system, a standard feature selection algorithm such as but not limited to info-theoretic feature selection or chi-square feature selection may be employed for reducing the dimensionality of the space of components being considered. All eliminated components are assigned a value of 0 and the remaining components are evaluated via a framework such as the cumulative differential algorithm described above. This encourages parsimony and concentrates value among the top performers. Note that the feature selector performs its own version of attribution by estimating a rough expected marginal utility according to a rigid and predefined utility function defined in a specified probability measure (see variable importance embodiment below).
It would have obvious to one of ordinary skill in the art before the effective filing date of the present application to combine Kenney, Guo , Kil and Simeonov.
Kenney teaches providing a system issue and automatic resolution of at least storage capacity issue.
Guo teaches hash based model and automatic learning in conjunction with similarity metric and hash function.
Kil teaches determining content-based similarity associated to the storage system issue and resolution.
Simeonov teaches chi-square test.
One of ordinary skill would have motivation to combine Kenney, Guo, Kil, and Simeonov to provide usage metric and utility matric for each component in the systems (Simeonov [Col 3, lines 13-29])
In regard to claim 14: (Previously Presented)
Kenney, Guo and Kil do not explicitly disclose:
- grouping the at least a portion of the configuration data comprises using at least one Minihash technique in conjunction with a Jaccard similarity metric.
However, Simeonov discloses:
- grouping the at least a portion of the configuration data comprising using at least one Minihash technique in conjunction with a Jaccard similarity metric.
[Col 30, lines 1-10]:
estimated metrics about the number of unique identities in each segment, the overlap between segments, the number of net new unique identities added as compared to any existing segments already in use and/or given an ordering of segments, the extent to which different segments agree or disagree across identities, etc. These may include a variety of set distance measures, e.g., Jaccard distance
in [Col 30, lines 13-17]:
Embodiments may implement intersection using HLL sketches and the inclusion/exclusion principle and/or using MinHash sketches (as they allow the computation of a Jaccard coefficient)”).
It would have obvious to one of ordinary skill in the art before the effective filing date of the present application to combine Kenney, Guo , Kil and Simeonov.
Kenney teaches providing a system issue and automatic resolution of at least storage capacity issue.
Guo teaches hash based model and automatic learning in conjunction with similarity metric and hash function.
Kil teaches determining content-based similarity associated to the storage system issue and resolution.
Simeonov teaches chi-square test.
One of ordinary skill would have motivation to combine Kenney, Guo, Kil, and Simeonov to provide usage metric and utility matric for each component in the systems (Simeonov [Col 3, lines 13-29])
In regard to claim 17: (Original)
Kenney, Guo and Kil do not explicitly disclose:
- the one or more machine learning-based feature selection techniques comprise one or more chi-squared tests.
However, Simeonov discloses:
- the one or more machine learning-based feature selection techniques comprise one or more chi-squared tests.
[Col 14, lines 61-67], Col 15, lines 1-8]:
addressing a computationally constrained system, a standard feature selection algorithm such as but not limited to info-theoretic feature selection or chi-square feature selection may be employed for reducing the dimensionality of the space of components being considered. All eliminated components are assigned a value of 0 and the remaining components are evaluated via a framework such as the cumulative differential algorithm described above. This encourages parsimony and concentrates value among the top performers. Note that the feature selector performs its own version of attribution by estimating a rough expected marginal utility according to a rigid and predefined utility function defined in a specified probability measure (see variable importance embodiment below).
It would have obvious to one of ordinary skill in the art before the effective filing date of the present application to combine Kenney, Guo , Kil and Simeonov.
Kenney teaches providing a system issue and automatic resolution of at least storage capacity issue.
Guo teaches hash based model and automatic learning in conjunction with similarity metric and hash function.
Kil teaches determining content-based similarity associated to the storage system issue and resolution.
Simeonov teaches chi-square test.
One of ordinary skill would have motivation to combine Kenney, Guo, Kil, and Simeonov to provide usage metric and utility matric for each component in the systems (Simeonov [Col 3, lines 13-29])
In regard to claim 19: (Previously Presented)
Kenney, Guo and Kil do not explicitly disclose:
- grouping the at least a portion of the configuration data comprises using at least one Minihash technique in conjunction with a Jaccard similarity metric.
However, Simeonov discloses:
- grouping the at least a portion of the configuration data comprising using at least one Minihash technique in conjunction with a Jaccard similarity metric.
[Col 30, lines 1-10]:
estimated metrics about the number of unique identities in each segment, the overlap between segments, the number of net new unique identities added as compared to any existing segments already in use and/or given an ordering of segments, the extent to which different segments agree or disagree across identities, etc. These may include a variety of set distance measures, e.g., Jaccard distance
[Col 30, lines 13-17]:
Embodiments may implement intersection using HLL sketches and the inclusion/exclusion principle and/or using MinHash sketches (as they allow the computation of a Jaccard coefficient)”).
It would have obvious to one of ordinary skill in the art before the effective filing date of the present application to combine Kenney, Guo , Kil and Simeonov.
Kenney teaches providing a system issue and automatic resolution of at least storage capacity issue.
Guo teaches hash based model and automatic learning in conjunction with similarity metric and hash function.
Kil teaches determining content-based similarity associated to the storage system issue and resolution.
Simeonov teaches chi-square test.
One of ordinary skill would have motivation to combine Kenney, Guo, Kil, and Simeonov to provide usage metric and utility matric for each component in the systems (Simeonov [Col 3, lines 13-29])
Conclusion
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the
examiner should be directed to TIRUMALE KRISHNASWAMY RAMESH whose telephone number is (571)272-4605. The examiner can normally be reached by phone.
Examiner interviews are available via telephone, in-person, and video conferencing
using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at
http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Li B Zhen can be reached on phone (571-272-3768). The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be
obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit:
https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for
information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/TIRUMALE K RAMESH/Examiner, Art Unit 2121
/Li B. Zhen/Supervisory Patent Examiner, Art Unit 2121