Software Updating By Internet Available
Complex software applications, such as the Database Management System (DBMS) known as Teradata™ by NCR Corporation, release periodic updates, patches and/or maintenance modules to resolve problems and provide enhanced functionality. Many systems automatically apply these updates without a full consideration of the costs and benefits of applying the update.
In some cases, new releases may introduce unwanted changes, which can cause a degradation in performance (a regression), or at worst, a destabilization of the system. For example, an update which changes the SQL language parser in a database application may render some existing SQL scripts unusable. This in turn may cause certain jobs to abort, resulting in delays and frustration for users.
Where regressions are introduced, users or support personnel have to follow the tedious process of reviewing release notes to determine update applicability to a specific environment. In addition users have to review known regression issues to decide if a particular update is relevant to their environment.
SUMMARY
In general, in one aspect, the invention features a method for updating at least one component in a multi-component software application arranged to operate on a computing system. The method includes receiving application data describing characteristics of the software application, receiving update data describing at least one update applicable to the software application and reviewing the application data and update data to determine whether the at least one update is to be applied to the software application.
Implementations of the invention may include one or more of the following. The method may include the further step of receiving computing system data describing characteristics of the computing system and reviewing the computing system data to determine whether the at least one update is applied to the software application. At least one of the application data, update data and computing system data may be received in the form of a metadata record. The method may utilize a rule engine to perform the review of the application data and the update data. The rule engine may also be utilized to perform the review of the computing system data. A risk assessment report outlining the risk of applying the at least one update may be provided. The computer system data may be compiled by measuring the system resources utilized by the software application when executed on the computing system, or by recording a set of user-defined queries, or by recording a set of optimization strategies used by the software application when executing a query issued by a user, or any combination thereof. The method may include the further step of applying the update to the software application.
In general, in another aspect, the invention features a computing system. The computing system includes a massively parallel processing system, which includes one or more nodes, a plurality of CPUs, each of the one or more nodes providing access to one or more CPUs, a plurality of virtual processes each of the one or more CPUs providing access to one or more processes, each process configured to manage data stored in one of a plurality of data-storage facilities and an application data module configured to receive application data describing the software application, an update data module configured to receive update data describing at least one update applicable to the software application and a review module configured to review the application data and update data to determine whether the update should be applied to the software application.
In general, in another aspect, the invention features a computer program, stored on a tangible storage medium which includes instructions which cause a computing system to receive application data describing characteristics of the software application, receive update data describing at least one update applicable to the software application and review the application data and update data to determine whether the at least one update is to be applied to the software application