Sign In to Follow Application
View All Documents & Correspondence

System And Method For Predicting Resource Utilization Matrix From Log Data

Abstract: Disclosed is a method and system for predicting resource utilization for execution of one or more tasks corresponding to an IT application. The data capturing module captures application log data and resource utilization log data. The data analysis module obtains training dataset from the log data by applying a Genetic Algorithm. The training dataset is a subset of the log data. The data analysis module further derives a workload matrix Wmn and a resource utilization matrix Rmp for the training dataset. The workload matrix Wmn comprises a first set of values corresponding to throughput information of one or more reference tasks and the resource utilization matrix Rmp comprises a second set of values corresponding to the one or more resources utilized. The prediction module predicts the resource utilization for the execution of the one or more tasks.

Get Free WhatsApp Updates!
Notices, Deadlines & Correspondence

Patent Information

Application #
Filing Date
13 September 2013
Publication Number
27/2015
Publication Type
INA
Invention Field
COMPUTER SCIENCE
Status
Email
ip@legasis.in
Parent Application
Patent Number
Legal Status
Grant Date
2023-02-08
Renewal Date

Applicants

Tata Consultancy Services Limited
Nirmal Building, 9th Floor, Nariman Point, Mumbai 400021, Maharashtra, India

Inventors

1. VORA, Mehul Nalin
Tata Consultancy Services Limited, Gateway Park , Akruti Business Port, Road No. 13, MIDC , Andheri, Mumbai 400093, Maharashtra, India

Specification

DESC:FORM 2

THE PATENTS ACT, 1970
(39 of 1970)
&
THE PATENT RULES, 2003

COMPLETE SPECIFICATION
(See Section 10 and Rule 13)

Title of invention:
SYSTEM AND METHOD FOR PREDICTING RESOURCE UTILIZATION MATRIX FROM LOG DATA

APPLICANT:
Tata Consultancy Services Limited
A company Incorporated in India under the Companies Act, 1956
Having address:
Nirmal Building, 9th floor,
Nariman point, Mumbai 400021,
Maharashtra, India

The following specification describes the invention and the manner in which it is to be performed.

PRIORITY INFORMATION
[001] This patent application takes priority from 2954/MUM/2013.

TECHNICAL FIELD
[002] The present disclosure described herein, in general, relates to a system and method for predicting resource utilization in a computing environment, and more specifically, predicting the resource utilization for execution of one or more tasks corresponding to an IT application running in a production environment using the information present in the production logs.

BACKGROUND
[003] Overall performance delivered by an IT application will highly depend on the workload pattern served since each service class will have different resource requirements of the overall system. So not only the change in the number of concurrent users accessing the system but change in the proportion of the service requests will also have a significant impact on the application performance. Therefore it is essential not only to derive the server resource utilizations to perform effective capacity planning for an anticipated workload pattern but also to perform comprehensive what-if analysis from time to time to assess the capability of current infrastructure to provide the support of the anticipated change in workload pattern. Such performance engineering analytics and building models involve determination of the resource utilization in terms of estimation of time spent by each resource of the IT systems (such as CPU, Memory, Disk, Network bandwidth etc.) of application servers, web servers, database servers, and the like. Typically, the performance of the IT systems may be determined in terms of throughput, response time and consumption of various resources of the aforementioned servers (viz. application servers, web servers, database servers) by performing load analysis of large number of users concurrently accessing an IT application running on at least one of the aforementioned servers.
[004] Conventionally, the performance of the IT systems is determined by using approaches including direct data measurement, analytical models, event simulator and an architectural simulator. The direct data measurement approach involves measurement of performance parameters by means of code instrumentation, benchmarking and load testing. The event simulator performs simulation that involves analysis of each component of the IT system resources by representing each component in a queuing model and implementing the business function flow through the IT system. The architectural simulator is useful for determining the resource utilization corresponding to each system resource when the deployment is limited to only a single server. The architectural simulator requires running the IT application for different workloads and executing the IT application multiple times that requires significant simulation time.
[005] In addition to the aforementioned approaches, a queuing network models and regression based analysis techniques have also been implemented to analyze the performance of the complex IT systems. The queuing network models and the regression based analysis require estimating per-function service demand and benchmarking of individual business transactions. The queuing network model further involves parameterization which is often a challenging task. Additionally, various other traditional approaches necessitates determination of service demands corresponding to the IT application and requires individual business transactions for performing the engineering analytics in order to predict the resource utilization for execution of one or more tasks corresponding to the IT application. For example resource utilization pertaining to each resource (such as CPU, memory, bandwidth) may be predicted for individual business transactions.

SUMMARY
[006] Before the present systems and methods, are described, it is to be understood that this application is not limited to the particular systems, and methodologies described, as there can be multiple possible embodiments which are not expressly illustrated in the present disclosures. It is also to be understood that the terminology used in the description is for the purpose of describing the particular versions or embodiments only, and is not intended to limit the scope of the present application. This summary is provided to introduce concepts related to system and methods for predicting resource utilization for execution of one or more tasks corresponding to an IT application and the concepts are further described below in the detailed description. This summary is not intended to identify essential features of the disclosure nor is it intended for use in determining or limiting the scope of the disclosure.
[007] In one implementation, a system for predicting resource utilization for execution of one or more tasks corresponding to an IT application is disclosed. In one aspect, the system may comprise a processor and a memory coupled to the processor for executing a plurality of modules present in the memory. The plurality of modules may comprise a data capturing module, a data analysis module, a prediction module, and an alert generation module. The data capturing module may capture application log data and resource utilization log data. The application log data may be associated to throughput information of one or more reference tasks pertaining to the IT application and the resource utilization log data may be associated to one or more resources utilized while executing the one or more reference tasks. The data analysis module may obtain a workload matrix and a resource utilization matrix corresponding to the workload matrix. The workload matrix and the resource utilization matrix may be obtained from the application log data containing the throughput information and the resource utilization log data corresponding to the application log data respectively. The data analysis module may further derive a training dataset may be obtained from the workload matrix and the resource utilization matrix by applying a Genetic Algorithm. In one aspect, the training dataset is an optimal workload matrix Wmn, indicating a subset of the workload matrix, and a resource utilization matrix Rmp, indicating a subset of the resource utilization matrix corresponding to the data points for Wmn identified by the genetic algorithm. In one aspect, the optimal workload matrix Wmn may comprise a first set of values corresponding to the throughput information of the one or more reference tasks. Further, the optimal resource utilization matrix Rmp may comprise a second set of values corresponding to the one or more resources utilized. The prediction module may predict the resource utilization for the execution of the one or more tasks. In order to predict the resource utilization, the prediction module may initially decompose the optimal workload matrix Wmn into a first matrix Amk and a second matrix Bkn. Upon decomposing, a pseudoinverse matrix Pnm of the workload matrix Wmn may be derived, by the prediction module, using the first matrix Amk and the second matrix Bkn. In one embodiment the pseudoinverse matrix Pnm is a Moore Penrose pseudoinverse matrix. After deriving the pseudoinverse matrix Pnm, a linear coefficient vector may be calculated, by the prediction module, based on the pseudoinverse matrix and a desired workload matrix T1n. The desired workload matrix T1n herein indicates the throughput information of one or more tasks to be executed. Finally, the prediction module may determine a desired resource utilization matrix U1p based on the linear coefficient vector and the resource utilization matrix Rmp. In one aspect, the desired resource utilization matrix U1p indicates the resource utilization for the execution of the one or more tasks.
[008] In another implementation, a method for predicting resource utilization for execution of one or more tasks corresponding to an IT application is disclosed. In one aspect, application log data and resource utilization log data may be captured. The application log data may be associated to throughput information of one or more reference tasks pertaining to the IT application. The resource utilization log data may be associated to one or more resources utilized while executing the one or more reference tasks. After capturing the application log data and the resource utilization log data, a workload matrix and a resource utilization matrix corresponding to the workload matrix may be obtained. In one aspect, the workload matrix and the resource utilization matrix may be obtained from the application log data containing the throughput information and the resource utilization log data corresponding to the application log data respectively. Upon obtaining the workload matrix and the resource utilization matrix, a training dataset may be obtained from the workload matrix and the resource utilization matrix by applying a Genetic Algorithm. In one aspect, the training dataset is an optimal workload matrix Wmn, indicating a subset of the workload matrix, and an optimal resource utilization matrix Rmp, indicating a subset of the resource utilization matrix corresponding to the data points for Wmn identified by the genetic algorithm. In one aspect, the optimal workload matrix Wmn may comprise a first set of values corresponding to the throughput information of the one or more reference tasks. Further, the optimal resource utilization matrix Rmp may comprise a second set of values corresponding to the one or more resources utilized. Subsequent to deriving of the optimal workload matrix Wmn and the optimal resource utilization matrix Rmp, the optimal workload matrix Wmn may be decomposed into a first matrix Amk and a second matrix Bkn. Upon decomposing, a pseudoinverse matrix Pnm may be derived based on the first matrix Amk and the second matrix Bkn. In one embodiment the pseudoinverse matrix Pnm is a Moore Penrose pseudoinverse matrix. After deriving the pseudoinverse matrix Pnm, a linear coefficient vector may be calculated based on the pseudoinverse matrix Pnm and a desired workload matrix T1n. The desired workload matrix T1n herein indicates the throughput information of one or more tasks to be executed. Finally, a desired resource utilization matrix U1p may be determined based on the linear coefficient vector and the resource utilization matrix Rmp. In one aspect, the desired resource utilization matrix U1p indicates the resource utilization for the execution of the one or more tasks.
[009] In yet another implementation, non-transitory computer readable medium embodying a program executable in a computing device for predicting resource utilization for execution of one or more tasks correspond to an IT application. The program may comprise a program code for capturing application log data and resource utilization log data. The application log data may be associated to throughput information of one or more reference tasks pertaining to the IT application, and the resource utilization log data may be associated to one or more resources utilized while executing the one or more reference tasks. The program may further comprise a program code for obtaining a workload matrix and a resource utilization matrix corresponding to the workload matrix. In one aspect, the workload matrix and the resource utilization matrix may be obtained from the application log data containing the throughput information and the resource utilization log data corresponding to the application log data respectively. The program may further comprise a program code for obtaining a training dataset from the workload matrix and the resource utilization matrix by applying a Genetic Algorithm. In one aspect, the training dataset is an optimal workload matrix Wmn, indicating a subset of the workload matrix, and an optimal resource utilization matrix Rmp, indicating a subset of the resource utilization matrix corresponding to the data points for Wmn identified by the genetic algorithm. In one aspect, the optimal workload matrix Wmn may comprise a first set of values corresponding to the throughput information of the one or more reference tasks. Further, the optimal resource utilization matrix Rmp may comprise a second set of values corresponding to the one or more resources utilized. The program may further comprise a program code for predicting the resource utilization for the execution of the one or more tasks. In order to predict the resource utilization, the optimal workload matrix Wmn may initially decomposed into a first matrix Amk and a second matrix Bkn. Upon decomposing, a pseudoinverse matrix Pnm may be derived based on the first matrix Amk and the second matrix Bkn. In one embodiment the pseudoinverse matrix Pnm is a Moore Penrose pseudoinverse matrix. After deriving the pseudoinverse matrix Pnm, a linear coefficient vector may be calculated based on the pseudoinverse matrix and a desired workload matrix T1n. The desired workload matrix T1n herein indicates the throughput information of one or more tasks to be executed. Finally, the desired resource utilization matrix U1p may be determined based on the linear coefficient vector and the resource utilization matrix Rmp. In one aspect, the desired resource utilization matrix U1p indicates the resource utilization for the execution of the one or more tasks.

BRIEF DESCRIPTION OF THE DRAWINGS
[0010] The foregoing detailed description of embodiments is better understood when read in conjunction with the appended drawings. For the purpose of illustrating the disclosure, there is shown in the present document example constructions of the disclosure; however, the disclosure is not limited to the specific methods and apparatus disclosed in the document and the drawings.
[0011] The detailed description is described with reference to the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The same numbers are used throughout the drawings to refer like features and components.
[0012] Figure 1 illustrates a network implementation of a system for predicting resource utilization for execution of one or more tasks corresponding to an IT application is shown, in accordance with an embodiment of the present disclosure.
[0013] Figure 2 illustrates the system, in accordance with an embodiment of the present disclosure.
[0014] Figures 3 and 4 illustrate a method for predicting the resource utilization for execution of the one or more tasks corresponding to the IT application, in accordance with an embodiment of the present disclosure.
[0015] The figures depict various embodiments of the present invention for purposes of illustration only. One skilled in the art will readily recognize from the following discussion that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles of the invention described herein.

DETAILED DESCRIPTION
[0016] Some embodiments of this disclosure, illustrating all its features, will now be discussed in detail. The words "comprising," "having," "containing," and "including," and other forms thereof, are intended to be equivalent in meaning and be open ended in that an item or items following any one of these words is not meant to be an exhaustive listing of such item or items, or meant to be limited to only the listed item or items. It must also be noted that as used herein and in the appended claims, the singular forms "a," "an," and "the" include plural references unless the context clearly dictates otherwise. Although any systems and methods similar or equivalent to those described herein can be used in the practice or testing of embodiments of the present disclosure, the exemplary, systems and methods are now described. The disclosed embodiments are merely exemplary of the disclosure, which may be embodied in various forms.
[0017] Various modifications to the embodiment will be readily apparent to those skilled in the art and the generic principles herein may be applied to other embodiments. For example, although the present disclosure will be described in the context of a system and method for predicting resource utilization for execution of one or more tasks corresponding to an IT application, one of ordinary skill in the art will readily recognize that the method and system can be utilized in any situation where there is need to predict the resource utilization. Thus, the present disclosure is not intended to be limited to the embodiments illustrated, but is to be accorded the widest scope consistent with the principles and features described herein.
[0018] Systems and methods for predicting resource utilization for execution of the one or more tasks corresponding to an IT application are described. Examples of the resource may include, but not limited to, a server a CPU, a disk, a memory, and a network bandwidth. Unlike regression based and queuing network based techniques, the present system and method does not require estimating per-function service demand and benchmarking of individual business transactions. It may be understood that whenever there is a change in proportion of the execution of one or more reference tasks, hereinafter referred to as a workload pattern, utilizations of the resources may change. The change in the workload pattern may thus deviates the performance of the IT application from the benchmark defined for the IT application running on a server.
[0019] In order to predict the performance of the IT system for any change in the workload pattern, the system and method may extract historic production log data. It must be noted to one skilled in art that the historic production log data may be stored in a database. Further, the historic production log data may comprise application log data pertaining to the throughput information of one or more reference tasks and resource utilization log data corresponding to the one or more reference tasks. The application log data indicates throughput information of the IT application while performing the one or more reference tasks corresponding to the IT application. The resource utilization log data, on the other hand, indicates resource utilization information pertaining to the one or more transactional activities. Example of the resource utilization information may comprise CPU usage, network bandwidth consumption, RAM usage, Disk usage.
[0020] In order to predict the resource utilization, a workload matrix and a resource utilization matrix corresponding to the workload matrix may be obtained from the application log data containing the throughput information and the resource utilization log data corresponding to the application log data respectively.
[0021] Since the historic production log data contains vast amount of information thereby require substantial time and computation to predict the performance. Therefore a training dataset may be obtained from the workload matrix and the resource utilization matrix by applying a Genetic algorithm. The training dataset, is a subset of the log data, may be sufficient to predict the resource utilization for a desired workload pattern thereby predict the performance of the IT system. In one aspect, the training dataset is an optimal workload matrix Wmn, indicating a subset of the workload matrix, and an optimal resource utilization matrix Rmp, indicating a subset of the resource utilization matrix corresponding to the data points for Wmn identified by the genetic algorithm. In one aspect, the optimal workload matrix Wmn may comprise a first set of values corresponding to the throughput information of the one or more reference tasks. Further, the optimal resource utilization matrix Rmp may comprise a second set of values corresponding to the one or more resources utilized when the one or more reference tasks are performed. In one aspect, the training dataset may be obtained based on one or more parameters. Examples of the one or more parameters may include, but not limited to, size and encoding of population, a fitness criterion, a selection criterion and reproduction operations like crossover and mutation.
[0022] After deriving the workload matrix Wmn and the resource utilization matrix Rmp, the resource utilization for the execution of the one or more tasks may be predicted. In one aspect, the resource utilization is predicted by decomposing the workload matrix Wmn into a first matrix Amk and a second matrix Bkn. Upon decomposing, a pseudoinverse matrix Pnm may be derived based on the first matrix Amk and the second matrix Bkn. In one aspect, the pseudoinverse matrix Pnm may be derived by Pnm= BknT (Bkn BknT)-1 * (AmkTAmk)-1AmkT. After deriving the pseudoinverse matrix Pnm, a linear coefficient vector may be calculated based on the pseudoinverse matrix and a desired workload matrix ??1??. The desired workload matrix ??1?? herein indicates the one or more tasks to be executed. Finally, a desired resource utilization matrix ??1?? may be determined based on the linear coefficient vector and the resource utilization matrix Rmp. In one aspect, the desired resource utilization matrix ??1?? indicates the resource utilization for the execution of the one or more tasks, thereby predicting the resource utilization for the execution of the one or more tasks. The desired resource utilization matrix ??1?? may be determined by ??1?? = ??1?? * Pnm * ??????, where ??1?? indicates the one or more tasks, Pnm indicates pseudoinverse of the workload matrix, and ?????? indicates the resource utilization matrix. Thus, in this manner, the performance of the IT system for any change in the workload pattern may be predicted.
[0023] In one aspect, the system may further be enabled to perform bottleneck analysis based on the performance predicted for a given workload pattern. . While aspects of described system and method for predicting the resource utilization for the execution of the one or more tasks corresponding to the IT application may be implemented in any number of different computing systems, environments, and/or configurations, the embodiments are described in the context of the following exemplary system.
[0024] Referring now to Figure 1, a network implementation 100 of a system 102 for predicting resource utilization for execution of one or more tasks corresponding to an IT application is illustrated, in accordance with an embodiment of the present disclosure. In one embodiment, the system 102 may capture application log data and resource utilization log data. The application log data may be associated to throughput information of one or more reference tasks pertaining to the IT application and the resource utilization log data may be associated to one or more resources utilized while executing the one or more reference tasks. The system 102 may further obtain a workload matrix and a resource utilization matrix corresponding to the workload matrix. The workload matrix and the resource utilization matrix may be derived from the application log data containing the throughput information and the resource utilization log data corresponding to the application log data respectively. The system 102 may further obtain a training dataset from the workload matrix and the resource utilization matrix by applying a Genetic Algorithm. In one aspect, the training dataset is an optimal workload matrix Wmn, indicating a subset of the workload matrix, and an optimal resource utilization matrix Rmp, indicating a subset of resource utilization matrix, corresponding to the data points for Wmn identified by the genetic algorithm. In one aspect, the optimal workload matrix Wmn may comprise a first set of values corresponding to the throughput information of the one or more reference tasks. Further, the optimal resource utilization matrix Rmp may comprise a second set of values corresponding to the one or more resources utilized when the one or more reference tasks are performed The system 102 may further predict the resource utilization for the execution of the one or more tasks. In order to predict the resource utilization for the execution of the one or more tasks, the system 102 may initially decompose the optimal workload matrix Wmn into a first matrix Amk and a second matrix Bkn. Upon decomposing, a pseudoinverse matrix Pnm may be derived based on the first matrix Amk and the second matrix Bkn. In one embodiment the pseudoinverse matrix Pnm is a Moore Penrose pseudoinverse matrix. After deriving the pseudoinverse matrix Pnm, a linear coefficient vector may be calculated based on the pseudoinverse matrix and a desired workload matrix T1n. The desired workload matrix T1n indicates the one or more tasks to be executed. Finally, a desired resource utilization matrix U1p may be determined based on the linear coefficient vector and the resource utilization matrix Rmp. In one aspect, the desired resource utilization matrix U1p indicates the resource utilization for the execution of the one or more tasks, thereby predicting the resource utilization for the execution of the one or more tasks in a computing environment.
[0025] Although the present disclosure is explained considering that the system 102 is implemented on a server, it may be understood that the system 102 may also be implemented in a variety of computing systems, such as a laptop computer, a desktop computer, a notebook, a workstation, a mainframe computer, a server, a network server and the like. It will be understood that the system 102 may be accessed by multiple users through one or more user devices 104-1, 104-2…104-N, collectively referred to as user 104 hereinafter, or applications residing on the user devices 104. Examples of the user devices 104 may include, but are not limited to, a portable computer, a personal digital assistant, a handheld device, and a workstation. The user devices 104 are communicatively coupled to the system 102 through a network 106.
[0026] In one implementation, the network 106 may be a wireless network, a wired network or a combination thereof. The network 106 can be implemented as one of the different types of networks, such as intranet, local area network (LAN), wide area network (WAN), the internet, and the like. The network 106 may either be a dedicated network or a shared network. The shared network represents an association of the different types of networks that use a variety of protocols, for example, Hypertext Transfer Protocol (HTTP), Transmission Control Protocol/Internet Protocol (TCP/IP), Wireless Application Protocol (WAP), and the like, to communicate with one another. Further the network 106 may include a variety of network devices, including routers, bridges, servers, computing devices, storage devices, and the like.
[0027] Referring now to Figure 2, the system 102 is illustrated in accordance with an embodiment of the present disclosure. In one embodiment, the system 102 may include at least one processor 202, an input/output (I/O) interface 204, and a memory 206. The at least one processor 202 may be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuitries, and/or any devices that manipulate signals based on operational instructions. Among other capabilities, the at least one processor 202 is configured to fetch and execute computer-readable instructions stored in the memory 206.
[0028] The I/O interface 204 may include a variety of software and hardware interfaces, for example, a web interface, a graphical user interface, and the like. The I/O interface 204 may allow the system 102 to interact with the user directly or through the client devices 104. Further, the I/O interface 204 may enable the system 102 to communicate with other computing devices, such as web servers and external data servers (not shown). The I/O interface 204 can facilitate multiple communications within a wide variety of networks and protocol types, including wired networks, for example, LAN, cable, etc., and wireless networks, such as WLAN, cellular, or satellite. The I/O interface 204 may include one or more ports for connecting a number of devices to one another or to another server.
[0029] The memory 206 may include any computer-readable medium and computer program product known in the art including, for example, volatile memory, such as static random access memory (SRAM) and dynamic random access memory (DRAM), and/or non-volatile memory, such as read only memory (ROM), erasable programmable ROM, flash memories, hard disks, optical disks, and magnetic tapes. The memory 206 may include modules 208 and data 210.
[0030] The modules 208 include routines, programs, objects, components, data structures, etc., which perform particular tasks or implement particular abstract data types. In one implementation, the modules 208 may include a data capturing module 212, a data analysis module 214, a prediction module 216, an alert generation module 218, and other modules 220. The other modules 220 may include programs or coded instructions that supplement applications and functions of the system 102. The modules 208 described herein may be implemented as software modules that may be executed in the cloud-based computing environment of the system 102.
[0031] The data 210, amongst other things, serves as a repository for storing data processed, received, and generated by one or more of the modules 208. The data 210 may also include a system database 222 and other data 224. The other data 224 may include data generated as a result of the execution of one or more modules in the other modules 220.
[0032] In one implementation, at first, a user may use the client device 104 to access the system 102 via the I/O interface 204. The user may register themselves using the I/O interface 204 in order to use the system 102. In one aspect, the user may accesses the I/O interface 204 of the system 102 for predicting resource utilization for execution of one or more tasks corresponding to an IT application, the system 102 may employ the plurality of modules i.e. the data capturing module 212, the data analysis module 214, the prediction module 216, and the alert generation module 218. In order to predict the resource utilization for execution of the one or more tasks, consider an IT application is deployed over a production server, catering to ‘??’ different functions concurrently. Then for the production server, utilization of a single resource can be estimated using a utilization law described as follows:
[0033] …………………………………………………………….(1)
[0034] Here ???? is the throughput information for a function ?? and Si represents mean service demand for the function ??. Based on a utilization law, the equation (1) may be rewritten in the form of a matrix for estimating the resource utilization of more than one resource (such as CPU, disk, memory, network bandwidth). The matrix comprises:
[0035] U1p=T1n*Snp …………………………………………………………….(2)
[0036] where U1p indicates resource utilization of CPU, disk, memory, network bandwidth, T1n =[t1…tn] indicates throughput information of the IT application, and Snp indicates service demands.
[0037] Since the information pertaining to Snp is intricate to determine, the plurality of modules, as described below, facilitates to predict the resource utilization of CPU, disk, memory, network bandwidth based on the historic production log data.
[0038] Further referring to figure 2, it may be understood that the data capturing module 212 may capture an enormous amount of information in form of the historic production log data pertaining to the IT application running on server(s) deployed in a production environment. The historic production log data may be stored in the system database 222 for future references. In one aspect, the historic production log data may comprise application log data and resource utilization log data. The application log data indicates throughput information of the one or more reference tasks and the resource utilization log data indicates utilization of one or more resources of the server for executing the one or more reference tasks. Example of the one or more resources may include, but not limited to, a CPU, a disk, a memory, and a network bandwidth.
[0039] In order to understand functioning of the data capturing module 212, consider an example where the application log data and the resource utilization log data pertaining to a banking application, running on a bank server, is stored in the form of the historic production log data in the system database 222. Since a user of the banking application may perform one or more transactional activities at different time instances, the application log data pertaining to the banking application may varies thereby varying the resource utilization log data depending upon the number of users concurrently accessing the banking application. Examples of the one or more transactional activities (referred herein as the one or more reference tasks) may include, but not limited to, depositing money, withdrawing money, transferring money, balance check, and the like.
[0040] In order to capture the application log data and the resource utilization log data for, consider ‘1000’ users of the banking application concurrently performs the one or more transactional activities at a specific time interval. In one aspect, the one or more transactional activities indicate a workload pattern. Out of ‘1000’ users, ‘300’ users are ‘depositing money’, ‘250’ users are ‘withdrawing money’, ‘250’ users are ‘transferring money’ and‘200’ users are checking balance. While performing the aforementioned transactional activities, the data capturing module 212 may capture the application log data pertaining to the plurality of transactional activities. Based on the application log data, the data capturing module 212 may further capture the resource utilization log data corresponding to the application log data and store in the system database 222. In one aspect, the resource utilization log data comprises percentage of CPU usage, percentage of network bandwidth consumption, percentage of disk usage, and percentage of memory usage. Thus, in this manner, the data capturing module 212 captures the application log data for different workload patterns and the resource utilization log data associated to the application log data. The application log data captured may then be stored in the system database 222 in the form of the historic production log data.
[0041] It must be noted to one skilled in the art that the overall performance delivered by the IT application largely depends on the workload pattern. That is, whenever there is change in the workload pattern, there is variation in the resource utilization of the server for the IT application. In addition, not only the change in the number of the users concurrently accessing the IT application, but change in the one or more reference tasks significantly impacts the performance of the one or more resources of the server hosting the IT application thereby impacting the overall performance delivered by the IT application. In order to predict the resource utilization, a workload matrix and a resource utilization matrix, corresponding to the workload matrix, may be obtained from the application log data containing the throughput information and the resource utilization log data corresponding to the application log data respectively.
[0042] Since the capturing module 212 captures the enormous amount of information in the form of the historic production log data, the data analysis module 214 filters the application log data and obtains training dataset from the workload matrix and the resource utilization matrix by applying a Genetic algorithm. In one aspect, the training dataset is a subset of the application log data. In one aspect, the training dataset is obtained to reduce complexities associated with handling the enormous amount of information. Examples of the complexities may include, but not limited to, space constraint associated with storing the enormous amount of information, large computations and longer time required to analyze the enormous amount of information and inherent risk of over learning for the learning mechanism that may result into reduction in the accuracy of predicting the resource utilization based on the application log data. The detail functioning of the Genetic Algorithm for obtaining the training dataset is described in detail as below.
[0043] In one aspect, the historic production log data is divided into at least two data sets i.e. a first dataset and a second dataset. The first dataset contains training data points whereas the second dataset contains a validation data points. Upon dividing the log data, the Genetic Algorithm constructs a population of chromosomes, each of which represents a subset of the training data points of the first dataset. A chromosome is indicative of a single large macro molecule of DNA that contains many genes. In one aspect, each training data point is considered to be a gene. The population of chromosomes consists of a large number of randomly generated chromosomes. Further each chromosome of the population is a unique subset, of the first dataset, representing a potential solution in terms of optimal subset of training data points for predicating the resource utilization.
[0044] In order to evaluate the fitness of each chromosome, the validation data points of the second dataset are validated by using a fitness function. In one aspect, the fitness function emulates human pattern recognition through machine learning by assessing the estimation accuracy for the resource utilization of the server(s). In order to calculate the fitness of each chromosome, each chromosome may be encoded as the training data points for first dataset. Based on the encoding, the resource utilization of each data point may be estimated from the second dataset until an error in estimation is within a pre-defined tolerance value. Upon estimating, a chromosome, associated with least error amongst the population of chromosomes, may be selected as an optimal solution representing a subset of data points that can be selected in computing the optimal workload matrix Wmn and corresponding resource utilization matrix Rmp. In one aspect, the fitness of the chromosome is calculated based on an average error method for the validation data points of the second dataset.
[0045] In order to understand aforementioned step of evaluating the fitness, consider an example where the historic production log data contains a total of eight historic data points. As per the methodology, the historic production log data, containing the total of eight historic data points, is divided into two sets i.e. training data points as {1,2,3,4} and validation data points as {5,6,7,8}. Upon dividing, the Genetic Algorithm randomly encodes a population of four chromosomes from the first dataset as follows:
[0046] [1, 3, 4],
[0047] [2, 4],
[0048] [2, 3], and
[0049] [1, 2, 4]
[0050] where numbers 1 through 4 represents different data points of the first dataset and each chromosome represents a potential solution in terms of a subset of original data points that are required in construction of optimal training data matrices Wmn and Rmp. In order to calculate the fitness of each chromosomes, as aforementioned, the Genetic Algorithm builds the learning model using [1, 3, 4] and validates the accuracy in the estimation of the resource utilization for the data points in the second validation dataset i.e. {5,6,7,8}. Similarly, fitness of each other chromosome may be validated at each generation.
[0051] Subsequent to the evaluation of the fitness pertaining to each chromosome, two random chromosomes may be selected as parent chromosomes for reproduction and produce offspring. In one aspect, the offspring may be produced by selecting two random parent chromosomes. Better the fitness of chromosome, higher is the probability in selection for reproduction. Upon selecting the two parent chromosomes, these two chromosomes may exchange genetic information by crossing over to generate two new chromosomes as offspring. Based on a mutation probability, the new chromosomes may be mutated at random locus/position. These newly generated offspring along with parents are evaluated for fitness and only the fit individuals are carried forward to next generation.
[0052] These processes of fitness evaluation, selection and reproduction are carried out for a preset number of generations. At the end of present number of generation, the best fit chromosome represents the optimal number of training data points required for better estimation of server resource utilization for any workload pattern. Thus, in this manner, the training dataset may be obtained from the log data by applying the Genetic Algorithm.
[0053] In one aspect, the training dataset is an optimal workload matrix Wmn, indicating a subset of the workload matrix, and an optimal resource utilization matrix Rmp, indicating a subset of the resource utilization matrix corresponding to the data points for Wmn identified by the genetic algorithm. In one aspect, the optimal workload matrix Wmn may comprise a first set of values corresponding to the throughput information of the one or more reference tasks. Further, the optimal resource utilization matrix Rm may comprise a second set of values corresponding to the one or more resources utilized. In one embodiment, the optimal workload matrix Wmn and the optimal resource utilization matrix Rmp may be derived from the application log data and the resource utilization log data respectively. In one aspect, the second set of values indicating the resource utilization of the one or more resources may be measured by using at least one of a system monitoring utility tool. Examples of the system monitoring utility tool may include, but not limited to top, atop, and sar.
[0054] In one aspect, the workload matrix Wmn is represented by:
[0055] …………………………………………………….(3)
[0056] where t11 …… t1n and tm1……tmn indicates a plurality of workload pattern in terms of throughput information.
[0057] On the other hand, the resource utilization matrix Rmp corresponding to the workload matrix Wmn is represented by:
[0058] ……………………………………………………...(4)
[0059] Based on the workload matrix Wmn and the resource utilization matrix Rmp, the utilization law may be applied on the ‘m’ workload, as indicated in the workload matrix Wmn, in order to determine the service demands Snp.
[0060] In one aspect, the service demands Snp may be determined by using a formulation as mentioned below:
[0061] Rmp=Wmn*Snp …………..…………………………………………………...(5)
[0062] Subsequent to the determination of the, system demands Snp. the prediction module 216 predicts the resource utilization U1p of the one or more resources for the execution of the one or more tasks T1n. In one aspect, the resource utilization of the one or more resources may be predicted by using the equations (2) and (5). Based on the equations (2) and (5), the resource utilization U1p for the one or more tasks indicating a desired workload pattern ‘T1n’ may be determined by
[0063] U1p=T1n * Wnm-1 * Rmp ………..……………………………………………...(6)
[0064] In one aspect, consider
[0065] C1m=T1n*Wnm-1 ……………..……………………………………………...(7)
[0066] where C1m is linear coefficient vector. Then,
[0067] U1p=C1m*Rmp ……………..……………………………………………...(8)
[0068] In one aspect, the equation (5) may be reconfigured in order to get
[0069] T1n=C1m * Wmn ……………..……………………………………………...(9)
[0070] In one aspect, T1n may be expressed as linear combination of the workload matrix Wmn using the linear coefficient vector C1m= [c1…….cm]. Based upon the linear combination of the workload matrix Wmn, the resource utilization U1p may be determined proportionately using equation (8).
[0071] In one embodiment, the linear coefficient vector C1m is calculated by:
[0072] C1m=T1n*Wnm-1……………..……………………………………………...(10)
[0073] when the workload matrix Wmn is a square and non-singular matrix. This is hardly the case.
[0074] In another embodiment, when the workload matrix Wmn is neither a square and nor a non-singular matrix, then the linear coefficient vector C1m is calculated by:
[0075] C1m=T1n *Pnm………………..………………………………………….(11)
[0076] where Pnm is a pseudoinverse matrix of the workload matrix Wmn. In one aspect, the pseudoinverse matrix Pnm may be calculated by using a rank factorization algorithm described as below:
[0077] In order to calculate the pseudoinverse matrix Pnm, the optimal workload matrix Wmn may be decomposed into two matrices i.e. a first matrix Amk and a second matrix Bkn such that:
[0078] Wmn=Amk * Bkn………………..……………………………………...(12)
[0079] where k=rank (Wmn) =rank (Amk) =rank (Bkn), matrix Bkn is comprised of non-zero rows of row-echelon form of the workload matrix Wmn and the first matrix Amk is made up of the pivot columns of Wmn while row reducing Wmn to row-echelon form.
[0080] Subsequent to the decomposition of the workload matrix Wmn, the pseudoinverse matrix Pnm may be derived based on the first matrix Amk and the second matrix Bkn. In one embodiment the pseudoinverse matrix Pnm is a Moore Penrose pseudoinverse matrix. In one aspect, the pseudoinverse matrix Pnm is calculated by:
[0081] Pnm=BknT (Bkn BknT)-1 * (AmkT Amk)-1 AmkT………………..………..(13)
[0082] After deriving the pseudoinverse matrix Pnm, the linear coefficient vector C1m may be calculated based on the pseudoinverse matrix Pnm and a desired workload matrix T1n using equation (7). The desired workload matrix T1n herein indicates the one or more tasks to be executed.
[0083] Once the linear coefficient vector C1m is calculated, a desired resource utilization matrix U1p may be determined based on the linear coefficient vector C1m and the resource utilization matrix Rmp using equation (8). The desired resource utilization matrix U1p indicates the resource utilization for the execution of the one or more tasks.
[0084] The above disclosed modeling technique for predicting the resource utilization may be implemented by the system 102 for the systems running under stable environment. Therefore, the training dataset may be employed for predicting the resource utilization of the systems running under stable environment. However, there may be few systems experiencing variations in the individual components such as frequent software updates, and hardware changes etc. In such scenarios, the system 102 may be configured to use adaptive training dataset instead of the static training dataset. Specifically, the system 102 may be configured to continuously monitor the performance of systems as described above and whenever the system 102 encounters any deviation in the estimation, the system 102 may be adapted to replace the least significant training data point with the latest record (throughputs and/or number of concurrent users and resource consumption). In such scenarios, frequent calculation of the pseudoinverse matrix Pnm using equation (13) may be tedious, compute-intensive and time consuming. Therefore, in this case, the system 102 may adopt an alternative approach to calculate the pseudoinverse matrix Pnm based on an Orthogonal Decomposition Methodology (ODM) technique. Once the pseudoinverse matrix Pnm is calculated, when there is any change in one row of the workload matrix Wmn, the ODM technique may not stipulate to start from scratch and may allow updating the pseudoinverse matrix Pnm with minimal number of iterations. Specifically, only one iteration may be required by the system 102 to derive the final pseudoinverse matrix Pnm. This helps in reducing the overhead of the system 102 in model rebuilding and further helps in achieving the model tuning in a real time.
[0085] Subsequent to the prediction of the performance of the IT system, the alert generation module 218 based on the performance predicted and thereby generating an alert. In one aspect, the alert may be generated when the resource utilization predicted pertaining to the one or more tasks is greater than a pre-defined threshold value. It may be understood that problems associated to the performance of the IT system may often arise due to a resource bottleneck in the system. Since the aforementioned methodology may be used to predict the resource utilization pertaining to one or more IT system, the same methodology may further be used to identify one or more components that may be responsible for causing bottlenecks. Upon identifying such components causing bottlenecks, the alert may be generated for cautioning the user to reconfigure the components in order to improve the performance of the one or more resources deployed in the IT system.
[0086] Exemplary embodiments discussed above may provide certain advantages. Though not required to practice aspects of the disclosure, these advantages may include those provided by the following features.
[0087] Some embodiments enable a system and a method for optimizing the prediction of resource utilization by obtaining optimal training data set from historic production logs data.
[0088] Some embodiments enable a system and a method for reducing the computations required to predict the resource utilization for execution of one or more tasks corresponding to an IT application.
[0089] Referring now to Figure 3, a method 300 for predicting resource utilization for execution of one or more tasks corresponding to an IT application is shown, in accordance with an embodiment of the present disclosure. The method 300 may be described in the general context of computer executable instructions. Generally, computer executable instructions can include routines, programs, objects, components, data structures, procedures, modules, functions, etc., that perform particular functions or implement particular abstract data types. The method 300 may be practiced in a distributed computing environment where functions are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, computer executable instructions may be located in both local and remote computer storage media, including memory storage devices.
[0090] The order in which the method 300 is described is not intended to be construed as a limitation, and any number of the described method blocks can be combined in any order to implement the method 300 or alternate methods. Additionally, individual blocks may be deleted from the method 300 without departing from the spirit and scope of the disclosure described herein. Furthermore, the method can be implemented in any suitable hardware, software, firmware, or combination thereof. However, for ease of explanation, in the embodiments described below, the method 300 may be considered to be implemented in the above described in the system 102.
[0091] At block 302, application log data and resource utilization log data may be captured. In one aspect, the application log data may be associated to throughput information of one or more reference tasks pertaining to the IT application and the resource utilization log data may be associated to one or more resources utilized while executing the one or more reference tasks. In one implementation, the log data may be captured by the data capturing module 212.
[0092] At block 304, a workload matrix and a resource utilization matrix may be obtained. In one aspect, the workload matrix and the resource utilization matrix may be obtained based on the application log data containing the throughput information and the resource utilization log data corresponding to the application log data respectively. In one implementation, the workload matrix and the resource utilization matrix may be obtained by the data analysis module 214.
[0093] At block 306, an optimal workload matrix Wmn and an optimal resource utilization matrix Rmp may be obtained as the training dataset from the workload matrix and the resource utilization matrix by applying a Genetic Algorithm. In one aspect, the training dataset is a subset of the workload matrix and the corresponding resource utilization matrix. In one aspect, the workload matrix Wmn may comprise a first set of values corresponding to the throughput of one or more reference tasks, and the resource utilization matrix Rmp may comprise a second set of values corresponding to the one or more resources utilized. In one implementation, the training dataset may be obtained by the data analysis module 214.
[0094] At block 308, the resource utilization may be predicted for the execution of the one or more tasks T1n. In one implementation, the resource utilization U1p may be predicted by the prediction module 216. Further, the block 308 may be explained in greater detail referring Figure 4.
[0095] Referring now to Figure 4, a method 308 for predicting the resource utilization U1p for the execution of the one or more tasks is shown, in accordance with an embodiment of the present subject matter.
[0096] At block 402, the workload matrix Wmn may be decomposed into a first matrix Amk and a second matrix Bkn. In one implementation, the workload matrix Wmn may be decomposed by the prediction module 216.
[0097] At block 404, a pseudoinverse matrix Pnm may be derived based on the first matrix Amk and the second matrix Bkn. In one embodiment the pseudoinverse matrix Pnm is a Moore Penrose pseudoinverse matrix. In one implementation, the pseudoinverse matrix Pnm may be derived by the prediction module 216.
[0098] At block 406, a linear coefficient vector may be calculated based on the pseudoinverse matrix Pnm and a desired workload matrix T1n. The desired workload matrix T1n herein indicates the one or more tasks to be executed. In one implementation, the linear coefficient vector may be calculated by the prediction module 216.
[0099] At block 408, a desired resource utilization matrix U1p may be determined based on the linear coefficient vector and the resource utilization matrix Rmp. In one aspect, the desired resource utilization matrix U1p indicates the resource utilization for the execution of one or more tasks. In one implementation, the desired resource utilization matrix U1p may be determined by the prediction module 216.
[00100] Although implementations for methods and systems for predicting resource utilization for execution of one or more tasks corresponding to an IT application have been described in language specific to structural features and/or methods, it is to be understood that the appended claims are not necessarily limited to the specific features or methods described. Rather, the specific features and methods are disclosed as examples of implementations for predicting resource utilization for execution of the one or more tasks corresponding to the IT application. ,CLAIMS:WE CLAIM:

1. A method for predicting resource utilization for execution of one or more tasks corresponding to an IT application, the method comprising:
capturing, by a processor, application log data and resource utilization log data, wherein the application log data is associated to throughput information of one or more reference tasks pertaining to the IT application, and wherein the resource utilization log data is associated to one or more resources utilized while executing the one or more reference tasks;
obtaining, by the processor, a workload matrix and a resource utilization matrix corresponding to the workload matrix from the application log data containing the throughput information and the resource utilization log data corresponding to the application log data respectively;
obtaining, by the processor, training dataset from the workload matrix and the resource utilization matrix by applying a Genetic Algorithm, wherein the training dataset is an optimal workload matrix Wmn and an optimal resource utilization matrix Rmp corresponding to the optimal workload matrix Wmn; and
predicting, by the processor, the resource utilization for the execution of the one or more tasks by,
decomposing the workload matrix Wmn into a first matrix Amk and a second matrix Bkn;
deriving a pseudoinverse matrix Pnm based on the first matrix Amk and the second matrix Bkn;
calculating a linear coefficient vector based on the pseudoinverse matrix and a desired workload matrix representing the one or more tasks to be executed; and
determining a desired resource utilization matrix based on the linear coefficient vector and the resource utilization matrix Rmp, wherein the desired resource utilization matrix indicates the resource utilization for execution of one or more tasks.

2. The method of claim 1, wherein the training dataset is obtained based on one or more parameters, and wherein the one or more parameters comprise size and encoding of population, fitness criterion, selection criterion, crossover, and mutation.

3. The method of claim 1, wherein the one or more resources comprises a Central Processing Unit (CPU), a disk, a memory, and a network bandwidth.

4. The method of claim 1, wherein the desired resource utilization matrix ??1?? is determined by ??1?? = ??1?? * Pnm * ??????, and wherein ??1?? indicates the one or more tasks, and wherein Pnm indicates pseudoinverse of the workload matrix, and wherein the ?????? indicates the resource utilization matrix.

5. The method of claim 1, wherein the pseudoinverse matrix Pnm is derived by Pnm= BknT(Bkn BknT)-1 * (AmkTAmk)-1AmkT.

6. The method of claim 1, wherein the pseudoinverse matrix Pnm is a Moore Penrose pseudoinverse matrix.

7. The method of claim 1, wherein the optimal workload matrix Wmn is a subset of the workload matrix, wherein the optimal resource utilization matrix Rmp is a subset of the resource utilization matrix corresponding to the data points for Wmn.

8. The method of claim 1, wherein the optimal workload matrix Wmn comprises a first set of values corresponding to the throughput information of the one or more reference tasks, and wherein the optimal resource utilization matrix Rmp comprises a second set of values corresponding to the one or more resources utilized.

9. A system for predicting resource utilization for execution of one or more tasks corresponding to an IT application, the system comprising:
a processor; and
a memory coupled to the processor, wherein the processor is capable of executing a plurality of modules stored in the memory, and wherein the plurality of modules comprising:
a data capturing module for capturing application log data and resource utilization log data, wherein the application log data is associated to throughput information of one or more reference tasks pertaining to the IT application, and wherein the resource utilization log data is associated to one or more resources utilized while executing the one or more reference tasks;
a data analysis module for
obtaining a workload matrix and a resource utilization matrix corresponding to the workload matrix from the application log data containing the throughput information and the resource utilization log data corresponding to the application log data respectively;
obtaining training dataset from the workload matrix and the resource utilization matrix by applying a Genetic Algorithm, wherein the training dataset is an optimal workload matrix Wmn and an optimal resource utilization matrix Rmp; and
a prediction module for predicting the resource utilization for the execution of the one or more tasks by,
decomposing the workload matrix Wmn into a first matrix Amk and a second matrix Bkn;
deriving a pseudoinverse matrix Pnm based on the first matrix Amk and the second matrix Bkn;
calculating a linear coefficient vector based on the pseudoinverse matrix and a desired workload matrix representing the one or more tasks to be executed; and
determining a desired resource utilization matrix based on the linear coefficient vector and the resource utilization matrix Rmp, wherein the desired resource utilization matrix indicates the resource utilization for execution of one or more tasks.

10. The system of claim 9, wherein the prediction module determines the desired resource utilization matrix ??1?? is determined by ??1?? = ??1?? * Pnm * ??????, and wherein ??1?? indicates the throughput information of one or more tasks, and wherein Pnm indicates pseudoinverse of the workload matrix, and wherein the ?????? indicates the resource utilization matrix.

11. A non-transitory computer readable medium embodying a program executable in a computing device for predicting resource utilization for execution of one or more tasks corresponding to an IT application, the program comprising:
a program code for capturing application log data and resource utilization log data, wherein the application log data is associated to throughput information of one or more reference tasks pertaining to the IT application, and wherein the resource utilization log data is associated to one or more resources utilized while executing the one or more reference tasks;
a program code for obtaining a workload matrix and a resource utilization matrix corresponding to the workload matrix from the application log data containing the throughput information and the resource utilization log data corresponding to the application log data respectively;
a program code for obtaining training dataset from the workload matrix and the resource utilization matrix by applying a Genetic Algorithm, wherein the training dataset is an optimal workload matrix Wmn and an optimal resource utilization matrix Rmp; and
a program code for predicting the resource utilization for the execution of the one or more tasks by,
decomposing the workload matrix Wmn into a first matrix Amk and a second matrix Bkn;
deriving a pseudoinverse matrix Pnm based on the first matrix Amk and the second matrix Bkn;
calculating a linear coefficient vector based on the pseudoinverse matrix and a desired workload matrix representing the one or more tasks to be executed; and
determining a desired resource utilization matrix based on the linear coefficient vector and the resource utilization matrix Rmp, wherein the desired resource utilization matrix indicates the resource utilization for execution of one or more tasks.

Documents

Orders

Section Controller Decision Date

Application Documents

# Name Date
1 2954-MUM-2013-FORM-15 [15-10-2024(online)].pdf 2024-10-15
1 2954-MUM-2013-RESTORATION PAYMENT LETTER-18-03-2025.pdf 2025-03-18
1 Form-2(Online).pdf 2018-08-11
2 2954-MUM-2013-FORM-15 [15-10-2024(online)].pdf 2024-10-15
2 2954-MUM-2013-IntimationOfGrant08-02-2023.pdf 2023-02-08
2 Form 2.pdf 2018-08-11
3 2954-MUM-2013-IntimationOfGrant08-02-2023.pdf 2023-02-08
3 2954-MUM-2013-PatentCertificate08-02-2023.pdf 2023-02-08
3 Form 2 - CAP.pdf 2018-08-11
4 Figure for Abstract.jpg 2018-08-11
4 2954-MUM-2013-Written submissions and relevant documents [27-01-2023(online)].pdf 2023-01-27
4 2954-MUM-2013-PatentCertificate08-02-2023.pdf 2023-02-08
5 ABSTRACT1.jpg 2018-08-11
5 2954-MUM-2013-Written submissions and relevant documents [27-01-2023(online)].pdf 2023-01-27
5 2954-MUM-2013-PETITION UNDER RULE 137 [25-01-2023(online)]-1.pdf 2023-01-25
6 2954-MUM-2013-PETITION UNDER RULE 137 [25-01-2023(online)].pdf 2023-01-25
6 2954-MUM-2013-PETITION UNDER RULE 137 [25-01-2023(online)]-1.pdf 2023-01-25
6 2954-MUM-2013-FORM 26(9-12-2013).pdf 2018-08-11
7 2954-MUM-2013-RELEVANT DOCUMENTS [25-01-2023(online)]-1.pdf 2023-01-25
7 2954-MUM-2013-PETITION UNDER RULE 137 [25-01-2023(online)].pdf 2023-01-25
7 2954-MUM-2013-FORM 1(23-1-2014).pdf 2018-08-11
8 2954-MUM-2013-CORRESPONDENCE(9-12-2013).pdf 2018-08-11
8 2954-MUM-2013-RELEVANT DOCUMENTS [25-01-2023(online)]-1.pdf 2023-01-25
8 2954-MUM-2013-RELEVANT DOCUMENTS [25-01-2023(online)].pdf 2023-01-25
9 2954-MUM-2013-Correspondence to notify the Controller [14-01-2023(online)].pdf 2023-01-14
9 2954-MUM-2013-CORRESPONDENCE(23-1-2014).pdf 2018-08-11
9 2954-MUM-2013-RELEVANT DOCUMENTS [25-01-2023(online)].pdf 2023-01-25
10 2954-MUM-2013-Correspondence to notify the Controller [14-01-2023(online)].pdf 2023-01-14
10 2954-MUM-2013-FER.pdf 2019-11-07
10 2954-MUM-2013-FORM-26 [14-01-2023(online)]-1.pdf 2023-01-14
11 2954-MUM-2013-FORM-26 [14-01-2023(online)]-1.pdf 2023-01-14
11 2954-MUM-2013-FORM-26 [14-01-2023(online)].pdf 2023-01-14
11 2954-MUM-2013-OTHERS [07-05-2020(online)].pdf 2020-05-07
12 2954-MUM-2013-FER_SER_REPLY [07-05-2020(online)].pdf 2020-05-07
12 2954-MUM-2013-FORM-26 [14-01-2023(online)].pdf 2023-01-14
12 2954-MUM-2013-US(14)-HearingNotice-(HearingDate-19-01-2023).pdf 2023-01-05
13 2954-MUM-2013-US(14)-HearingNotice-(HearingDate-19-01-2023).pdf 2023-01-05
13 2954-MUM-2013-COMPLETE SPECIFICATION [07-05-2020(online)].pdf 2020-05-07
13 2954-MUM-2013-CLAIMS [07-05-2020(online)].pdf 2020-05-07
14 2954-MUM-2013-CLAIMS [07-05-2020(online)].pdf 2020-05-07
14 2954-MUM-2013-COMPLETE SPECIFICATION [07-05-2020(online)].pdf 2020-05-07
15 2954-MUM-2013-COMPLETE SPECIFICATION [07-05-2020(online)].pdf 2020-05-07
15 2954-MUM-2013-FER_SER_REPLY [07-05-2020(online)].pdf 2020-05-07
15 2954-MUM-2013-US(14)-HearingNotice-(HearingDate-19-01-2023).pdf 2023-01-05
16 2954-MUM-2013-FER_SER_REPLY [07-05-2020(online)].pdf 2020-05-07
16 2954-MUM-2013-FORM-26 [14-01-2023(online)].pdf 2023-01-14
16 2954-MUM-2013-OTHERS [07-05-2020(online)].pdf 2020-05-07
17 2954-MUM-2013-FORM-26 [14-01-2023(online)]-1.pdf 2023-01-14
17 2954-MUM-2013-OTHERS [07-05-2020(online)].pdf 2020-05-07
17 2954-MUM-2013-FER.pdf 2019-11-07
18 2954-MUM-2013-CORRESPONDENCE(23-1-2014).pdf 2018-08-11
18 2954-MUM-2013-FER.pdf 2019-11-07
18 2954-MUM-2013-Correspondence to notify the Controller [14-01-2023(online)].pdf 2023-01-14
19 2954-MUM-2013-CORRESPONDENCE(23-1-2014).pdf 2018-08-11
19 2954-MUM-2013-CORRESPONDENCE(9-12-2013).pdf 2018-08-11
19 2954-MUM-2013-RELEVANT DOCUMENTS [25-01-2023(online)].pdf 2023-01-25
20 2954-MUM-2013-CORRESPONDENCE(9-12-2013).pdf 2018-08-11
20 2954-MUM-2013-FORM 1(23-1-2014).pdf 2018-08-11
20 2954-MUM-2013-RELEVANT DOCUMENTS [25-01-2023(online)]-1.pdf 2023-01-25
21 2954-MUM-2013-FORM 1(23-1-2014).pdf 2018-08-11
21 2954-MUM-2013-FORM 26(9-12-2013).pdf 2018-08-11
21 2954-MUM-2013-PETITION UNDER RULE 137 [25-01-2023(online)].pdf 2023-01-25
22 2954-MUM-2013-FORM 26(9-12-2013).pdf 2018-08-11
22 2954-MUM-2013-PETITION UNDER RULE 137 [25-01-2023(online)]-1.pdf 2023-01-25
22 ABSTRACT1.jpg 2018-08-11
23 2954-MUM-2013-Written submissions and relevant documents [27-01-2023(online)].pdf 2023-01-27
23 ABSTRACT1.jpg 2018-08-11
23 Figure for Abstract.jpg 2018-08-11
24 2954-MUM-2013-PatentCertificate08-02-2023.pdf 2023-02-08
24 Figure for Abstract.jpg 2018-08-11
24 Form 2 - CAP.pdf 2018-08-11
25 Form 2.pdf 2018-08-11
25 Form 2 - CAP.pdf 2018-08-11
25 2954-MUM-2013-IntimationOfGrant08-02-2023.pdf 2023-02-08
26 Form-2(Online).pdf 2018-08-11
26 Form 2.pdf 2018-08-11
26 2954-MUM-2013-FORM-15 [15-10-2024(online)].pdf 2024-10-15
27 Form-2(Online).pdf 2018-08-11
27 2954-MUM-2013-RESTORATION PAYMENT LETTER-18-03-2025.pdf 2025-03-18

Search Strategy

1 ss_2954_mum_2013_31-10-2019.pdf

ERegister / Renewals

3rd: 22 Mar 2025

From 13/09/2015 - To 13/09/2016

4th: 22 Mar 2025

From 13/09/2016 - To 13/09/2017

5th: 22 Mar 2025

From 13/09/2017 - To 13/09/2018

6th: 22 Mar 2025

From 13/09/2018 - To 13/09/2019

7th: 22 Mar 2025

From 13/09/2019 - To 13/09/2020

8th: 22 Mar 2025

From 13/09/2020 - To 13/09/2021

9th: 22 Mar 2025

From 13/09/2021 - To 13/09/2022

10th: 22 Mar 2025

From 13/09/2022 - To 13/09/2023

11th: 22 Mar 2025

From 13/09/2023 - To 13/09/2024

12th: 22 Mar 2025

From 13/09/2024 - To 13/09/2025

13th: 11 Sep 2025

From 13/09/2025 - To 13/09/2026