Patent application number | Description | Published |
20080276080 | METHODS FOR STORING BRANCH INFORMATION IN AN ADDRESS TABLE OF A PROCESSOR - Methods for storing branch information in an address table of a processor are disclosed. A processor of the disclosed embodiments may generally include an instruction fetch unit connected to an instruction cache, a branch execution unit, and an address table being connected to the instruction fetch unit and the branch execution unit. The address table may generally be adapted to store a plurality of entries with each entry of the address table being adapted to store a base address and a base instruction tag. In a further embodiment, the branch execution unit may be adapted to determine the address of a branch instruction having an instruction tag based on the base address and the base instruction tag of an entry of the address table associated with the instruction tag. In some embodiments, the address table may further be adapted to store branch information. | 11-06-2008 |
20110213951 | Storing Branch Information in an Address Table of a Processor - Methods for storing branch information in an address table of a processor are disclosed. A processor of the disclosed embodiments may generally include an instruction fetch unit connected to an instruction cache, a branch execution unit, and an address table being connected to the instruction fetch unit and the branch execution unit. The address table may generally be adapted to store a plurality of entries with each entry of the address table being adapted to store a base address and a base instruction tag. In a further embodiment, the branch execution unit may be adapted to determine the address of a branch instruction having an instruction tag based on the base address and the base instruction tag of an entry of the address table associated with the instruction tag. In some embodiments, the address table may further be adapted to store branch information. | 09-01-2011 |
20110314259 | OPERATING A STACK OF INFORMATION IN AN INFORMATION HANDLING SYSTEM - A pointer is for pointing to a next-to-read location within a stack of information. For pushing information onto the stack: a value is saved of the pointer, which points to a first location within the stack as being the next-to-read location; the pointer is updated so that it points to a second location within the stack as being the next-to-read location; and the information is written for storage at the second location. For popping the information from the stack: in response to the pointer, the information is read from the second location as the next-to-read location; and the pointer is restored to equal the saved value so that it points to the first location as being the next-to-read location. | 12-22-2011 |
20120005462 | Hardware Assist for Optimizing Code During Processing - A method, data processing system, and computer program product for obtaining information about instructions. Instructions are processed. In response to processing a branch instruction in the instructions, a determination is made as to whether a result from processing the branch instruction follows a prediction of whether a branch is predicted to occur for the branch instruction. In response to the result following the prediction, the branch instruction is added to a current segment in a trace. In response to an absence of the result following the prediction, the branch instruction is added to the current segment in the trace and a first new segment and a second new segment are created. The first new segment includes a first branch instruction reached in the instructions from following the prediction. The second new segment includes a second branch instruction in the instructions reached from not following the prediction. | 01-05-2012 |
20120278595 | DETERMINING EACH STALL REASON FOR EACH STALLED INSTRUCTION WITHIN A GROUP OF INSTRUCTIONS DURING A PIPELINE STALL - During a pipeline stall in an out of order processor, until a next to complete instruction group completes, a monitoring unit receives, from a completion unit of a processor, a next to finish indicator indicating the finish of an oldest previously unfinished instruction from among a plurality of instructions of a next to complete instruction group. The monitoring unit receives, from a plurality of functional units of the processor, a plurality of finish reports including completion reasons for a plurality of separate instructions. The monitoring unit determines at least one stall reason from among multiple stall reasons for the oldest instruction from a selection of completion reasons from a selection of finish reports aligned with the next to finish indicator from among the plurality of finish reports. Once the monitoring unit receives a complete indicator from the completion unit, indicating the completion of the next to complete instruction group, the monitoring unit stores each determined stall reason aligned with each next to finish indicator in memory. | 11-01-2012 |
20130073833 | REDUCING STORE-HIT-LOADS IN AN OUT-OF-ORDER PROCESSOR - A technique for reducing store-hit-loads in an out-of-order processor includes storing a store address of a store instruction associated with a store-hit-load (SHL) pipeline flush in an SHL entry. In response to detecting another SHL pipeline flush for the store address, a current count associated with the SHL entry is updated. In response to the current count associated with the SHL entry reaching a first terminal count, a dependency for the store instruction is created such that execution of a younger load instruction with a load address that overlaps the store address stalls until the store instruction executes. | 03-21-2013 |
20140101416 | DETERMINING EACH STALL REASON FOR EACH STALLED INSTRUCTION WITHIN A GROUP OF INSTRUCTIONS DURING A PIPELINE STALL - During a pipeline stall in an out of order processor, until a next to complete instruction group completes, a monitoring unit receives, from a completion unit of a processor, a next to finish indicator indicating the finish of an oldest previously unfinished instruction from among a plurality of instructions of a next to complete instruction group. The monitoring unit receives, from a plurality of functional units of the processor, a plurality of finish reports including completion reasons for a plurality of separate instructions. The monitoring unit determines at least one stall reason from among multiple stall reasons for the oldest instruction from a selection of completion reasons from a selection of finish reports aligned with the next to finish indicator from among the plurality of finish reports. Once the monitoring unit receives a complete indicator from the completion unit, indicating the completion of the next to complete instruction group, the monitoring unit stores each determined stall reason aligned with each next to finish indicator in memory. | 04-10-2014 |
20140298105 | IDENTIFYING AND TAGGING BREAKPOINT INSTRUCTIONS FOR FACILITATION OF SOFTWARE DEBUG - A processor stores an address of a first instruction of a first instruction set into a first register. The processor determines that a first instruction set location of the first instruction address matches a breakpoint instruction set location of a breakpoint instruction address stored in a second register, wherein the second register includes a state bit. The processor retrieves the first instruction. The processor determines that a breakpoint instruction offset of the breakpoint instruction address identifies the first instruction as the breakpoint. The processor sets the state bit of the second register. The processor removes the first instruction based on the state bit being set and then re-retrieves the first instruction. The processor tags the first instruction and generates an interrupt based on either the tagged first instruction being next to completion or the tagged first instruction being completed. | 10-02-2014 |
20140298106 | IDENTIFYING AND TAGGING BREAKPOINT INSTRUCTIONS FOR FACILITATION OF SOFTWARE DEBUG - A processor stores an address of a first instruction of a first instruction set into a first register. The processor determines that a first instruction set location of the first instruction address matches a breakpoint instruction set location of a breakpoint instruction address stored in a second register, wherein the second register includes a state bit. The processor retrieves the first instruction. The processor determines that a breakpoint instruction offset of the breakpoint instruction address identifies the first instruction as the breakpoint. The processor sets the state bit of the second register. The processor removes the first instruction based on the state bit being set and then re-retrieves the first instruction. The processor tags the first instruction and generates an interrupt based on either the tagged first instruction being next to completion or the tagged first instruction being completed. | 10-02-2014 |
20150032997 | TRACKING LONG GHV IN HIGH PERFORMANCE OUT-OF-ORDER SUPERSCALAR PROCESSORS - Tracking global history vector in high performance out of order superscalar processors, in one aspect, may comprise providing a shift register storing global history vector that stores branch predictions and outcomes. A counter is maintained to determine a number of bits to shift the shift register to recover branch history. In another aspect, the global history vector may be implemented with a circular buffer structure. Youngest and oldest pointers to the circular buffer are maintained and used in recovery. | 01-29-2015 |
20150046690 | Techinques for selecting a predicted indirect branch address from global and local caches - A technique for branch target prediction includes storing, based on an instruction fetch address for a group of fetched instructions, first predicted targets for first indirect branch instructions in respective entries of a local count cache. Second predicted targets for second indirect branch instructions are stored in respective entries of a global count cache, based on the instruction fetch address and a global history vector for the instruction fetch address. One of the local count cache and the global count cache is selected to provide a selected predicted target for an indirect branch instruction in the group of fetched instructions. | 02-12-2015 |
20150212797 | RADIX SORT ACCELERATION USING CUSTOM ASIC - An information processing system, computer readable storage medium, and method for accelerated radix sort processing of data elements in an array in memory. The information processing system stores an array of data elements in a buffer memory in an application specific integrated circuit radix sort accelerator. The array has a head end and a tail end. The system radix sort processing, with a head processor, data elements starting at the head end of the array and progressively advancing radix sort processing data elements toward the tail end of the array. The system radix sort processing, with a tail processor, data elements starting at the tail end of the array and progressively advancing radix sort processing data elements toward the head end of the array, the tail processor radix sort processing data elements in the array contemporaneously with the head processor radix sort processing data elements in the array. | 07-30-2015 |
20150220366 | TECHNIQUES FOR MAPPING LOGICAL THREADS TO PHYSICAL THREADS IN A SIMULTANEOUS MULTITHREADING DATA PROCESSING SYSTEM - A technique for mapping logical threads to physical threads of a simultaneous multithreading (SMT) data processing system includes mapping one or more logical threads to one or more physical threads based on a selected SMT mode for a processor. In this case, respective resources for each of the one or more physical threads are predefined based on the SMT mode and an identifier of the one or more physical threads. The one or more physical threads are then executed on the processor utilizing the respective resources. | 08-06-2015 |
20150293957 | RADIX SORT ACCELERATION USING CUSTOM ASIC - An information processing system, computer readable storage medium, and method for accelerated radix sort processing of data elements in an array in memory. The information processing system stores an array of data elements in a buffer memory in an application specific integrated circuit radix sort accelerator. The array has a head end and a tail end. The system radix sort processing, with a head processor, data elements starting at the head end of the array and progressively advancing radix sort processing data elements toward the tail end of the array. The system radix sort processing, with a tail processor, data elements starting at the tail end of the array and progressively advancing radix sort processing data elements toward the head end of the array, the tail processor radix sort processing data elements in the array contemporaneously with the head processor radix sort processing data elements in the array. | 10-15-2015 |
20150363201 | PREDICTING INDIRECT BRANCHES USING PROBLEM BRANCH FILTERING AND PATTERN CACHE - Predicting indirect branch instructions may comprise predicting a target address for a fetched branch instruction. Accuracy of the target address may be tracked. The fetched branch instruction may be flagged as a problematic branch instruction based on the tracking. A pattern cache may be trained for predicting more accurate target address for the fetched branch instruction, and the next time the fetched branch instruction is again fetched, a target address may be predicted from the pattern cache. | 12-17-2015 |
Patent application number | Description | Published |
20080235182 | Isolating Database Queries for Performance Processing - Methods, systems, and computer program products are provided for isolating database queries for performance processing. Embodiments typically include presenting to a user a prioritized list of potentially poorly performing queries; receiving from the user a selection of one or more potentially poorly performing queries; and executing performance processing of the selected queries. | 09-25-2008 |
20100185639 | Autonomic Self Configuring Building-Block Database Index - Methods, systems, and computer programs for executing a query having a first and second query value; in a database having at least two composite indexes, where the first index covers a first and second column and the second index covers the second column and a third column. Methods can include executing a query over the first and third columns, by using the first query values to probe the first index to obtain all related second column values, and using the obtained column values to probe the second index for all third column values which satisfy the second query value. A temporary composite index over the first and third columns for the query values can be created. A temporary composite index can be created for a query which was unexpected. | 07-22-2010 |
20100250574 | USER DICTIONARY TERM CRITERIA CONDITIONS - Techniques are disclosed for processing an abstract query which includes a dictionary term criteria condition. The dictionary term criteria condition is used to specify a set of one or more keywords, each of which should appear in a distinct document (of a defined set of documents) in order for the condition to be satisfied. In one embodiment, a user defines an abstract query by specifying a model entity (a logical focus for a query used to identify a set of documents associated with the model entity), logical fields (specifying query conditions and information to be returned), and a set of terms for a dictionary term criteria condition. | 09-30-2010 |
20110137890 | Join Order for a Database Query - In an embodiment, a portion of the execution plan is executed to produce a portion of records in a partial result set. If a first join of a table is performed that eliminates more than a first threshold number of records from the partial result set, a determination is made whether an estimated cost of a forced primary join is less than an estimated cost of a star join. If the estimated cost of the forced primary join is less than the estimated cost of the star join, then the table is moved first in a join order in the execution plan, the portion of the records in the partial result set is discarded, and the execution is re-started with a different portion of the execution plan to produce a different portion of the records. | 06-09-2011 |
20110270822 | DATABASE QUERY GOVERNOR WITH TAILORED THRESHOLDS - A query governor intelligently sets tailored thresholds for a query accessing a computer database. The query governor preferably generates a tailored threshold for each query sent to the database for execution. The tailored threshold for the query is preferably compared to an estimated query execution time to determine whether to execute the query. The query governor uses one or more factors applied to a standard threshold to generate the tailored threshold. The factors preferably include user factors and query factors. These factors are dynamically adjusted by the query governor in an intelligent way to increase optimal use of the database. Other factors may include factors such as job priority factor, resource factor and an application factor. | 11-03-2011 |
20120047125 | EXECUTING A QUERY PLAN WITH DISPLAY OF INTERMEDIATE RESULTS - In an embodiment, a FIRSTIO execution plan is selected that has a lowest estimated execution time for finding a number of records that satisfy the query and are simultaneously viewable. An ALLIO execution plan is selected that has a lowest estimated execution time for finding all records that satisfy the query. The FIRSTIO execution plan is executed for a first time period to create a FIRSTIO result set. The ALLIO execution plan is executed for a second time period to create an ALLIO result set. The FIRSTIO result set is displayed if the FIRSTIO result set comprises more records than the ALLIO result set. The ALLIO result set is displayed if the ALLIO result set comprises more records than the FIRSTIO result set. In an embodiment, the first and second time periods expire in response to the expiration of a maximum time specified by the query. | 02-23-2012 |
20120072412 | EVALUATING EXECUTION PLAN CHANGES AFTER A WAKEUP THRESHOLD TIME - In an embodiment an execution plan for a query is created. A wakeup threshold is set proportional to an amount of time taken by the creation of the execution plan. In various embodiments, the wakeup threshold is increased by a percentage equal to one minus a percentage of free resources at a computer system, is increased inversely proportional to an amount of execution time of a previous execution of the execution plan, or is decreased proportional to a number of times the execution plan was executed. A portion of the execution plan is executed to produce a portion of rows in a result set until the wakeup threshold expires. After the wakeup threshold expires, changes to the execution plan are evaluated. | 03-22-2012 |
20120124056 | DISAPPEARING INDEX FOR MORE EFFICIENT PROCESSING OF A DATABASE QUERY - A disappearing index allows faster processing of a database query without the startup time of a prior art sparse index. The disappearing index starts as a full index but is trimmed of index values that point to a row in the table that is not selected by the query. Thus the traditional index disappears as it becomes a sparse index tailored to the query. The query is able to execute faster using the now sparse index since the target database table is not accessed for duplicate values in the base table of the query. The query optimizer may determine to use a disappearing index based on estimates of the number of duplicate values in the base table. When the query is complete, the created disappearing table may be discarded or used for other queries that match the selection of the query that created the disappearing index. | 05-17-2012 |
20120158698 | EXECUTION PLANS WITH DIFFERENT DRIVER SOURCES IN MULTIPLE THREADS - In an embodiment, a first driver source specified by a first execution plan that implements a query is designated, and a second driver source specified by a second execution plan that implements the query is designated. A portion of the first execution plan and a portion of the second execution plan are executed. If a unique identifier of a first row returned by the executing the portion of the first execution plan does not match all unique identifiers of all rows from the second driver source that were saved to a result set by the executing the portion of the second execution plan, then the first row returned by the executing the portion of the first execution plan is added to the result set and the unique identifier of the first row that was returned by the executing the portion of the first execution plan is added to a unique identifier log. | 06-21-2012 |
20120179698 | Multiple Sparse Index Intelligent Table Organization - A method, system and computer program product are provided for reorganizing a database table according to multiple sparse indexes, wherein the reorganized table has superior I/O performance attributes versus the original table. More specifically, the table is reorganized such that random I/O is minimized by more tightly grouping rows in the table associated with each of the referencing sparse indexes together. This enables more associated rows from a given table relevant to a sparse index to be read into RAM for a given I/O operation. | 07-12-2012 |
20120330993 | CONTACT RECOMMENDATION SYSTEM FOR A USER COMMUNICATION - Techniques are described for allowing a first user to efficiently send contact information to a second user using a user communication of a messaging application such as email programs, instant messaging programs, social media websites, or chat rooms. The messaging application may maintain a name database that stores names that are relevant to a first user. When the first user then types or speaks a name into a user communication (e.g., an email, instant message, or voice message), the messaging application provides the first user with the names stored in the name database that match the name in the user communication. Additionally, the messaging application may use ranking data associated with each matched name to order the names according to relevance. The first user can then select the correct name (if there are multiple matched names) which prompts the messaging application to automatically send contact information to the intended recipient of the user communication either within the current user communication or in a separate communication. In this manner, the first user is able to efficiently send contact information of relevant names to a recipient. The recipient may then use the contact information to communicate with the suggested contact. | 12-27-2012 |
20130041887 | ADDING ENTRIES TO AN INDEX BASED ON USE OF THE INDEX - In an embodiment, a threshold value is calculated for a current entry in a first column of an index. If the current entry has been read a number of times by execution of an execution plan that is more than the threshold value and the current entry points to at least one row in a table and not all of the at least one row have been selected by the execution plan for inclusion in a result set as satisfying a query that the execution plan implements, then a new entry is added to the index. | 02-14-2013 |
20130060752 | USING A PARTIALLY BUILT INDEX IN A COMPUTER DATABASE SYSTEM - A partially built index is used in a computer database system. When a database index is being built, or rebuilt, the database manager keeps track of the records processed using a relative row number (RRN) to track what part of the partially built index is complete. Queries are optimized by a query optimizer associated with the database manager that uses the portion of the index that is complete with reference to the RRN. The remainder of the database table beyond the RRN can be estimated or implemented using the completed data or can be determined by searching the relevant portion of the database table. | 03-07-2013 |
20130066850 | USING A PARTIALLY BUILT INDEX IN A COMPUTER DATABASE SYSTEM - A partially built index is used in a computer database system. When a database index is being built, or rebuilt, the database manager keeps track of the records processed using a relative row number (RRN) to track what part of the partially built index is complete. Queries are optimized by a query optimizer associated with the database manager that uses the portion of the index that is complete with reference to the RRN. The remainder of the database table beyond the RRN can be estimated or implemented using the completed data or can be determined by searching the relevant portion of the database table. | 03-14-2013 |
20130097430 | ENCRYPTING DATA AND CHARACTERIZATION DATA THAT DESCRIBES VALID CONTENTS OF A COLUMN - A method, computer-readable storage medium, and computer system are provided. In an embodiment, in response to receiving a first command that specifies first data, a first cryptographic key, and a column identifier that identifies a column of rows in a database, the first data is encrypted into encrypted data using the first cryptographic key. The encrypted data is stored to a first row in the column in the database. In response to the receiving the first command, characterization data is created that specifies valid contents of the column of the rows. In response to receiving a query command that specifies a second cryptographic key and the column, the column is decrypted using the second key to create decrypted data. If the decrypted data does not satisfy the valid contents specified by the characterization data, an invalid cryptographic key action is performed. | 04-18-2013 |
20130097599 | RESUMING EXECUTION OF AN EXECUTION PLAN IN A VIRTUAL MACHINE - In an embodiment, a query implemented by a first execution plan is executed at a first virtual machine. In response to a move command that requests a move of the first virtual machine from a first computer to a second computer while the first virtual machine is executing the query implemented by the first execution plan at the first computer, an attribute of a resource used by the executing at the first virtual machine is saved to memory at the first computer and a driver source used by the executing at the first virtual machine is saved to the memory at the first computer. In response to a command that requests starting a second virtual machine at the second computer, a determination is made whether the driver source that comprises the state of the partial execution of the first execution plan exists in memory of the second computer. | 04-18-2013 |
20130159316 | DISAPPEARING INDEX FOR MORE EFFICIENT PROCESSING OF A DATABASE QUERY - A disappearing index allows faster processing of a database query without the startup time of a prior art sparse index. The disappearing index starts as a full index but is trimmed of index values that point to a row in the table that is not selected by the query. Thus the traditional index disappears as it becomes a sparse index tailored to the query. The query is able to execute faster using the now sparse index since the target database table is not accessed for duplicate values in the base table of the query. The query optimizer may determine to use a disappearing index based on estimates of the number of duplicate values in the base table. When the query is complete, the created disappearing table may be discarded or used for other queries that match the selection of the query that created the disappearing index. | 06-20-2013 |
20130159322 | CONTACT RECOMMENDATION SYSTEM FOR A USER COMMUNICATION - Techniques are described for allowing a first user to efficiently send contact information to a second user using a messaging application such as email programs, instant messaging programs, social media websites, or chat rooms. The messaging application may maintain a name database that stores names relevant to a first user. When the first user then inputs a name into a user communication (e.g., an email, instant message, or voice message), the messaging application provides the first user with the names stored in the name database that match the name in the user communication. Additionally, the messaging application may use ranking data associated with each matched name to order the names according to relevance. The first user can then select the correct name (if there are multiple matched names) which prompts the messaging application to automatically send contact information to the intended recipient of the user communication. | 06-20-2013 |
20130166536 | DATABASE QUERY GOVERNOR WITH TAILORED THRESHOLDS - A query governor intelligently sets tailored thresholds for a query accessing a computer database. The query governor preferably generates a tailored threshold for each query sent to the database for execution. The tailored threshold for the query is preferably compared to an estimated query execution time to determine whether to execute the query. The query governor uses one or more factors applied to a standard threshold to generate the tailored threshold. The factors preferably include user factors and query factors. These factors are dynamically adjusted by the query governor in an intelligent way to increase optimal use of the database. Other factors may include factors such as job priority factor, resource factor and an application factor. | 06-27-2013 |
20130263117 | ALLOCATING RESOURCES TO VIRTUAL MACHINES VIA A WEIGHTED COST RATIO - In an embodiment, a plurality of estimates of costs of executing a plurality of respective queries is received from a plurality of respective virtual machines using a plurality of respective estimated resources allocated to the plurality of respective virtual machines. A selected virtual machine of the plurality of respective virtual machines is selected with a lowest weighted cost ratio, as compared to all other of the plurality of respective virtual machines. A source virtual machine is found with a lowest current resource usage. An amount of a resource to deallocate from the source virtual machine is calculated, which further comprises estimating the amount of the resource to deallocate that does not raise the lowest current resource usage over a maximum resource threshold. The amount of the resource from the source virtual machine is deallocated. The amount of the resource is allocated to the selected virtual machine. | 10-03-2013 |
20130304723 | CHANGING THE COMPRESSION LEVEL OF QUERY PLANS - In an embodiment, a query plan is compressed to data in a cache at a high compression level if a runtime of a query that the query plan implements is greater than a high time threshold. The query plan is compressed to the data in the cache at a medium compression level if the runtime of the query that the query plan implements is less than the high time threshold and greater than a low time threshold. The query plan is stored to the data in the cache at an uncompressed level if the runtime of the query that the query plan implements is less than the low time threshold. | 11-14-2013 |
20140046928 | QUERY PLANS WITH PARAMETER MARKERS IN PLACE OF OBJECT IDENTIFIERS - In an embodiment, a first query is received that specifies a first object identifier. If a first query plan exists that implements the first query, except that the first query plan does not comprise the first object identifier and instead comprises a parameter marker in place of the first object identifier, a first query execution plan is created from the first query plan, substituting the first object identifier in the first query execution plan for the parameter marker, and the first query execution plan is executed to read a first object identified by the first object identifier. | 02-13-2014 |
20140101128 | ESTIMATING ROWS RETURNED BY RECURSIVE QUERIES USING FANOUT - In an embodiment, a recursive query is received that comprises a first select statement with a seed select statement and a second select statement with a recursive reference, wherein the recursive query further identifies at least two columns in at least one table, wherein the at least two columns have parent-child relationships represented by nodes in a graph, wherein the graph represents the organization of values in rows in the at least one table. A target recursion depth is calculated for the graph based on a fanout of the graph. In an embodiment, the target recursion depth is calculated by summing the fanout at each recursion depth of the graph multiplied by a number of nodes at each recursion depth of the graph. An estimated number of rows that the recursive query will return is estimated based on the target recursion depth. | 04-10-2014 |
20140101131 | SWAPPING EXPECTED AND CANDIDATE AFFINITIES IN A QUERY PLAN CACHE - In an embodiment, a hit percentage of an expected affinity for a first query is calculated, wherein the expected affinity comprises a first address range in a query plan cache, a hit percentage of a candidate affinity for the first query is calculated, wherein the candidate affinity comprises a second address range in a query plan cache, and if the hit percentage of the candidate affinity is greater than the hit percentage of the expected affinity by more than a threshold amount, query plans in the candidate affinity are swapped with query plans in the expected affinity. | 04-10-2014 |
20140101132 | SWAPPING EXPECTED AND CANDIDATE AFFINITIES IN A QUERY PLAN CACHE - In an embodiment, a hit percentage of an expected affinity for a first query is calculated, wherein the expected affinity comprises a first address range in a query plan cache, a hit percentage of a candidate affinity for the first query is calculated, wherein the candidate affinity comprises a second address range in a query plan cache, and if the hit percentage of the candidate affinity is greater than the hit percentage of the expected affinity by more than a threshold amount, query plans in the candidate affinity are swapped with query plans in the expected affinity. | 04-10-2014 |
20140101133 | ESTIMATING ROWS RETURNED BY RECURSIVE QUERIES USING FANOUT - In an embodiment, a recursive query is received that comprises a first select statement with a seed select statement and a second select statement with a recursive reference, wherein the recursive query further identifies at least two columns in at least one table, wherein the at least two columns have parent-child relationships represented by nodes in a graph, wherein the graph represents the organization of values in rows in the at least one table. A target recursion depth is calculated for the graph based on a fanout of the graph. In an embodiment, the target recursion depth is calculated by summing the fanout at each recursion depth of the graph multiplied by a number of nodes at each recursion depth of the graph. An estimated number of rows that the recursive query will return is estimated based on the target recursion depth. | 04-10-2014 |
20140149386 | DATABASE ROW ACCESS CONTROL - A method, system, and computer program product to create an access control bit mapping (ACBM) structure for a corresponding database table are disclosed. The ACBM structure may include a relative record number (RRN) bit map. The RRN bit map may describe the access rights for a parameter. The computer-implemented method may maintain one or more statistics describing the RRN bit map. The method may additionally provide for updating the ACBM structure. The method may also provide for using the ACBM structure to process a database query. | 05-29-2014 |
20140149387 | DATABASE ROW ACCESS CONTROL - A method, system, and computer program product to create an access control bit mapping (ACBM) structure for a corresponding database table are disclosed. The ACBM structure may include a relative record number (RRN) bit map. The RRN bit map may describe the access rights for a parameter. The computer-implemented method may maintain one or more statistics describing the RRN bit map. The method may additionally provide for updating the ACBM structure. The method may also provide for using the ACBM structure to process a database query. | 05-29-2014 |
20140172905 | PERFORMING A FUNCTION ON ROWS OF DATA DETERMINED FROM TRANSITIVE RELATIONSHIPS BETWEEN COLUMNS - In an embodiment, a request is received that specifies a function and a specified key value. Rows from all tables that are accessible from the specified key value are transitively searched, wherein the transitively searching further comprises finding values in a plurality of pairs of columns, wherein found rows that are found by the transitively searching comprise values in a respective first column of the plurality of pairs of columns that satisfy a dependency relationship with values in a respective second column of the plurality of pairs of columns. The function is executed against only the found rows. | 06-19-2014 |
20140172908 | PERFORMING A FUNCTION ON ROWS OF DATA DETERMINED FROM TRANSITIVE RELATIONSHIPS BETWEEN COLUMNS - In an embodiment, a request is received that specifies a function and a specified key value. Rows from all tables that are accessible from the specified key value are transitively searched, wherein the transitively searching further comprises finding values in a plurality of pairs of columns, wherein found rows that are found by the transitively searching comprise values in a respective first column of the plurality of pairs of columns that satisfy a dependency relationship with values in a respective second column of the plurality of pairs of columns. The function is executed against only the found rows. | 06-19-2014 |
20140173599 | SENDING TASKS BETWEEN VIRTUAL MACHINES BASED ON EXPIRATION TIMES - In an embodiment, if an estimated time to perform a task by a first virtual machine is less than or equal to an expiration time of the first virtual machine minus the current time, the task is performed by the first virtual machine. If the estimated time to perform the task by the first virtual machine is greater than the expiration time of the first virtual machine minus the current time, a selected virtual machine is selected from among a plurality of virtual machines with a smallest estimated time to perform the task and a request to perform the task is sent to the selected virtual machine. | 06-19-2014 |
20140173614 | SENDING TASKS BETWEEN VIRTUAL MACHINES BASED ON EXPIRATION TIMES - In an embodiment, if an estimated time to perform a task by a first virtual machine is less than or equal to an expiration time of the first virtual machine minus the current time, the task is performed by the first virtual machine. If the estimated time to perform the task by the first virtual machine is greater than the expiration time of the first virtual machine minus the current time, a selected virtual machine is selected from among a plurality of virtual machines with a smallest estimated time to perform the task and a request to perform the task is sent to the selected virtual machine. | 06-19-2014 |
20140201132 | STORING A KEY VALUE TO A DELETED ROW BASED ON KEY RANGE DENSITY - In an embodiment, a first key value is received. A plurality of candidate rows are found in a database table, wherein the plurality of candidate rows are deleted. For the plurality of candidate rows, a plurality of respective impacts on a plurality of respective densities of each of other key values that are stored within a first key range of the first key value are calculated. For the plurality of candidate rows, a plurality of function results of the plurality of respective impacts on the plurality of respective densities are calculated. A selected candidate row of the plurality of candidate rows with a smallest function result of the plurality of function results of the plurality of respective impacts on the plurality of respective densities is selected. The first key value is stored to the selected candidate row. | 07-17-2014 |
20140324874 | MANAGEMENT OF A DATABASE SYSTEM - A method, system, and computer program product to manage a database is disclosed. The method, system, and computer program product may include structuring the database to have a first table having an index and a second table. A first key of the first table may be related to a second key of the second table. The method, system, and computer program product may include creating an entry locator in the index. The method, system, and computer program product may include maintaining an association between the second key of the second table and the entry locator of the index. | 10-30-2014 |
20140324876 | MANAGEMENT OF A DATABASE SYSTEM - A method, system, and computer program product to manage a database is disclosed. The method, system, and computer program product may include structuring the database to have a first table having an index and a second table. A first key of the first table may be related to a second key of the second table. The method, system, and computer program product may include creating an entry locator in the index. The method, system, and computer program product may include maintaining an association between the second key of the second table and the entry locator of the index. | 10-30-2014 |
20150019583 | INTELLIGENTLY UTILIZING NON-MATCHING WEIGHTED INDEXES - System, method, and computer program product to intelligently utilize non-matching weighted objects, by determining that a sort sequence of a query does not match a sort sequence of a shared weight object of a database, modifying the query based on the sort sequence of the query, and executing the modified query to obtain a result set, wherein the result set does not include a set of rows that would have been returned using the shared weight object to process the unmodified query. | 01-15-2015 |
20150088903 | DATA ALLOCATION CONTAINERS IN A PARTITIONED TABLE OF A COMPUTER DATABASE SYSTEM FOR HOLDING DATA BASED ON USAGE - An apparatus and method utilize partitioned database tables divided into data allocation containers (DACs) where data is placed into the DACs based on usage of the data in past queries. Records that are used most often are placed together and records that are used less often are placed together to improve database performance. In preferred embodiments, a database manager determines where to place data into the DACs based on how often the data is selected by a database query using a DAC selection ratio (DSR). The database manager may determine when to perform table maintenance to move rows of data to the appropriate DACs based on a timestamp or last check date (LCD) stored in the database. | 03-26-2015 |
20150088912 | DATA ALLOCATION CONTAINERS IN A PARTITIONED TABLE OF A COMPUTER DATABASE SYSTEM FOR HOLDING DATA BASED ON USAGE - An apparatus and method utilize partitioned database tables divided into data allocation containers (DACs) where data is placed into the DACs based on usage of the data in past queries. Records that are used most often are placed together and records that are used less often are placed together to improve database performance. In preferred embodiments, a database manager determines where to place data into the DACs based on how often the data is selected by a database query using a DAC selection ratio (DSR). The database manager may determine when to perform table maintenance to move rows of data to the appropriate DACs based on a timestamp or last check date (LCD) stored in the database. | 03-26-2015 |
20150112964 | QUERY OPTIMIZATION CONSIDERING VIRTUAL MACHINE MIRRORING COSTS - Techniques are disclosed for selecting between query execution plans in part based on VM mirroring costs. In one embodiment, a query optimizer determines runtimes for multiple query execution plans, and modifies these runtimes based on flashing cost, which is itself determined based on the amount of memory which needs to be flashed to the secondary memory if each execution plan is executed. In so doing, the query optimizer may select a execution plan which takes a longer to run, but incurs less flashing cost. By considering both the query runtime itself and the flashing cost, the query optimizer may be better able to determine the fastest query execution plan to execute. | 04-23-2015 |
20150112968 | QUERY OPTIMIZATION CONSIDERING VIRTUAL MACHINE MIRRORING COSTS - Techniques are disclosed for selecting between query execution plans in part based on VM mirroring costs. In one embodiment, a query optimizer determines runtimes for multiple query execution plans, and modifies these runtimes based on flashing cost, which is itself determined based on the amount of memory which needs to be flashed to the secondary memory if each execution plan is executed. In so doing, the query optimizer may select a execution plan which takes a longer to run, but incurs less flashing cost. By considering both the query runtime itself and the flashing cost, the query optimizer may be better able to determine the fastest query execution plan to execute. | 04-23-2015 |
20150127671 | MANAGING A TEMPLATE IN AN OPERATOR GRAPH - Embodiments of the disclosure provide a method, system, and computer program product for managing a template on an operator graph. The method for managing a template on an operator graph can include receiving the template for processing a stream of tuples. The template can have a plurality of template elements operating on one or more computer processors. The method can include calculating a resource requirement of a template element from the template. The method can include calculating a resource availability of a virtual machine. The method can include allocating the template onto the operator graph. The operator graph can have a plurality of processing elements operating on one or more computer processors. The method can also include mapping the template element from the template onto the virtual machine as a function of the resource requirement of the template element and the resource availability of the virtual machine. | 05-07-2015 |
20150128131 | MANAGING VIRTUAL MACHINE PATTERNS - Managing virtual machine patterns, including: identifying resource utilization of each virtual machine within a first virtual machine pattern having a first group of resources; determining resource requirements of one or more applications executing on one or more virtual machines within the first virtual machine pattern; based on the resource utilization and the determined resource requirements, identifying a second virtual machine pattern having a second group of resources; and deploying at least one of the one or more applications executing on the one or more virtual machines within the first virtual machine pattern onto one or more virtual machines of the second virtual machine pattern. | 05-07-2015 |
20150128135 | MANAGING A TEMPLATE IN AN OPERATOR GRAPH - Embodiments of the disclosure provide a method, system, and computer program product for managing a template on an operator graph. The method for managing a template on an operator graph can include receiving the template for processing a stream of tuples. The template can have a plurality of template elements operating on one or more computer processors. The method can include calculating a resource requirement of a template element from the template. The method can include calculating a resource availability of a virtual machine. The method can include allocating the template onto the operator graph. The operator graph can have a plurality of processing elements operating on one or more computer processors. The method can also include mapping the template element from the template onto the virtual machine as a function of the resource requirement of the template element and the resource availability of the virtual machine. | 05-07-2015 |
20150154254 | INTELLIGENTLY UTILIZING NON-MATCHING WEIGHTED INDEXES - System, method, and computer program product to intelligently utilize non-matching weighted objects, by determining that a sort sequence of a query does not match a sort sequence of a shared weight object of a database, modifying the query based on the sort sequence of the query, and executing the modified query to obtain a result set, wherein the result set does not include a set of rows that would have been returned using the shared weight object to process the unmodified query. | 06-04-2015 |
20150163111 | MANAGING RESOURCES IN A DISTRIBUTED COMPUTING ENVIRONMENT - Methods, apparatuses, and computer program products for managing resources in a distributed computing environment that includes a plurality of resources and a resource recycling unit for storing discarded resources are provided. Embodiments include a management system maintaining within a resource recycling unit, a plurality of discarded resources of the distributed computing environment. Embodiments also include the management system receiving from a user, a request for a resource of the distributed computing environment and in response to receiving the request, selecting a first discarded resource from the plurality of discarded resources of the resource recycling unit. Embodiments also include the management system providing the selected first discarded resource to the user. | 06-11-2015 |
20150163223 | Managing Resources In A Distributed Computing Environment - Methods, apparatuses, and computer program products for managing resources in a distributed computing environment that includes a plurality of resources and a resource recycling unit for storing discarded resources are provided. Embodiments include a management system maintaining within a resource recycling unit, a plurality of discarded resources of the distributed computing environment. Embodiments also include the management system receiving from a user, a request for a resource of the distributed computing environment and in response to receiving the request, selecting a first discarded resource from the plurality of discarded resources of the resource recycling unit. Embodiments also include the management system providing the selected first discarded resource to the user. | 06-11-2015 |
20150205587 | ADAPTIVE CLOUD AWARE JUST-IN-TIME (JIT) COMPILATION - Clients accessing cloud computing services are allocated respective virtual machines, each client specifying defining parameters for its virtual machine(s). A just-in-time compiler executing within a client's virtual machine optimizes the executable code it generates based at least in part, on the defining parameters of the virtual machine. During execution of an application using the just-in-time compiler, the compiler is notified of changes made to the defining parameters of the virtual machine. Responsive to such notification, the just-in-time compiler thereafter optimizes compiled code it generates for execution in the virtual machine as modified. | 07-23-2015 |
20150205588 | ADAPTIVE CLOUD AWARE JUST-IN-TIME (JIT) COMPILATION - Clients accessing cloud computing services are allocated respective virtual machines, each client specifying defining parameters for its virtual machine(s). A just-in-time compiler executing within a client's virtual machine optimizes the executable code it generates based at least in part, on the defining parameters of the virtual machine. During execution of an application using the just-in-time compiler, the compiler is notified of changes made to the defining parameters of the virtual machine. Responsive to such notification, the just-in-time compiler thereafter optimizes compiled code it generates for execution in the virtual machine as modified. | 07-23-2015 |
20150205627 | STREAMING OPERATOR WITH TRIGGER - One or more operators in a flow graph of a streaming application may include one or more triggers that indicate when action needs to be taken for the operator. A streams manager monitors performance of a streaming application and receives a notification when a trigger in an operator fires. In response to a trigger firing, the streams manager determines an appropriate action corresponding to the trigger. When the trigger indicates an adjustment of cloud resources are needed, the streams manager formulates a cloud resource request to a cloud manager. In response, the cloud manager adjusts the cloud resources for the operator to improve performance of the streaming application. A trigger may specify a trigger action for an operator, and may additionally specify a trigger action for one or more other affected operators. The firing of a trigger in one operator can therefore result in adjusting resources to multiple operators. | 07-23-2015 |
20150207749 | STREAMING OPERATOR WITH TRIGGER - One or more operators in a flow graph of a streaming application may include one or more triggers that indicate when action needs to be taken for the operator. A streams manager monitors performance of a streaming application and receives a notification when a trigger in an operator fires. In response to a trigger firing, the streams manager determines an appropriate action corresponding to the trigger. When the trigger indicates an adjustment of cloud resources are needed, the streams manager formulates a cloud resource request to a cloud manager. In response, the cloud manager adjusts the cloud resources for the operator to improve performance of the streaming application. A trigger may specify a trigger action for an operator, and may additionally specify a trigger action for one or more other affected operators. The firing of a trigger in one operator can therefore result in adjusting resources to multiple operators. | 07-23-2015 |
20150213254 | SIGNAL SECURITY FOR WIRELESS ACCESS POINT - A wireless access point receives a set of invalid passwords from at least one wireless device attempting to connect to a network through the wireless access point. The wireless access point reduces RF signal power in response to receiving the set of invalid passwords. | 07-30-2015 |
20150215785 | SIGNAL SECURITY FOR WIRELESS ACCESS POINT - A wireless access point receives a set of invalid passwords from at least one wireless device attempting to connect to a network through the wireless access point. The wireless access point reduces RF signal power in response to receiving the set of invalid passwords. | 07-30-2015 |
20150234874 | TABLE ORGANIZATION USING ONE OR MORE QUERIES - A method, system and computer program product are provided for reorganizing a database table according to a set of queries. More specifically, the table is reorganized such that random I/O is reduced by more tightly grouping together rows in the table associated with each of the referencing queries. This enables more associated rows from a given table relevant to a query to be read into memory for a given I/O operation. | 08-20-2015 |
20150234878 | TABLE ORGANIZATION USING ONE OR MORE QUERIES - A method, system and computer program product are provided for reorganizing a database table according to a set of queries. More specifically, the table is reorganized such that random I/O is reduced by more tightly grouping together rows in the table associated with each of the referencing queries. This enables more associated rows from a given table relevant to a query to be read into memory for a given I/O operation. | 08-20-2015 |
20150254091 | MANAGING STREAM COMPONENTS BASED ON VIRTUAL MACHINE PERFORMANCE ADJUSTMENTS - Embodiments of the disclosure include a method, a system, and a computer program product for modifying a stream operator based on the virtual resources. The method includes receiving a first resource allocation and a second resource allocation of a virtual resource for a virtual machine supporting a stream computing application. The method also includes determining whether the second resource allocation changed within a tolerance relative to the first resource allocation. The method also includes identifying a stream operator in the stream computing application using the virtual resource of the virtual machine. The method also includes modifying the stream operator to accommodate the second resource allocation in response to the second resource allocation changing relative to the first resource allocation. | 09-10-2015 |
20150254094 | MANAGING STREAM COMPONENTS BASED ON VIRTUAL MACHINE PERFORMANCE ADJUSTMENTS - Embodiments of the disclosure include a method, a system, and a computer program product for modifying a stream operator based on the virtual resources. The method includes receiving a first resource allocation and a second resource allocation of a virtual resource for a virtual machine supporting a stream computing application. The method also includes determining whether the second resource allocation changed within a tolerance relative to the first resource allocation. The method also includes identifying a stream operator in the stream computing application using the virtual resource of the virtual machine. The method also includes modifying the stream operator to accommodate the second resource allocation in response to the second resource allocation changing relative to the first resource allocation. | 09-10-2015 |
20150278276 | AUTONOMIC REGULATION OF A VOLATILE DATABASE TABLE ATTRIBUTE - A database table is monitored to automatically determine its volatility, and at least one volatility attribute expressing volatility state is saved. The volatility attribute is used to manage the database, e.g., to determine an optimum query execution strategy for a query involving data in the table, and/or for determining whether to re-optimize a previously saved query execution strategy and/or for managing storage and retrieval of table data. Preferably, parameters of the database table are captured at regular sampling intervals and a figure of merit representing volatility is computed from the parameter values. Preferably, the database supports the SQL database language, and the volatility attribute is or includes the SQL VOLATILE attribute. In an additional embodiment, the database manager may express volatility of a database table as a value within a range. | 10-01-2015 |
20150278304 | AUTONOMIC REGULATION OF A VOLATILE DATABASE TABLE ATTRIBUTE - A database table is monitored to automatically determine its volatility, and at least one volatility attribute expressing volatility state is saved. The volatility attribute is used to manage the database, e.g., to determine an optimum query execution strategy for a query involving data in the table, and/or for determining whether to re-optimize a previously saved query execution strategy and/or for managing storage and retrieval of table data. Preferably, parameters of the database table are captured at regular sampling intervals and a figure of merit representing volatility is computed from the parameter values. Preferably, the database supports the SQL database language, and the volatility attribute is or includes the SQL VOLATILE attribute. In an additional embodiment, the database manager may express volatility of a database table as a value within a range. | 10-01-2015 |
20150310045 | MANAGING AN INDEX OF A TABLE OF A DATABASE - A method, a system, and a computer program product for managing a database are disclosed. Managing the database includes managing an index of a table of the database. Managing the index includes determining the table includes a first field having a first input value configured to identify a first dynamic data function utilized to determine a first output value for the first field. In embodiments, managing the index includes determining the first dynamic data function is deterministic, determining the first output value for the first field using the first dynamic data function, and storing the first output value for the first field. In embodiments, managing the index includes determining the first dynamic data function is nondeterministic, determining a first special value to represent the first output value for the first field, and storing the first special value for the first field. | 10-29-2015 |
20150310049 | MANAGING AN INDEX OF A TABLE OF A DATABASE - A method, a system, and a computer program product for managing a database are disclosed. Managing the database includes managing an index of a table of the database. Managing the index includes determining the table includes a first field having a first input value configured to identify a first dynamic data function utilized to determine a first output value for the first field. In embodiments, managing the index includes determining the first dynamic data function is deterministic, determining the first output value for the first field using the first dynamic data function, and storing the first output value for the first field. In embodiments, managing the index includes determining the first dynamic data function is nondeterministic, determining a first special value to represent the first output value for the first field, and storing the first special value for the first field. | 10-29-2015 |
20150310050 | MANAGING A TABLE OF A DATABASE - A method, a system, and a computer program product for managing a database are disclosed. Managing the database includes managing a table of the database, the table having a set of fields including a first field in a first row of the table. Managing the table includes selecting, in the first field, a first input value configured to identify a first dynamic data function utilized to determine a first output value for the first field. Managing the table includes determining the first output value for the first field using the first dynamic data function. Managing the table includes returning (for a read request) the first output value for the first field. | 10-29-2015 |
20150310052 | MANAGING A TABLE OF A DATABASE - A method, a system, and a computer program product for managing a database are disclosed. Managing the database includes managing a table of the database, the table having a set of fields including a first field in a first row of the table. Managing the table includes selecting, in the first field, a first input value configured to identify a first dynamic data function utilized to determine a first output value for the first field. Managing the table includes determining the first output value for the first field using the first dynamic data function. Managing the table includes returning (for a read request) the first output value for the first field. | 10-29-2015 |
20150355925 | ADAPTIVE VIRTUAL MACHINE REQUEST APPROVER - An adaptive request handler (ARH) receives a virtual machine (VM) request from a user and determines whether to automatically approve the VM request using a tolerance that defines an allowable amount of deviation from preset resource specifications. In some embodiments, the ARH adaptively varies the tolerance based on one or more monitored factors, such as an aggregate system resource utilization by and/or a billing history of the user or a group that includes the user. In some embodiments, the VM request is based on a template selected by the user from among a plurality of templates eligible for automatic approval, wherein a plurality of tolerances each defines an allowable amount of deviation from preset resource specifications of a respective one of the eligible templates. The ARH may, in some embodiments, vary each of the plurality of tolerances independently based on one or more monitored factors. | 12-10-2015 |
20150355932 | ADAPTIVE VIRTUAL MACHINE REQUEST APPROVER - An adaptive request handler (ARH) receives a virtual machine (VM) request from a user and determines whether to automatically approve the VM request using a tolerance that defines an allowable amount of deviation from preset resource specifications. In some embodiments, the ARH adaptively varies the tolerance based on one or more monitored factors, such as an aggregate system resource utilization by and/or a billing history of the user or a group that includes the user. In some embodiments, the VM request is based on a template selected by the user from among a plurality of templates eligible for automatic approval, wherein a plurality of tolerances each defines an allowable amount of deviation from preset resource specifications of a respective one of the eligible templates. The ARH may, in some embodiments, vary each of the plurality of tolerances independently based on one or more monitored factors. | 12-10-2015 |
20150363399 | GENERATING AND ACCESSING A DATA TABLE - A data sharing space (DSS) is generated for a base table having a set of rows with stored data. Requests are received to generate tables, each request including a query to the base table. A row from the set of rows is then accessed. The query is then applied to the row to generate results. An index value is then determined and a portion of the row is stored in the DSS based on the index value. | 12-17-2015 |
20150363415 | GENERATING AND ACCESSING A DATA TABLE - An index shared between a plurality of tables is used to access a data sharing space (DSS) storing a set of rows from a base table having a plurality of rows with stored data. First data values of the index are identified in response to a query for a table. A subset of rows is then retrieved from the DSS using the index elements corresponding to the first data values. Second data values and some of the first data values are then identified in response to a second query for a table. A second subset of rows are then retrieved from the DSS using the index elements corresponding to the second data values and some of the first data values and the query is then applied to the subset of rows. | 12-17-2015 |
20150363441 | GENERATING AND ACCESSING A DATA TABLE - A data sharing space (DSS) is generated for a base table having a set of rows with stored data. Requests are received to generate tables, each request including a query to the base table. A row from the set of rows is then accessed. The query is then applied to the row to generate results. An index value is then determined and a portion of the row is stored in the DSS based on the index value. | 12-17-2015 |
20150363445 | GENERATING AND ACCESSING A DATA TABLE - An index shared between a plurality of tables is used to access a data sharing space (DSS) storing a set of rows from a base table having a plurality of rows with stored data. First data values of the index are identified in response to a query for a table. A subset of rows is then retrieved from the DSS using the index elements corresponding to the first data values. Second data values and some of the first data values are then identified in response to a second query for a table. A second subset of rows are then retrieved from the DSS using the index elements corresponding to the second data values and some of the first data values and the query is then applied to the subset of rows. | 12-17-2015 |
20150373071 | ON-DEMAND HELPER OPERATOR FOR A STREAMING APPLICATION - A streams manager creates one or more helper operators when a streaming application is initially deployed. As the streaming application runs, the streams manager monitors performance of the streaming application. When a bottleneck is detected, the streams manager automatically adjusts a helper operator to help the operator experiencing the bottleneck, thereby dynamically improving performance of the streaming application. Helper operators can be dynamically created and destroyed by the streams manager as needed, and can be deployed to virtual machines in a cloud. | 12-24-2015 |
20150373078 | ON-DEMAND HELPER OPERATOR FOR A STREAMING APPLICATION - A streams manager creates one or more helper operators when a streaming application is initially deployed. As the streaming application runs, the streams manager monitors performance of the streaming application. When a bottleneck is detected, the streams manager automatically adjusts a helper operator to help the operator experiencing the bottleneck, thereby dynamically improving performance of the streaming application. Helper operators can be dynamically created and destroyed by the streams manager as needed, and can be deployed to virtual machines in a cloud. | 12-24-2015 |
20160034290 | DYNAMICALLY DEPLOYED VIRTUAL MACHINE - A virtual machine data handling system includes a data handling system, a hypervisor, and a dynamically deployed virtual machine. The data handling system includes a plurality of physical computing resources (e.g., a processor and a memory). The hypervisor is implemented by the processor and the memory and deploys virtual machines from a master image. The dynamically deployed virtual machine is initially deployed by the hypervisor as a Linked Clone of the master image. The dynamically deployed virtual machine is subsequently dynamically deployed by the hypervisor copying a plurality of virtual memory segments from the master image until the dynamically deployed virtual machine is an independent Full Clone of the master image. The hypervisor may copy the plurality of virtual memory segments from the master image if at least one of the physical resources is operating below a utilization threshold. | 02-04-2016 |
20160034292 | MONITORING AND DYNAMICALLY RECONFIGURING VIRTUAL MACHINE PATTERNS - A cloud manager monitors running VM patterns, determines potential VM patterns that have a different configuration than the running VM patterns, and performs estimates of a plurality of metrics for the potential VM patterns. When the estimates for the potential VM patterns exceed the monitored VM patterns currently running by some threshold amount, the potential VM patterns may be automatically deployed to one or more clouds. The result is a cloud-based system that is automatically and dynamically tuned to changing conditions. | 02-04-2016 |
20160034293 | MONITORING AND DYNAMICALLY RECONFIGURING VIRTUAL MACHINE PATTERNS - A cloud manager monitors running VM patterns, determines potential VM patterns that have a different configuration than the running VM patterns, and performs estimates of a plurality of metrics for the potential VM patterns. When the estimates for the potential VM patterns exceed the monitored VM patterns currently running by some threshold amount, the potential VM patterns may be automatically deployed to one or more clouds. The result is a cloud-based system that is automatically and dynamically tuned to changing conditions. | 02-04-2016 |
20160034294 | DYNAMICALLY DEPLOYED VIRTUAL MACHINE - A virtual machine data handling system includes a data handling system, a hypervisor, and a dynamically deployed virtual machine. The data handling system includes a plurality of physical computing resources (e.g., a processor and a memory). The hypervisor is implemented by the processor and the memory and deploys virtual machines from a master image. The dynamically deployed virtual machine is initially deployed by the hypervisor as a Linked Clone of the master image. The dynamically deployed virtual machine is subsequently dynamically deployed by the hypervisor copying a plurality of virtual memory segments from the master image until the dynamically deployed virtual machine is an independent Full Clone of the master image. The hypervisor may copy the plurality of virtual memory segments from the master image if at least one of the physical resources is operating below a utilization threshold. | 02-04-2016 |
Patent application number | Description | Published |
20140258629 | SPECIFIC PREFETCH ALGORITHM FOR A CHIP HAVING A PARENT CORE AND A SCOUT CORE - Embodiments relate to a method, system, and computer program product for prefetching data on a chip having at least one scout core and a parent core. The method includes saving a prefetch code start address by the parent core. The prefetch code start address indicates where a prefetch code is stored. The prefetch code is specifically configured for monitoring the parent core based on a specific application being executed by the parent core. The method includes sending a broadcast interrupt signal by the parent core to the at least one scout core. The broadcast interrupt signal being sent based on the prefetch code start address being saved. The method includes monitoring the parent core by the prefetch code executed by at least one scout core. The scout core executes the prefetch code based on receiving the broadcast interrupt signal. | 09-11-2014 |
20140258630 | PREFETCHING FOR MULTIPLE PARENT CORES IN A MULTI-CORE CHIP - Embodiments relate to a method, system, and computer program product for prefetching data on a chip. The chip has at least one scout core, multiple parent cores that cooperate together to execute various tasks, and a shared cache that is common between the scout core and the multiple parent cores. An aspect of the embodiments includes monitoring the multiple parent cores by the at least one scout core through the shared cache for a shared cache access occurring in a base parent core. The method includes saving a fetch address by the at least one scout core based on the shared cache access occurring. The fetch address indicates a location of a specific line of cache requested by the base parent core. | 09-11-2014 |
20140258640 | PREFETCHING FOR A PARENT CORE IN A MULTI-CORE CHIP - Embodiments of the invention relate to prefetching data on a chip having at least one scout core, at least one parent core, and a shared cache that is common between the at least one scout core and the at least one parent core. A prefetch code is executed by the scout core for monitoring the parent core. The prefetch code executes independently from the parent core. The scout core determines that at least one specified data pattern has occurred in the parent core based on monitoring the parent core. A prefetch request is sent from the scout core to the shared cache. The prefetch request is sent based on the at least one specified pattern being detected by the scout core. A data set indicated by the prefetch request is sent to the parent core by the shared cache. | 09-11-2014 |
20140258681 | ANTICIPATED PREFETCHING FOR A PARENT CORE IN A MULTI-CORE CHIP - Embodiments relate to prefetching data on a chip having a scout core and a parent core coupled to the scout core. The method includes determining that a program executed by the parent core requires content stored in a location remote from the parent core. The method includes sending a fetch table address determined by the parent core to the scout core. The method includes accessing a fetch table that is indicated by the fetch table address by the scout core. The fetch table indicates how many of pieces of content are to be fetched by the scout core and a location of the pieces of content. The method includes based on the fetch table indicating, fetching the pieces of content by the scout core. The method includes returning the fetched pieces of content to the parent core. | 09-11-2014 |
20150019819 | PREFETCHING FOR MULTIPLE PARENT CORES IN A MULTI-CORE CHIP - Embodiments relate to a method and computer program product for prefetching data on a chip. The chip has at least one scout core, multiple parent cores that cooperate together to execute various tasks, and a shared cache that is common between the scout core and the multiple parent cores. An aspect of the embodiments includes monitoring the multiple parent cores by the at least one scout core through the shared cache for a shared cache access occurring in a base parent core. The method includes saving a fetch address by the at least one scout core based on the shared cache access occurring. The fetch address indicates a location of a specific line of cache requested by the base parent core. | 01-15-2015 |
20150019820 | PREFETCHING FOR A PARENT CORE IN A MULTI-CORE CHIP - Embodiments of the invention relate to prefetching data on a chip having at least one scout core, at least one parent core, and a shared cache that is common between the at least one scout core and the at least one parent core. A prefetch code is executed by the scout core for monitoring the parent core. The prefetch code executes independently from the parent core. The scout core determines that at least one specified data pattern has occurred in the parent core based on monitoring the parent core. A prefetch request is sent from the scout core to the shared cache. The prefetch request is sent based on the at least one specified pattern being detected by the scout core. A data set indicated by the prefetch request is sent to the parent core by the shared cache. | 01-15-2015 |
20150019821 | SPECIFIC PREFETCH ALGORITHM FOR A CHIP HAVING A PARENT CORE AND A SCOUT CORE - Embodiments relate to a method and computer program product for prefetching data on a chip having at least one scout core and a parent core. The method includes saving a prefetch code start address by the parent core. The prefetch code start address indicates where a prefetch code is stored. The prefetch code is specifically configured for monitoring the parent core based on a specific application being executed by the parent core. The method includes sending a broadcast interrupt signal by the parent core to the at least one scout core. The broadcast interrupt signal being sent based on the prefetch code start address being saved. The method includes monitoring the parent core by the prefetch code executed by at least one scout core. The scout core executes the prefetch code based on receiving the broadcast interrupt signal. | 01-15-2015 |
20150019841 | ANTICIPATED PREFETCHING FOR A PARENT CORE IN A MULTI-CORE CHIP - Embodiments relate to prefetching data on a chip having a scout core and a parent core coupled to the scout core. A method includes determining that a program executed by the parent core requires content stored in a location remote from the parent core. The method includes sending a fetch table address determined by the parent core to the scout core. The method includes accessing a fetch table that is indicated by the fetch table address by the scout core. The fetch table indicates how many of pieces of content are to be fetched by the scout core and a location of the pieces of content. The method includes based on the fetch table indicating, fetching the pieces of content by the scout core. The method includes returning the fetched pieces of content to the parent core. | 01-15-2015 |
20150268957 | DYNAMIC THREAD SHARING IN BRANCH PREDICTION STRUCTURES - Embodiments relate to multithreaded branch prediction. An aspect includes a system for dynamically evaluating how to share entries of a multithreaded branch prediction structure. The system includes a first-level branch target buffer coupled to a processor circuit. The processor circuit is configured to perform a method. The method includes receiving a search request to locate branch prediction information associated with the search request, and searching for an entry corresponding to the search request in the first-level branch prediction structure. The entry is not allowed based on a thread state of the entry indicating that the entry has caused a problem on a thread associated with the thread state. | 09-24-2015 |
20150339126 | DYNAMIC THREAD SHARING IN BRANCH PREDICTION STRUCTURES - Embodiments relate to multithreaded branch prediction. An aspect includes a system for dynamically evaluating how to share entries of a multithreaded branch prediction structure. The system includes a first-level branch target buffer coupled to a processor circuit. The processor circuit is configured to perform a method. The method includes receiving a search request to locate branch prediction information associated with the search request, and searching for an entry corresponding to the search request in the first-level branch prediction structure. The entry is not allowed based on a thread state of the entry indicating that the entry has caused a problem on a thread associated with the thread state. | 11-26-2015 |
20150363202 | BRANCH PREDICTION BASED ON CORRELATING EVENTS - Branch prediction using a correlating event, such as an unconditional branch that calls a routine including the branch, instead of the branch itself, to predict the behavior of the branch. The circumstances in which the branch is employed, and not the actual branch itself, is used to predict how strongly taken or not taken the branch is to behave. A correlating value associated with the branch (e.g., an address of the instruction calling a routine that includes the branch), an address of the branch, and a value that represents the number of selected branch instructions between the anchor point and the branch are used to select information to be used to predict the direction of the branch. | 12-17-2015 |
20150363204 | BRANCH PREDICTION BASED ON CORRELATING EVENTS - Branch prediction using a correlating event, such as an unconditional branch that calls a routine including the branch, instead of the branch itself, to predict the behavior of the branch. The circumstances in which the branch is employed, and not the actual branch itself, is used to predict how strongly taken or not taken the branch is to behave. A correlating value associated with the branch (e.g., an address of the instruction calling a routine that includes the branch), an address of the branch, and a value that represents the number of selected branch instructions between the anchor point and the branch are used to select information to be used to predict the direction of the branch. | 12-17-2015 |
20160034279 | BRANCH PREDICTION USING MULTI-WAY PATTERN HISTORY TABLE (PHT) AND GLOBAL PATH VECTOR (GPV) - Embodiments relate to branch prediction using a pattern history table (PHT) that is indexed using a global path vector (GPV). An aspect includes receiving a search address by a branch prediction logic that is in communication with the PHT and the GPV. Another aspect includes starting with the search address, simultaneously determining a plurality of branch predictions by the branch prediction logic based on the PHT, wherein the plurality of branch predictions comprises one of: (i) at least one not taken prediction and a single taken prediction, and (ii) a plurality of not taken predictions. Another aspect includes updating the GPV by shifting an instruction identifier of a branch instruction associated with a taken prediction into the GPV, wherein the GPV is not updated based on any not taken prediction. | 02-04-2016 |
20160034280 | BRANCH PREDICTION USING MULTI-WAY PATTERN HISTORY TABLE (PHT) AND GLOBAL PATH VECTOR (GPV) - Embodiments relate to branch prediction using a pattern history table (PHT) that is indexed using a global path vector (GPV). An aspect includes receiving a search address by a branch prediction logic that is in communication with the PHT and the GPV. Another aspect includes starting with the search address, simultaneously determining a plurality of branch predictions by the branch prediction logic based on the PHT, wherein the plurality of branch predictions comprises one of: (i) at least one not taken prediction and a single taken prediction, and (ii) a plurality of not taken predictions. Another aspect includes updating the GPV by shifting an instruction identifier of a branch instruction associated with a taken prediction into the GPV, wherein the GPV is not updated based on any not taken prediction. | 02-04-2016 |
20160062791 | THREAD-BASED CACHE CONTENT SAVING FOR TASK SWITCHING - Embodiments relate to thread-based cache content savings for task switching in a computer processor. An aspect includes determining a cache entry in a cache of the computer processor that is owned by the first thread, wherein the determination is made based on a hardware thread identifier (ID) of the first thread matching a hardware thread ID in the cache entry. Another aspect includes determining whether the determined cache entry is eligible for prefetching. Yet another aspect includes, based on determining that the determined cache entry is eligible for prefetching, setting a marker in the cache entry to active. | 03-03-2016 |
20160062899 | THREAD-BASED CACHE CONTENT SAVING FOR TASK SWITCHING - Embodiments relate to thread-based cache content savings for task switching in a computer processor. An aspect includes determining a cache entry in a cache of the computer processor that is owned by the first thread, wherein the determination is made based on a hardware thread identifier (ID) of the first thread matching a hardware thread ID in the cache entry. Another aspect includes determining whether the determined cache entry is eligible for prefetching. Yet another aspect includes, based on determining that the determined cache entry is eligible for prefetching, setting a marker in the cache entry to active. | 03-03-2016 |
20160092224 | CHECKPOINTS FOR A SIMULTANEOUS MULTITHREADING PROCESSOR - According to an aspect, a system for checkpoint acceleration in a simultaneous multithreading (SMT) processor includes circuitry of a processor core of the SMT processor to execute one or more threads in a processing pipeline. The processing pipeline includes a completion stage followed by a checkpoint stage. The system also includes a checkpoint accelerator disposed between the completion stage and the checkpoint stage. The checkpoint accelerator includes a backlog queue that stores a list of next-to-complete groups of instructions from the one or more threads anticipated to complete in an upcoming cycle. The checkpoint accelerator also includes a selection control that drives one or more of the next-to-complete groups of instructions from the backlog queue to the checkpoint stage based on one or more completion indicators that identify which of the next-to-complete groups of instructions actually completed. | 03-31-2016 |
20160092225 | CHECKPOINTS FOR A SIMULTANEOUS MULTITHREADING PROCESSOR - According to an aspect, a method of checkpoint acceleration in a simultaneous multithreading (SMT) processor includes executing one or more threads in a processing pipeline of a processor core of the SMT processor, where the processing pipeline includes a completion stage followed by a checkpoint stage. A list of next-to-complete groups of instructions from the one or more threads anticipated to complete in an upcoming cycle is stored in a backlog queue. One or more of the next-to-complete groups of instructions are driven from the backlog queue to the checkpoint stage based on one or more completion indicators identifying which of the next-to-complete groups of instructions actually completed. | 03-31-2016 |