Patent application number | Description | Published |
20080320450 | RECOVERABLE RETURN CODE TRACKING AND NOTIFICATION FOR AUTONOMIC SYSTEMS - A system, method and article of manufacture return code management in autonomic systems and more particularly to managing execution of operations in data processing systems on the basis of return code tracking. One embodiment provides a method for managing execution of an operation in a data processing system. The method comprises tracking return codes received from previous executions of the operation in the data processing system, determining an execution behavior of the operation from the tracked return codes, and managing a subsequent execution of the operation on the basis of the determined execution behavior. | 12-25-2008 |
20090043728 | Query Optimization in a Parallel Computer System to Reduce Network Traffic - An apparatus and method for a database query optimizer to optimize a query that uses multiple networks. The query optimizer optimizes a query to reduce network traffic on a network or node that is overloaded or above an established parameter in a node/network attribute table. The query optimization to reduce network traffic may result in a sub-optimal query in other respects such as execution time. The result is a query optimizer that rewrites or optimizes a query to execute on multiple nodes or networks to reduce traffic on a network or node according to the loading characteristics and assigned attributes of a node or network. | 02-12-2009 |
20090043745 | Query Execution and Optimization with Autonomic Error Recovery from Network Failures in a Parallel Computer System with Multiple Networks - An apparatus and method for a database query execution monitor determines if an network error or low performance condition exists and then where possible modifies the query. The query execution monitor then determines an alternate query execution plan to continue execution of the query. The query optimizer can re-optimize the query to use a different network or node. Thus, the query execution monitor allows autonomic error recovery for network failures using an alternate query execution. The alternate query execution could also be determined at the initial optimization time and then this alternate plan used to execute a query in the case of a particular network failure. | 02-12-2009 |
20090043750 | Query Optimization in a Parallel Computer System with Multiple Networks - An apparatus and method for a database query optimizer to optimize a query that uses multiple networks. The database query optimizer optimizes a query that uses multiple networks to satisfy the query by splitting the query execution to use multiple networks. Thus, the query optimizer rewrites or optimizes a query to execute on multiple nodes or networks to more efficiently execute the query and reduce network traffic on a network. The query optimizer uses plan cache statistics to determine whether to use multiple networks to optimize the query. | 02-12-2009 |
20090043873 | Methods and Apparatus for Restoring a Node State - In one aspect of the invention, a method is provided. The method may include: (1) storing a snapshot of a system state of a node; (2) executing a job on the node; and (3) restoring the node to the system state using the stored snapshot of the system state. | 02-12-2009 |
20090043910 | Query Execution and Optimization Utilizing a Combining Network in a Parallel Computer System - An apparatus and method for a database query optimizer utilizes a combining network to optimize a portion of a query in a parallel computer system with multiple nodes. The efficiency of the parallel computer system is increased by offloading collective operations on node data to the global combining network. The global combining network performs collective operations such as minimum, maximum, sum, and logical functions such as OR and XOR. | 02-12-2009 |
20090083276 | INSERTING DATA INTO AN IN-MEMORY DISTRIBUTED NODAL DATABASE - A method and apparatus loads data to an in-memory database across multiple nodes in a parallel computing system. A database loader uses SQL flags, historical information gained from monitoring prior query execution times and patterns, and node and network configuration to determine how to effectively cluster data attributes across multiple nodes. The database loader may also allow a system administrator to force placement of database structures in particular nodes. | 03-26-2009 |
20090083277 | NODAL DATA NORMALIZATION - Embodiments of the invention may be used to normalize data stored in an in-memory database on a parallel computer system. The data normalization may be used to achieve memory savings, thereby reducing the number of compute nodes required to store an in-memory database. Thus, as a result, faster response times may be achieved when querying the data. In one embodiment, normalization may be performed in a manner to avoid datasets that cross physical or logical boundaries of the compute nodes of a parallel system. | 03-26-2009 |
20090089743 | Methods and Apparatus for IDE Integration of Database Changes - In one aspect, a method is provided. The method includes (1) generating code in an integrated development environment (IDE), the code including instructions for a database; and (2) receiving feedback in the IDE, the feedback relating to the instructions for the database. | 04-02-2009 |
20090100195 | Methods and Apparatus for Autonomic Compression Level Selection for Backup Environments - In one aspect, a method is provided. The method includes: (1) gathering statistics during compression of a dataset into a compressed dataset and during transfer of the compressed dataset over a network connection; and (2) optimizing compression settings based on the gathered statistics. | 04-16-2009 |
20090125611 | SHARING LOADED JAVA CLASSES AMONG A PLURALITY OF NODES - Methods, apparatus, and products are disclosed for sharing loaded Java classes among a plurality of nodes connected together for data communications using a data communication network, the plurality of nodes including an execution node and other nodes, that include: executing, by the execution node, a Java application, including identifying a Java class utilized for the Java application; determining, by the execution node, whether the Java class is already loaded on at least one of the other nodes; retrieving, by the execution node, the loaded Java class from the other nodes if the Java class is already loaded on at least one of the other nodes; and executing, by the execution node, the Java application using the loaded Java class retrieved from the other nodes. | 05-14-2009 |
20090125883 | NODE SELECTION FOR EXECUTING A JAVA APPLICATION AMONG A PLURALITY OF NODES - Methods, apparatus, and products are disclosed for node selection for executing a Java application among a plurality of nodes connected together for data communications using a data communication network, the plurality of nodes also connected to a service node, that include: tracking, by the service node, loaded Java classes currently loaded on each of the plurality of nodes; receiving, in the service node, an instruction to execute a Java application using the plurality of nodes; identifying, by the service node, Java classes utilized in executing the Java application; selecting, by the service node, one of the plurality of nodes for executing the Java application in dependence upon the loaded Java classes and the Java classes utilized in executing the Java application; and configuring, by the service node, the Java application for execution on the selected node. | 05-14-2009 |
20090182705 | Methods and Apparatus for Converting Union Commands to Union All Commands - In one aspect, a method is provided. The method includes: (1) identifying in a query of a database a union command involving data in the database that is mutually exclusive; and (2) changing the union command to a union all command. | 07-16-2009 |
20090240930 | Executing An Application On A Parallel Computer - Methods, systems, and products are disclosed for executing an application on a parallel computer including a plurality of nodes connected together through a data communications network. Each node has a plurality of processors capable of operating independently for serial processing and capable of operating symmetrically for parallel processing. The application has parallel segments for parallel processing and serial segments for serial processing. Embodiments of the invention include: booting up a first subset of the plurality of nodes in a serial processing mode; booting up a second subset of the plurality of nodes in a parallel processing mode; and executing the application on the plurality of nodes, including: migrating the application to the nodes booted up in the parallel processing mode upon encountering the parallel segments during execution, and migrating the application to the nodes booted up in the serial processing mode upon encountering the serial segments during execution. | 09-24-2009 |
20090265305 | Partial Indexes for Multi-Node Database - Embodiments of the invention enable a database spread over multiple nodes to allow each node to have different indexes over the data in tables, depending on how each node would benefit (or not benefit) from having the index(es). When a database table is spread across the nodes of a multi-node or distributed system, each node may maintain only the portion of the index relevant to that node, if doing so would improve the performance of query processing operations on that node. Further, the database may periodically redistributed across the compute nodes based on index performance. Doing so allows the database system to intelligently trade off between consuming space for the index on a node and the usefulness of having an index on that node. | 10-22-2009 |
20090265306 | Index Maintenance in a Multi-Node Database - Embodiments of the invention enable a database spread over multiple nodes to allow each node to have different indexes over the data in tables, depending on how each node would benefit (or not benefit) from having the index(es). When a database table is spread across the nodes of a multi-node or distributed system, each node may maintain only the portion of the index relevant to that node, if doing so would improve the performance of query processing operations on that node. Further, the database may periodically redistributed across the compute nodes based on index performance. Doing so allows the database system to intelligently trade off between consuming space for the index on a node and the usefulness of having an index on that node. | 10-22-2009 |
20090271588 | Migrating Program Objects in a Multi-Node Computer System - Embodiments of the invention enable application programs running across multiple compute nodes of a highly-parallel system to selectively migrate objects from one node to another. For example, when an object becomes too large, a node containing the object may migrate the object to another node, thereby freeing memory space. Whether a large object is migrated can be dependent on how frequently the object is used by the application. Because the memory used by such an object is freed for other uses by the application, overall application performance may be improved. On large parallel systems with thousands of compute nodes, even relatively small improvements in application performance an individual compute node may be magnified many times, resulting in dramatic improvements in overall application performance. | 10-29-2009 |
20090271595 | Configuring An Application For Execution On A Parallel Computer - Methods, systems, and products are disclosed for configuring an application for execution on a parallel computer that include: booting up a first subset of a plurality of nodes in a serial processing mode; booting up a second subset of the plurality of nodes in a parallel processing mode; profiling, prior to application deployment on the parallel computer, the application to identify the serial segments and the parallel segments of the application; and deploying the application for execution on the parallel computer in dependence upon the profile of the application and proximity within the data communications network of the nodes in the first subset relative to the nodes in the second subset. | 10-29-2009 |
20090271596 | Executing An Application On A Parallel Computer - Methods, systems, and products are disclosed for executing an application on a parallel computer having a plurality of nodes. Executing an application on a parallel computer includes: booting up a first subset of a plurality of nodes in a serial processing mode; booting up a second subset of the plurality of nodes in a parallel processing mode; profiling, prior to application execution, an application to identify serial segments of the application, parallel segments of the application, and application data utilized by each of the serial segments and the parallel segments; and executing the application on the plurality of nodes, including migrating, in dependence upon the profile for the application upon encountering the parallel segments during execution, only specific portions of the application and the application data from the nodes booted up in the serial processing mode to the nodes booted up in the parallel processing mode. | 10-29-2009 |
20090271775 | Optimizing Just-In-Time Compiling For A Java Application Executing On A Compute Node - Methods, systems, and products are disclosed for optimizing just-in-time (‘JIT’) compiling for a Java application executing on a compute node, the compute node having installed upon it a Java Virtual Machine (‘JVM’) capable of supporting the Java application, that include: identifying, by an application manager, a particular portion of the Java application; assigning, by the application manager, a JIT level to the particular portion of the Java application; and jitting, by the JVM installed on the compute node, the particular portion of the Java application in dependence upon the JIT level assigned to that particular portion of the Java application. | 10-29-2009 |
20090271799 | Executing A Distributed Java Application On A Plurality Of Compute Nodes - Methods, systems, and products are disclosed for executing a distributed Java application on a plurality of compute nodes. The Java application includes a plurality of jobs distributed among the plurality of compute nodes. The plurality of compute nodes are connected together for data communications through a data communication network. Each of the plurality of compute nodes has installed upon it a Java Virtual Machine (‘JVM’) capable of supporting at least one job of the Java application. Executing a distributed Java application on a plurality of compute nodes includes: tracking, by an application manager, a just-in-time (‘JIT’) compilation history for the JVMs installed on the plurality of compute nodes; and configuring, by the application manager, the plurality of jobs for execution on the plurality of compute nodes in dependence upon the JIT compilation history for the JVMs installed on the plurality of compute nodes. | 10-29-2009 |
20090271807 | Selectively Generating Program Objects on Remote Node of a Multi-Node Computer System - Embodiments of the invention enable application programs running across multiple compute nodes of a highly-parallel system to selectively migrate objects from one node to another. For example, when an object becomes too large, a node containing the object may migrate the object to another node, thereby freeing memory space. Whether a large object is migrated can be dependent on how frequently the object is used by the application. Because the memory used by such an object is freed for other uses by the application, overall application performance may be improved. On large parallel systems with thousands of compute nodes, even relatively small improvements in application performance an individual compute node may be magnified many times, resulting in dramatic improvements in overall application performance. | 10-29-2009 |
20090313636 | Executing An Application On A Parallel Computer - Methods, apparatus, and products are disclosed for executing an application on a parallel computer that include: executing, by a current compute node, a current task of the application, including producing results; determining, by the current compute node in dependence upon current network characteristics and application characteristics, whether to transfer the results to a next compute node for further processing by a next task on the next compute node or to execute the next task for further processing of the results on the current compute node; transferring, by the current compute node, the results to the next compute node for further processing by the next task on the next compute node if the determination specifies transferring the results to the next node; and executing, by the current compute node, the next task for further processing of the results if the determination specifies executing the next task on the current compute node. | 12-17-2009 |
20090319621 | Message Flow Control in a Multi-Node Computer System - Embodiments of the invention provide for controlling message flow across a parallel computer system having multiple compute nodes by selectively grouping compute nodes of such a system into node pools and assigning message flow control policies to nodes in the node pools. The message flow control policies specify logging and/or tracing activities to be performed by instances of applications running on nodes assigned to the node pools. As the application is executed, logging and/or tracing messages are generated on the compute nodes according to message flow control policies assigned to the nodes. Optionally, the message flow is analyzed, the message flow control policies are adjusted, and duplicate messages are eliminated. | 12-24-2009 |
20090319662 | Process Migration Based on Exception Handling in a Multi-Node Environment - A process on a highly distributed parallel computing system is disclosed. When a first compute node in a first pool is ready to hand-off a task to second pool for further processing, the first compute node may first determine whether a node is available in the second pool. If no node is available from the second pool, then the first compute node may begin performing a primary task assigned to the second pool of nodes, up to the point where a service available exclusively to the nodes of the second pool is required. In the interim, however, one of the nodes of the second pool may become available. Alternatively, an application program running on a compute node may be configured with an exception handling routine that catches exceptions and migrates the application to a compute node where a necessary service is available, as such exceptions occur. | 12-24-2009 |
20090320003 | Sharing Compiler Optimizations in a Multi-Node System - Embodiments of the invention enable application programs running across multiple compute nodes of a highly-parallel system to compile source code into native instructions, and subsequently share the optimizations used to compile the source code with other nodes. For example, determining what optimizations to use may consume significant processing power and memory on a node. In cases where multiple nodes exhibit similar characteristics, it is possible that these nodes may use the same set of optimizations when compiling similar pieces of code. Therefore, when one node compiles source code into native instructions, it may share the optimizations used with other similar nodes, thereby removing the burden for the other nodes to figure out which optimizations to use. Thus, while one node may suffer a performance hit for determining the necessary optimizations, other nodes may be saved from this burden by simply using the optimizations provided to them. | 12-24-2009 |
20090320008 | Sharing Compiler Optimizations in a Multi-Node System - Embodiments of the invention enable application programs running across multiple compute nodes of a highly-parallel system to compile source code into native instructions, and subsequently share the optimizations used to compile the source code with other nodes. For example, determining what optimizations to use may consume significant processing power and memory on a node. In cases where multiple nodes exhibit similar characteristics, it is possible that these nodes may use the same set of optimizations when compiling similar pieces of code. Therefore, when one node compiles source code into native instructions, it may share the optimizations used with other similar nodes, thereby removing the burden for the other nodes to figure out which optimizations to use. Thus, while one node may suffer a performance hit for determining the necessary optimizations, other nodes may be saved from this burden by simply using the optimizations provided to them. | 12-24-2009 |
20090320023 | Process Migration Based on Service Availability in a Multi-Node Environment - A process on a highly distributed parallel computing system is disclosed. When a first compute node in a first pool is ready to hand-off a task to second pool for further processing, the first compute node may first determine whether a node is available in the second pool. If no node is available from the second pool, then the first compute node may begin performing a primary task assigned to the second pool of nodes, up to the point where a service available exclusively to the nodes of the second pool is required. In the interim, however, one of the nodes of the second pool may become available. Alternatively, an application program running on a compute node may be configured with an exception handling routine that catches exceptions and migrates the application to a compute node where a necessary service is available, as such exceptions occur. | 12-24-2009 |
20100085870 | GLOBAL DETECTION OF RESOURCE LEAKS IN A MULTI-NODE COMPUTER SYSTEM - A process is disclosed for identifying and recovering from resource leaks on compute nodes of a parallel computing system. A resource monitor stores information about system resources available on a compute node in a clean state. After the compute node runs a job, the resource monitor compares the current resource availability to the clean state. If a resource leak is found, the resource monitor contacts a global resource manger to remove the resource leak. | 04-08-2010 |
20100085871 | RESOURCE LEAK RECOVERY IN A MULTI-NODE COMPUTER SYSTEM - A process is disclosed for identifying and recovering from resource leaks on compute nodes of a parallel computing system. A resource monitor stores information about system resources available on a compute node in a clean state. After the compute node runs a job, the resource monitor compares the current resource availability to the clean state. If a resource leak is found, the resource monitor contacts a global resource manger to remove the resource leak. | 04-08-2010 |
20100180024 | REDUCING OCCURRENCES OF TWO-PHASE COMMITS IN A MULTI-NODE COMPUTING SYSTEM - Techniques are disclosed for reducing the number of two-phase commits required to perform atomic transactions in a multi-node system. By monitoring atomic operations that require two-phase commit protocols, a system may identify when it would be beneficial to consolidate data onto single (or at least fewer) compute node(s). In doing so, a less compute intensive commit protocol, such as a one-phase commit protocol may be used. Moreover, in situations where data consolidation is not available, the data may be migrated to compute nodes having a closer proximity. Thus, in such cases, network response times for two-phase commits required for an atomic operation may be reduced, thereby increasing the performance of a multi-node system. | 07-15-2010 |
20100205591 | PRESENTING ENERGY CONSUMPTION INFORMATION IN AN INTEGRATED DEVELOPMENT ENVIRONMENT TOOL - Embodiments of the invention provide techniques for presenting energy consumption information in an IDE tool. In one embodiment, the IDE tool may be configured to determine energy requirements associated with specific elements of the source code, and to present graphical indications of energy requirements along with those code elements. Such energy requirements may be determined by matching code elements to a stored data structure describing energy requirements for executing various code elements. The stored data may be based on predefined standards, and/or may be based on historical measurements of energy consumption during prior instances of executing code elements on a target computer system. Additionally, developers may specify priority for compiling portions of source code, according to desired energy requirements. | 08-12-2010 |
20100205619 | ENVIRONMENT MODIFICATION IN A HYBRID NODE COMPUTING ENVIRONMENT - Embodiments of the invention provide techniques that improve resource management on a massively parallel computing system having a plurality of hybrid compute nodes. For example, a job scheduler may be provided which determines a library to link to an application based on system and user requirements. In one embodiment, the libraries may provide optimizations for job execution time, and also provide optimizations directed towards a specific processor architecture. Once the library is determined, the job scheduler may configure the environment of the application so that the application links with the optimized library during run-time. Doing so may improve overall system performance of the massively parallel computing system. | 08-12-2010 |
20120066184 | SPECULATIVE EXECUTION IN A REAL-TIME DATA ENVIRONMENT - Techniques are described for speculatively executing operations on data in a data stream in parallel in a manner that increases the efficiency of the stream-based application. In addition to executing operations in parallel, embodiments of the invention may determine whether certain results produced by the parallel operations are valid results and discard any results determined to be invalid. | 03-15-2012 |
20120109908 | ACTIVE MEMORY EXPANSION AND RDBMS META DATA AND TOOLING - Techniques are described for estimating and managing memory compression for query processing. Embodiments of the invention may generally include receiving a query to be executed, ascertaining indicatory data about the retrieved data, and selectively compressing a portion of the data in memory according to the indicatory data. In one embodiment, the amount of compression performed during each query execution is recorded and outputted to assist in adjusting the selective compression process. | 05-03-2012 |
20120110042 | DATABASE INSERTIONS IN A STREAM DATABASE ENVIRONMENT - Methods and systems for storing stream data in a stream application are disclosed. The stream application is composed from a plurality of processing elements executing on one or more compute nodes. The plurality of processing elements is communicatively coupled to a management system. The management system is configured to monitor and control operations of the plurality of processing elements. A trigger rule, which includes a trigger condition, is loaded on a selected processing element in the plurality of process elements. The stream data is then monitored at the first processing element to determine if the trigger condition relative to the stream data has occurred. The stream data is stored in a database when the trigger condition occurs. The stream data is stored in the database according to the trigger rule. | 05-03-2012 |
20120110182 | DYNAMIC PROCESSING UNIT RELOCATION IN A MULTI-NODAL ENVIRONMENT BASED ON INCOMING PHYSICAL DATA - A relocation mechanism in a multi-nodal computer environment dynamically routes processing units in a distributed computer system based on incoming physical data into the processing unit. The relocation mechanism makes an initial location decision to place a processing unit onto a node in the distributed computer system. The relocation mechanism monitors physical data flowing into a processing unit or node and dynamically relocates the processing unit to another type of node within the ‘cloud’ of nodes based on the type of physical data or pattern of data flowing into the processing unit. The relocation mechanism may use one or more rules with criteria for different data types observed in the data flow to optimize when to relocate the processing units. | 05-03-2012 |
20120124002 | REDUCING STORAGE COSTS ASSOCIATED WITH BACKING UP A DATABASE - Techniques are disclosed for backing up and/or restoring data. In one embodiment, a request is received to back up at least a first unit of data stored in a database. Upon determining that the first unit of data is at least partially derived from a second unit of data stored in the database, a backup may be generated that includes less than all of the first unit of data. Subsequently, the first unit of data may be fully restored from the backup. | 05-17-2012 |
20120124016 | ACTIVE MEMORY EXPANSION IN A DATABASE ENVIRONMENT TO QUERY NEEDED/UNEEDED RESULTS - Techniques are described for estimating and managing memory compression for request processing. Embodiments of the invention may generally include receiving a request for data, determining if the requested data contains any compressed data, and sending the requesting entity only the uncompressed data. A separate embodiment generally includes receiving a request for data, determining if the requested data contains any compressed data, gathering uncompression criteria about the requested data, and using the uncompression criteria to selectively determine what portion of the compressed data to uncompress. | 05-17-2012 |
20120131108 | INTELLIGENT OFFLOAD OF WORK TO HANDLE PEAK ACTIVITY IN AN ENTERPRISE EMAIL SYSTEM - A method and system for sending a message are disclosed. The method involves receiving a message at a mail server and determining that a load of the mail server exceeds a threshold. If it is determined that the load of the mail server exceeds a threshold, then the method involves determining whether the message needs to be sent immediately. If it is determined that the message does not need to be sent immediately, then the method involves delaying sending the message. | 05-24-2012 |
20120136850 | MEMORY USAGE QUERY GOVERNOR - Techniques for managing query execution based on memory usage using memory compression. Embodiments may receive a query from a requesting entity and estimate an amount of memory required to execute the query. Upon determining that executing the query would consume an impermissible amount of memory, embodiments may optimize the query by adjusting an amount of memory compression used in executing the query. The optimized query may then be executed to produce a set of query results, which may then be returned to the requesting entity. | 05-31-2012 |
20120137178 | STREAM BASED DEBUGGING TECHNIQUES - Techniques are described for debugging a processing element (or elements) in a stream based database application in a manner that reduces the impact of debugging the processing element (or elements) on the overall running environment by selectively fusing (or un-fusing) processing elements running on a group of compute nodes. In addition to fusing and un-fusing processing elements or otherwise modifying a state of the stream application, a debugging application and stream manager may modify data flows within the application stream in a variety of ways to minimize any disruption resulting from a debugging session. | 05-31-2012 |
20120150806 | NORMALIZING DATA ON DATABASE RESTORE - Techniques for normalizing a database as part of a database restore. Embodiments may receive a database restore request indicating a previous state to restore a database to. Responsive to the request, embodiments may restore the database to the previous state using backup data associated with the previous state, and normalize the restored database using historical database usage data based on one or more previous database operations. | 06-14-2012 |
20120150895 | MAXIMUM ALLOWABLE RUNTIME QUERY GOVERNOR - Techniques for managing query execution using memory compression based on maximum allowable runtimes. Embodiments may receive a query from a requesting entity and calculate an estimated execution time for executing the query. Embodiments may further determine a maximum allowable runtime for the query. An amount of memory compression for use in processing the query may then be adjusted, based on the estimated execution time and the maximum allowable runtime. The query may then be executed using the adjusted memory compression rate to produce a set of query results, which may then be returned to the requesting entity. | 06-14-2012 |
20120179809 | APPLICATION MONITORING IN A STREAM DATABASE ENVIRONMENT - Methods and systems for monitoring a stream application are disclosed. The stream application is composed from a plurality of processing elements executing on one or more compute nodes. A graphical user interface display presents a user with at least a portion of an operator graph in a running stream application. The operator graph represents the plurality of processing elements, and links between processing elements, corresponding to a flow of data tuples through the stream application. A monitoring application then monitors user interactions with the presentation of the portion of the operator graph on the graphical user interface display and identifies at least a first modification to the stream application based on a processing state of the stream application and the monitored user interactions. | 07-12-2012 |
20120180058 | Configuring An Application For Execution On A Parallel Computer - Methods, systems, and products are disclosed for configuring an application for execution on a parallel computer that include: booting up a first subset of a plurality of nodes in a serial processing mode; booting up a second subset of the plurality of nodes in a parallel processing mode; profiling, prior to application deployment on the parallel computer, the application to identify the serial segments and the parallel segments of the application; and deploying the application for execution on the parallel computer in dependence upon the profile of the application and proximity within the data communications network of the nodes in the first subset relative to the nodes in the second subset. | 07-12-2012 |
20120192193 | Executing An Application On A Parallel Computer - Methods, systems, and products are disclosed for executing an application on a parallel computer having a plurality of nodes. Executing an application on a parallel computer includes: booting up a first subset of a plurality of nodes in a serial processing mode; booting up a second subset of the plurality of nodes in a parallel processing mode; profiling, prior to application execution, an application to identify serial segments of the application, parallel segments of the application, and application data utilized by each of the serial segments and the parallel segments; and executing the application on the plurality of nodes, including migrating, in dependence upon the profile for the application upon encountering the parallel segments during execution, only specific portions of the application and the application data from the nodes booted up in the serial processing mode to the nodes booted up in the parallel processing mode. | 07-26-2012 |
20120203763 | DATABASE QUERY OPTIMIZER THAT TAKES NETWORK CHOICE INTO CONSIDERATION - In a networked computer system that includes multiple nodes and multiple networks interconnecting the nodes, a database query optimizer takes network choice into consideration when optimizing a query. The query optimizer logs historical information for queries that includes network information. A network monitor determines network characteristics of the multiple networks. The query optimizer then selects a network for a query based on the network characteristics, and optionally based on the historical information as well. The result is a query optimizer that takes network choice into consideration, thereby providing a query that is optimized according to the characteristics of the networks. | 08-09-2012 |
20120210330 | Executing A Distributed Java Application On A Plurality Of Compute Nodes - Methods, systems, and products are disclosed for executing a distributed Java application on a plurality of compute nodes. The Java application includes a plurality of jobs distributed among the plurality of compute nodes. The plurality of compute nodes are connected together for data communications through a data communication network. Each of the plurality of compute nodes has installed upon it a Java Virtual Machine (‘JVM’) capable of supporting at least one job of the Java application. Executing a distributed Java application on a plurality of compute nodes includes: tracking, by an application manager, a just-in-time (‘JIT’) compilation history for the JVMs installed on the plurality of compute nodes; and configuring, by the application manager, the plurality of jobs for execution on the plurality of compute nodes in dependence upon the JIT compilation history for the JVMs installed on the plurality of compute nodes. | 08-16-2012 |
20120215764 | ENERGY USAGE AND PERFORMANCE QUERY GOVERNOR - Techniques are described for managing query execution using additional performance capabilities from a set of system resources. Embodiments may receive a query and calculate a first estimated execution time for processing the query using a first amount of performance capabilities from a first set of system resources. If embodiments determine that the first estimated execution time exceeds a threshold amount of time, a second estimated execution time is then calculated for processing the query using a second amount of performance capabilities from the first set of system resources. Here, the second amount of performance capabilities is in addition to the first amount of performance capabilities. If the second estimated execution time does not exceed the threshold amount of time, the query is executed using the second amount of performance capabilities from the first set of system resources. | 08-23-2012 |
20120215934 | ESTIMATING LOAD SHED DATA IN STREAMING DATABASE APPLICATIONS - Techniques are disclosed for processing data streams containing data tuples, where some of the data tuples are load shed. Load shedding refers to a process of selectively discarding some data tuples, e.g., when the amount of received data becomes too overwhelming to manage. When operations are invoked that depend on the values (or count) of the load shed tuples, the value (or counts) of the load shed tuples may be used to perform such operations. For example, and aggregation operation may return the sum, average, mean and/or variance associated with a plurality of tuples processed by a node of the stream application. | 08-23-2012 |
20120221886 | DISTRIBUTED JOB SCHEDULING IN A MULTI-NODAL ENVIRONMENT - Techniques are described for decentralizing a job scheduler in a distributed system environment. Embodiments of the invention may generally include receiving a job to be performed by a multi-nodal system which includes a cluster of nodes. Instead of a centralized job scheduler assigning the job to a node or nodes, each node has a job scheduler which scans a shared-file system to determine what job to execute on the node. In a job requiring multiple nodes, one of the nodes that joined the multi-nodal job becomes the primary node which then assigns and monitors the job's execution on the multiple nodes. | 08-30-2012 |
20120246509 | GLOBAL DETECTION OF RESOURCE LEAKS IN A MULTI-NODE COMPUTER SYSTEM - A process is disclosed for identifying and recovering from resource leaks on compute nodes of a parallel computing system. A resource monitor stores information about system resources available on a compute node in a clean state. After the compute node runs a job, the resource monitor compares the current resource availability to the clean state. If a resource leak is found, the resource monitor contacts a global resource manger to remove the resource leak. | 09-27-2012 |
20130074078 | CALL STACK AGGREGATION AND DISPLAY - A call stack aggregation mechanism aggregates call stacks from multiple threads of execution and displays the aggregated call stack to a user in a manner that visually distinguishes between the different call stacks in the aggregated call stack. The multiple threads of execution may be on the same computer system or on separate computer systems. | 03-21-2013 |
20130080400 | SPECULATIVE EXECUTION IN A REAL-TIME DATA ENVIRONMENT - Techniques are described for speculatively executing operations on data in a data stream in parallel in a manner that increases the efficiency of the stream-based application. In addition to executing operations in parallel, embodiments of the invention may determine whether certain results produced by the parallel operations are valid results and discard any results determined to be invalid. | 03-28-2013 |
20130080410 | ACTIVE MEMORY EXPANSION IN A DATABASE ENVIRONMENT TO QUERY NEEDED/UNEEDED RESULTS - Techniques are described for estimating and managing memory compression for request processing. Embodiments of the invention may generally include receiving a request for data, determining if the requested data contains any compressed data, and sending the requesting entity only the uncompressed data. A separate embodiment generally includes receiving a request for data, determining if the requested data contains any compressed data, gathering uncompression criteria about the requested data, and using the uncompression criteria to selectively determine what portion of the compressed data to uncompress. | 03-28-2013 |
20130080655 | ESTIMATING LOAD SHED DATA IN STREAMING DATABASE APPLICATIONS - Techniques are disclosed for processing data streams containing data tuples, where some of the data tuples are load shed. Load shedding refers to a process of selectively discarding some data tuples, e.g., when the amount of received data becomes too overwhelming to manage. When operations are invoked that depend on the values (or count) of the load shed tuples, the value (or counts) of the load shed tuples may be used to perform such operations. For example, and aggregation operation may return the sum, average, mean and/or variance associated with a plurality of tuples processed by a node of the stream application. | 03-28-2013 |
20130080824 | DISTRIBUTED JOB SCHEDULING IN A MULTI-NODAL ENVIRONMENT - Techniques are described for decentralizing a job scheduler in a distributed system environment. Embodiments of the invention may generally include receiving a job to be performed by a multi-nodal system which includes a cluster of nodes. Instead of a centralized job scheduler assigning the job to a node or nodes, each node has a job scheduler which scans a shared-file system to determine what job to execute on the node. In a job requiring multiple nodes, one of the nodes that joined the multi-nodal job becomes the primary node which then assigns and monitors the job's execution on the multiple nodes. | 03-28-2013 |
20130091496 | OPTIMIZING JUST-IN-TIME COMPILING FOR A JAVA APPLICATION EXECUTING ON A COMPUTE NODE - Methods, systems, and products are disclosed for optimizing just-in-time (‘JIT’) compiling for a Java application executing on a compute node, the compute node having installed upon it a Java Virtual Machine (‘JVM’) capable of supporting the Java application, that include: identifying, by an application manager, a particular portion of the Java application; assigning, by the application manager, a JIT level to the particular portion of the Java application; and jitting, by the JVM installed on the compute node, the particular portion of the Java application in dependence upon the JIT level assigned to that particular portion of the Java application. | 04-11-2013 |
20130097323 | DYNAMIC PROCESSING UNIT RELOCATION IN A MULTI-NODAL ENVIRONMENT BASED ON INCOMING PHYSICAL DATA - A relocation mechanism in a multi-nodal computer environment dynamically routes processing units in a distributed computer system based on incoming physical data into the processing unit. The relocation mechanism makes an initial location decision to place a processing unit onto a node in the distributed computer system. The relocation mechanism monitors physical data flowing into a processing unit or node and dynamically relocates the processing unit to another type of node within the ‘cloud’ of nodes based on the type of physical data or pattern of data flowing into the processing unit. The relocation mechanism may use one or more rules with criteria for different data types observed in the data flow to optimize when to relocate the processing units. | 04-18-2013 |
20130159287 | DATABASE QUERY OPTIMIZER THAT TAKES NETWORK CHOICE INTO CONSIDERATION - In a networked computer system that includes multiple nodes and multiple networks interconnecting the nodes, a database query optimizer takes network choice into consideration when optimizing a query. The query optimizer logs historical information for queries that includes network information. A network monitor determines network characteristics of the multiple networks. The query optimizer then selects a network for a query based on the network characteristics, and optionally based on the historical information as well. The result is a query optimizer that takes network choice into consideration, thereby providing a query that is optimized according to the characteristics of the networks. | 06-20-2013 |
20130159745 | OPTIMIZING POWER CONSUMPTION AND PERFORMANCE IN A HYBRID COMPUTER ENVIRONMENT - A method for optimizing efficiency and power consumption in a hybrid computer system is disclosed. The hybrid computer system may comprise one or more front-end nodes connected to a multi-node computer system. Portions of an application may be offloaded from the front-end nodes to the multi-node computer system. By building historical profiles of the applications running on the multi-node computer system, the system can analyze the trade offs between power consumption and performance. For example, if running the application on the multi-node computer system cuts the run time by 5% but increases power consumption by 20% it may be more advantageous to simply run the entire application on the front-end. | 06-20-2013 |
20130159983 | OPTIMIZING JUST-IN-TIME COMPILING FOR A JAVA APPLICATION EXECUTING ON A COMPUTE NODE - Methods, systems, and products are disclosed for optimizing just-in-time (‘JIT’) compiling for a Java application executing on a compute node, the compute node having installed upon it a Java Virtual Machine (‘JVM’) capable of supporting the Java application, that include: identifying, by an application manager, a particular portion of the Java application; assigning, by the application manager, a JIT level to the particular portion of the Java application; and jitting, by the JVM installed on the compute node, the particular portion of the Java application in dependence upon the JIT level assigned to that particular portion of the Java application. | 06-20-2013 |
20130166532 | STRING SEARCHES IN A COMPUTER DATABASE - A query optimizer improves string searches in a computer database that sequentially search for a string in a database record. The query optimizer optimizes the query to search records of a database from a specified start position other than the beginning of the record. The specified start position of the search may be determined by from historical information stored from previous searches. Alternatively, the query optimizer determines the specified start position of the search based on an overriding starting position provided by a system administrator. The query optimizer may also direct that the database record be reorganized to more efficiently search for strings in the record. | 06-27-2013 |
20130166533 | STRING SEARCHES IN A COMPUTER DATABASE - A query optimizer improves string searches in a computer database that sequentially search for a string in a database record. The query optimizer optimizes the query to search records of a database from a specified start position other than the beginning of the record. The specified start position of the search may be determined by from historical information stored from previous searches. Alternatively, the query optimizer determines the specified start position of the search based on an overriding starting position provided by a system administrator. The query optimizer may also direct that the database record be reorganized to more efficiently search for strings in the record. | 06-27-2013 |
20130173543 | MATERIALIZED QUERY TABLE JOURNALING IN A COMPUTER DATABASE SYSTEM - An apparatus and method utilize MQTs in a more efficient manner in a high availability computer database to improve database performance and utility. In preferred embodiments, an MQT control file indicates whether journal entries for specific tables are to be propagated to replicated databases residing on other computer servers. In other embodiments, the MQT control file includes metrics that are used to control when the propagation is turned on and off. | 07-04-2013 |
20130173544 | MATERIALIZED QUERY TABLE JOURNALING IN A COMPUTER DATABASE SYSTEM - An apparatus and method utilize MQTs in a more efficient manner in a high availability computer database to improve database performance and utility. In preferred embodiments, an MQT control file indicates whether journal entries for specific tables are to be propagated to replicated databases residing on other computer servers. In other embodiments, the MQT control file includes metrics that are used to control when the propagation is turned on and off. | 07-04-2013 |
20130179432 | QUERY EXECUTION AND OPTIMIZATION WITH AUTONOMIC ERROR RECOVERY FROM NETWORK FAILURES IN A PARALLEL COMPUTER SYSTEM WITH MULTIPLE NETWORKS - A database query execution monitor determines if an network error or low performance condition exists and then where possible modifies the query. The query execution monitor then determines an alternate query execution plan to continue execution of the query. The query optimizer can re-optimize the query to use a different network or node. Thus, the query execution monitor allows autonomic error recovery for network failures using an alternate query execution. The alternate query execution could also be determined at the initial optimization time and then this alternate plan used to execute a query in the case of a particular network failure. | 07-11-2013 |
20130185278 | QUERY OPTIMIZATION IN A PARALLEL COMPUTER SYSTEM TO REDUCE NETWORK TRAFFIC - A database query optimizer optimizes a query that uses multiple networks. The query optimizer optimizes a query to reduce network traffic on a network or node that is overloaded or above an established parameter in a node/network attribute table. The query optimization to reduce network traffic may result in a sub-optimal query in other respects such as execution time. The result is a query optimizer that rewrites or optimizes a query to execute on multiple nodes or networks to reduce traffic on a network or node according to the loading characteristics and assigned attributes of a node or network. | 07-18-2013 |
20130185279 | QUERY OPTIMIZATION IN A PARALLEL COMPUTER SYSTEM WITH MULTIPLE NETWORKS - A database query optimizer optimizes a query that uses multiple networks. The database query optimizer optimizes a query that uses multiple networks to satisfy the query by splitting the query execution to use multiple networks. Thus, the query optimizer rewrites or optimizes a query to execute on multiple nodes or networks to more efficiently execute the query and reduce network traffic on a network. The query optimizer uses plan cache statistics to determine whether to use multiple networks to optimize the query. | 07-18-2013 |
20130185283 | QUERY OPTIMIZATION IN A PARALLEL COMPUTER SYSTEM WITH MULTIPLE NETWORKS - A database query optimizer optimizes a query that uses multiple networks. The database query optimizer optimizes a query that uses multiple networks to satisfy the query by splitting the query execution to use multiple networks. Thus, the query optimizer rewrites or optimizes a query to execute on multiple nodes or networks to more efficiently execute the query and reduce network traffic on a network. The query optimizer uses plan cache statistics to determine whether to use multiple networks to optimize the query. | 07-18-2013 |
20130185301 | INSERTING DATA INTO AN IN-MEMORY DISTRIBUTED NODAL DATABASE - A database loader loads data to an in-memory database across multiple nodes in a parallel computing system. The database loader uses SQL flags, historical information gained from monitoring prior query execution times and patterns, and node and network configuration to determine how to effectively cluster data attributes across multiple nodes. The database loader may also allow a system administrator to force placement of database structures in particular nodes. | 07-18-2013 |
20130185302 | INSERTING DATA INTO AN IN-MEMORY DISTRIBUTED NODAL DATABASE - A database loader loads data to an in-memory database across multiple nodes in a parallel computing system. The database loader uses SQL flags, historical information gained from monitoring prior query execution times and patterns, and node and network configuration to determine how to effectively cluster data attributes across multiple nodes. The database loader may also allow a system administrator to force placement of database structures in particular nodes. | 07-18-2013 |
20130185423 | DYNAMIC DISTRIBUTION OF NODES ON A MULTI-NODE COMPUTER SYSTEM - I/O nodes are dynamically distributed on a multi-node computing system. An I/O configuration mechanism located in the service node of a multi-node computer system controls the distribution of the I/O nodes. The I/O configuration mechanism uses job information located in a job record to initially configure the I/O node distribution. The I/O configuration mechanism further monitors the I/O performance of the executing job to then dynamically adjusts the I/O node distribution based on the I/O performance of the executing job. | 07-18-2013 |
20130185588 | QUERY EXECUTION AND OPTIMIZATION WITH AUTONOMIC ERROR RECOVERY FROM NETWORK FAILURES IN A PARALLEL COMPUTER SYSTEM WITH MULTIPLE NETWORKS - A database query execution monitor determines if a network error or low performance condition exists and then where possible modifies the query. The query execution monitor then determines an alternate query execution plan to continue execution of the query. The query optimizer can re-optimize the query to use a different network or node. Thus, the query execution monitor allows autonomic error recovery for network failures using an alternate query execution. The alternate query execution could also be determined at the initial optimization time and then this alternate plan used to execute a query in the case of a particular network failure. | 07-18-2013 |
20130185731 | DYNAMIC DISTRIBUTION OF NODES ON A MULTI-NODE COMPUTER SYSTEM - I/O nodes are dynamically distributed on a multi-node computing system. An I/O configuration mechanism located in the service node of a multi-node computer system controls the distribution of the I/O nodes. The I/O configuration mechanism uses job information located in a job record to initially configure the I/O node distribution. The I/O configuration mechanism further monitors the I/O performance of the executing job to then dynamically adjusts the I/O node distribution based on the I/O performance of the executing job. | 07-18-2013 |
20130191352 | DYNAMIC PARTIAL UNCOMPRESSION OF A DATABASE TABLE - A database dynamic partial uncompression mechanism determines when to dynamically uncompress one or more compressed portions of a database table that also includes uncompressed portions. A query may include an express term that specifies whether or not to skip compressed portions. In addition, a query may include associated information that specifies whether or not to skip compressed portions, and one or more thresholds that may be used to determine if the system is too busy to perform uncompression. A display mechanism may also determine whether or not to display compressed portions. The uncompression may occur at the database server or at a client. The database dynamic partial uncompression mechanism thus performs dynamic uncompression in a way that preferably uncompresses one or more compressed portions of a partially compressed database table only when the compressed portions satisfy a query and/or need to be displayed. | 07-25-2013 |
20130191353 | DYNAMIC PARTIAL UNCOMPRESSION OF A DATABASE TABLE - A database dynamic partial uncompression mechanism determines when to dynamically uncompress one or more compressed portions of a database table that also includes uncompressed portions. A query may include an express term that specifies whether or not to skip compressed portions. In addition, a query may include associated information that specifies whether or not to skip compressed portions, and one or more thresholds that may be used to determine if the system is too busy to perform uncompression. A display mechanism may also determine whether or not to display compressed portions. The uncompression may occur at the database server or at a client. The database dynamic partial uncompression mechanism thus performs dynamic uncompression in a way that preferably uncompresses one or more compressed portions of a partially compressed database table only when the compressed portions satisfy a query and/or need to be displayed. | 07-25-2013 |
20130191369 | QUERY OPTIMIZATION IN A PARALLEL COMPUTER SYSTEM TO REDUCE NETWORK TRAFFIC - A database query optimizer optimizes a query that uses multiple networks. The query optimizer optimizes a query to reduce network traffic on a network or node that is overloaded or above an established parameter in a node/network attribute table. The query optimization to reduce network traffic may result in a sub-optimal query in other respects such as execution time. The result is a query optimizer that rewrites or optimizes a query to execute on multiple nodes or networks to reduce traffic on a network or node according to the loading characteristics and assigned attributes of a node or network. | 07-25-2013 |
20130191504 | OPTIMIZED PEER-TO-PEER FILE TRANSFERS ON A MULTI-NODE COMPUTER SYSTEM - A method and apparatus performs peer-to-peer file transfers on a High Performance Computing (HPC) cluster such as a Beowulf cluster. A peer-to-peer file tracker (PPFT) allows operating system, application and data files to be moved from a pre-loaded node to another node of the HPC cluster. A peer-to-peer (PTP) client is loaded into the nodes to facilitate PTP file transfers to reduce loading on networks, network switches and file servers to reduce the time needed to load the nodes with these files to increase overall efficiency of the multi-node computing system. The selection of the nodes participating in file transfers can be based on network topology, network utilization, job status and predicted network/computer utilization. This selection can be dynamic, changing during the file transfers as resource conditions change. The policies used to choose resources can be configured by an administrator. | 07-25-2013 |
20130191840 | RESOURCE ALLOCATION BASED ON ANTICIPATED RESOURCE UNDERUTILIZATION IN A LOGICALLY PARTITIONED MULTI-PROCESSOR ENVIRONMENT - A method, apparatus and program product for allocating resources in a logically partitioned multiprocessor environment. Resource usage is monitored in a first logical partition in the logically partitioned multiprocessor environment to predict a future underutilization of a resource in the first logical partition. An application executing in a second logical partition in the logically partitioned multiprocessor environment is configured for execution in the second logical partition with an assumption made that at least a portion of the underutilized resource is allocated to the second logical partition during at least a portion of the predicted future underutilization of the resource. | 07-25-2013 |
20130198343 | OPTIMIZED PEER-TO-PEER FILE TRANSFERS ON A MULTI-NODE COMPUTER SYSTEM - A method and apparatus performs peer-to-peer file transfers on a High Performance Computing (HPC) cluster such as a Beowulf cluster. A peer-to-peer file tracker (PPFT) allows operating system, application and data files to be moved from a pre-loaded node to another node of the HPC cluster. A peer-to-peer (PTP) client is loaded into the nodes to facilitate PTP file transfers to reduce loading on networks, network switches and file servers to reduce the time needed to load the nodes with these files to increase overall efficiency of the multi-node computing system. The selection of the nodes participating in file transfers can be based on network topology, network utilization, job status and predicted network/computer utilization. This selection can be dynamic, changing during the file transfers as resource conditions change. The policies used to choose resources can be configured by an administrator. | 08-01-2013 |
20130262436 | OBTAINING PARTIAL RESULTS FROM A DATABASE QUERY - A database query governor determines when a query cannot be executed within a defined time threshold, but still executes the query or some variant of the query so partial results for the query may be returned to the user after executing for less than the defined time threshold, instead of an error message indicating the query was not executed at all. The partial results provide information to the user that may be sufficient for some applications, or may indicate to the user how the query could be modified to run in less time. | 10-03-2013 |
20140059556 | ENVIRONMENT BASED NODE SELECTION FOR WORK SCHEDULING IN A PARALLEL COMPUTING SYSTEM - A method, apparatus, and program product manage scheduling of a plurality of jobs in a parallel computing system of the type that includes a plurality of computing nodes and is disposed in a data center. The plurality of jobs are scheduled for execution on a group of computing nodes from the plurality of computing nodes based on the physical locations of the plurality of computing nodes in the data center. The group of computing nodes is further selected so as to distribute at least one of a heat load and an energy load within the data center. The plurality of jobs may be additionally scheduled based upon an estimated processing requirement for each job of the plurality of jobs. | 02-27-2014 |
20140289186 | MANAGING ATTRIBUTES IN STREM PROCESSING USING A CACHE - A method and system for managing attributes in a streaming application is disclosed. The system may contain a receiving stream operator that is communicatively coupled with a stream manager. The receiving stream operator may have a capability of storing a selected attribute and creating one or more unique identifiers. The system may contain a cache communicatively coupled with one or more stream operators. The cache may have a capability of storing the selected attributes. The system may also have a retrieving stream operator communicatively coupled with the stream manager. The retrieving stream operator may have a capability of using the unique identifier to access the selected attribute. | 09-25-2014 |
20140289240 | MANAGING ATTRIBUTES IN STREAM PROCESSING - A method and system for managing attributes in a streaming application is disclosed. The system may have a stream manager communicatively coupled with processing elements for tracking a stream of tuples. The system may also have a first stream operator communicatively coupled with the stream manager and capable of receiving the stream of tuples, wherein the first stream operator selects the selected attribute of the first tuple and assigns a first identifier to the selected attribute. The system may also have a second stream operator communicatively coupled with the stream manager and capable of receiving the stream of tuples, and capable of replacing the selected attribute in the second tuple with a second identifier provided by the first stream operator. The system may also have an identifier table communicatively coupled with the stream manager and the first and second stream operator, wherein the identifier table includes identifiers for selected tuples. | 09-25-2014 |