Patent application number | Description | Published |
20090094586 | METHOD AND APPARATUS FOR PERFORMING NATIVE BINDING - A native binding technique is provided for inserting calls to native functions during translation of subject code to target code, such that function calls in the subject program to subject code functions are replaced in target code with calls to native equivalents of the same functions. Parameters of native function calls are transformed from target code representations to be consistent with native code representations, native code calling conventions, and native function prototypes. | 04-09-2009 |
20120191908 | STORAGE WRITES IN A MIRRORED VIRTUAL MACHINE SYSTEM - Performing storage writes in a mirrored virtual machine system by receiving a state of a primary virtual machine during execution of an application, wherein the primary virtual machine runs on a first physical machine and a secondary virtual machine runs on a second physical machine, wherein the state is captured by checkpointing, and the primary virtual machine is configured to write data to a first block and concurrently write the data to a write buffer on the secondary virtual machine. The method also includes storing a copy of data within a second block to a rollback buffer for the secondary virtual machine, in response to identifying a checkpoint in the application, merging the rollback buffer with the write buffer, in response to detecting a failover, writing a copy of the rollback buffer to the disk storage, and continuing execution on the secondary virtual machine from the last checkpoint. | 07-26-2012 |
20120266150 | METHOD AND FRAMEWORK FOR INVISIBLE CODE REWRITING - This invention relates to a method and framework for invisible code rewriting. A method, system, and computer program for allowing modification of executable program code in a computer platform comprising: providing a virtual address space on the platform, said virtual space comprising a first and second address space; identifying a program into the first address space; identifying an enhancement to the program; copying the program into the second address space; modifying the program copy in the second address space to provide the enhancement; and
| 10-18-2012 |
20120271615 | FAST EMULATION OF VIRTUALLY ADDRESSED CONTROL FLOW - A method, system and computer program product is provided for emulating two or more processes for executing a source application, comprising: providing virtual trampoline memory whereby each emulated process has a respective private trampoline memory; providing shared code heap memory, wherein each emulated process only sees the code heap and its respective private trampoline memory; fetching a fragment of source instructions from the application; generating equivalent target instructions for writing to the code heap, the fragment of target instruction being indexed by its physical address in the code heap; generating, for each jump instruction in the fragment, a jump to a slot in the virtual trampoline memory; and writing a trap in each private trampoline slot, each trap adapted to be replaced by a jump to a physical address in the code heap corresponding the start of the same or a different target instruction fragment. | 10-25-2012 |
20120296877 | FACILITATING DATA COHERENCY USING IN-MEMORY TAG BITS AND TAG TEST INSTRUCTIONS - Fine-grained detection of data modification of original data is provided by associating separate guard bits with granules of memory storing original data from which translated data has been obtained. The guard bits indicating whether the original data stored in the associated granule is protected for data coherency. The guard bits are set and cleared by special-purpose instructions. Responsive to attempting access to translated data obtained from the original data, the guard bit(s) associated with the original data is checked to determine whether the guard bit(s) fail to indicate coherency of the original data, and if so, discarding of the translated data is initiated to facilitate maintaining data coherency between the original data and the translated data. | 11-22-2012 |
20120297109 | FACILITATING DATA COHERENCY USING IN-MEMORY TAG BITS AND FAULTING STORES - Fine-grained detection of data modification of original data is provided by associating separate guard bits with granules of memory storing the original data from which translated data has been obtained. The guard bits facilitate indicating whether the original data stored in the associated granule is indicated as protected. The guard bits are set and cleared by special-purpose instructions. Responsive to initiating a data store operation to modify the original data, the associated guard bit(s) are checked to determine whether the original data is indicated as protected. Responsive to the checking indicating that a guard bit is set for the associated original data, the data store operation to modify the original data is faulted and the translated data is discarded, thereby facilitating data coherency between the original data and the translated data. | 11-22-2012 |
20120297146 | FACILITATING DATA COHERENCY USING IN-MEMORY TAG BITS AND TAG TEST INSTRUCTIONS - A method is provided for fine-grained detection of data modification of original data by associating separate guard bits with granules of memory storing original data from which translated data has been obtained. The guard bits indicating whether the original data stored in the associated granule is protected for data coherency. The guard bits are set and cleared by special-purpose instructions. Responsive to attempting access to translated data obtained from the original data, the guard bit(s) associated with the original data is checked to determine whether the guard bit(s) fail to indicate coherency of the original data, and if so, discarding of the translated data is initiated to facilitate maintaining data coherency between the original data and the translated data. | 11-22-2012 |
20130024855 | Check-point Based High Availability: Network Packet Buffering in Hardware - A method, system, and computer program product enhances resource/process availability by providing hardware based buffering of network packets during checkpointing in a virtualized environment. A High Availability Checkpoint (HAC) utility pre-configures a physical network adapter to buffer outgoing network packets from virtual machines that employ a checkpointing technology. In response to receiving an outgoing network packet from a virtual machine and determining that the virtual machine employs a pre-specified checkpointing technology, the physical network adapter buffers the outgoing network packet. In addition, a primary host performs/facilitates checkpoint operations (associated with the virtual machine) with a secondary host. When checkpoint operations are successfully completed, the HAC utility triggers the transmission of the buffered network packets from the network adapter to a network destination. The physical network adapter minimizes checkpointing network latency by pre-assigning a higher priority to a buffered network packet from a checkpointing virtual machine than to a new network packet that originates from a non-checkpointing virtual machine. | 01-24-2013 |
20130091335 | RESOURCE RECOVERY FOR CHECKPOINT-BASED HIGH-AVAILABILITY IN A VIRTUALIZED ENVIRONMENT - A computer-implemented method, computer program product and data processing system provide checkpoint high-available for an application in a virtualized environment with reduced network demands. An application executes on a primary host machine comprising a first virtual machine. A virtualization module receives a designation from the application of a portion of the memory of the first virtual machine as purgeable memory, wherein the purgeable memory can be reconstructed by the application when the purgeable memory is unavailable. Changes are tracked to a processor state and to a remaining portion that is not purgeable memory and the changes are periodically forwarded at checkpoints to a secondary host machine. In response to an occurrence of a failure condition on the first virtual machine, the secondary host machine is signaled to continue execution of the application by using the forwarded changes to the remaining portion of the memory and by reconstructing the purgeable memory. | 04-11-2013 |
20140101401 | RESOURCE RECOVERY FOR CHECKPOINT-BASED HIGH-AVAILABILITY IN A VIRTUALIZED ENVIRONMENT - A computer-implemented method provides checkpoint high-available for an application in a virtualized environment with reduced network demands. An application executes on a primary host machine comprising a first virtual machine. A virtualization module receives a designation from the application of a portion of the memory of the first virtual machine as purgeable memory, wherein the purgeable memory can be reconstructed by the application when the purgeable memory is unavailable. Changes are tracked to a processor state and to a remaining portion that is not purgeable memory and the changes are periodically forwarded at checkpoints to a secondary host machine. In response to an occurrence of a failure condition on the first virtual machine, the secondary host machine is signaled to continue execution of the application by using the forwarded changes to the remaining portion of the memory and by reconstructing the purgeable memory. | 04-10-2014 |
20140164701 | VIRTUAL MACHINES FAILOVER - Disclosed is a computer system ( | 06-12-2014 |
20140164709 | VIRTUAL MACHINE FAILOVER - Disclosed is a computer system ( | 06-12-2014 |
20140165056 | VIRTUAL MACHINE FAILOVER - Disclosed is a computer system ( | 06-12-2014 |
20140281287 | MANAGING CPU RESOURCES FOR HIGH AVAILABILITY MICRO-PARTITIONS - A primary processing unit entitlement is determined for a logical partition. A smaller secondary processing unit entitlement is also determined. A partition manager allocates primary processing units to the logical partition from a primary shared processor pool, and the logical partition is activated. The secondary processing units are reserved for the logical partition from a secondary shared processor pool, and the logical partition can be relocated to the secondary shared processor pool in response to a condition such as a hardware failure. The logical partition can continue to process its workload with the fewer processor resources, and can be restored to the primary processing unit entitlement. | 09-18-2014 |
20140281288 | MANAGING CPU RESOURCES FOR HIGH AVAILABILITY MICRO-PARTITIONS - A partition manager relocates a logical partition from a primary shared processor pool to a secondary shared processor pool in response to a predetermined condition, such as a hardware failure. The relocated logical partition is allocated a smaller quantity of processing units from the secondary pool than it was allocated from the primary pool. A quantity of processing units reserved for a second logical partition is identified in the secondary shared processor pool, and a portion of those reserved processing units are allocated to the relocated logical partition. The reserved processing units may be redistributed among multiple relocated logical partitions. | 09-18-2014 |
20140281289 | MANAGING CPU RESOURCES FOR HIGH AVAILABILITY MICRO-PARTITIONS - Profile properties in a partition profile are user-configurable through a management entity such as a management console. A partition manager calculates a secondary processing unit entitlement for a logical partition based in part on a secondary processing unit mode property in the partition profile. The secondary processing unit entitlement may be smaller than a primary processing unit entitlement for the logical partition. The partition manager reserves processing units from a secondary shared processor pool equal to the logical partition's secondary entitlement for the logical partition. The primary and secondary processing unit entitlements may be stored in primary and secondary configuration data structures associated with the logical partition. The partition manager may relocate the logical partition to the secondary shared processor pool in response to a predetermined condition. | 09-18-2014 |
20140281346 | MANAGING CPU RESOURCES FOR HIGH AVAILABILITY MICRO-PARTITIONS - A partition manager relocates a logical partition from a primary shared processor pool to a secondary shared processor pool in response to a predetermined condition, such as a hardware failure. The relocated logical partition is allocated a smaller quantity of processing units from the secondary pool than it was allocated from the primary pool. A quantity of processing units reserved for a second logical partition is identified in the secondary shared processor pool, and a portion of those reserved processing units are allocated to the relocated logical partition. The reserved processing units may be redistributed among multiple relocated logical partitions. | 09-18-2014 |
20140281347 | MANAGING CPU RESOURCES FOR HIGH AVAILABILITY MICRO-PARTITIONS - Profile properties in a partition profile are user-configurable through a management entity such as a management console. A partition manager calculates a secondary processing unit entitlement for a logical partition based in part on a secondary processing unit mode property in the partition profile. The secondary processing unit entitlement may be smaller than a primary processing unit entitlement for the logical partition. The partition manager reserves processing units from a secondary shared processor pool equal to the logical partition's secondary entitlement for the logical partition. The primary and secondary processing unit entitlements may be stored in primary and secondary configuration data structures associated with the logical partition. The partition manager may relocate the logical partition to the secondary shared processor pool in response to a predetermined condition. | 09-18-2014 |
20140281348 | MANAGING CPU RESOURCES FOR HIGH AVAILABILITY MICRO-PARTITIONS - A primary processing unit entitlement is determined for a logical partition. A smaller secondary processing unit entitlement is also determined. A partition manager allocates primary processing units to the logical partition from a primary shared processor pool, and the logical partition is activated. The secondary processing units are reserved for the logical partition from a secondary shared processor pool, and the logical partition can be relocated to the secondary shared processor pool in response to a condition such as a hardware failure. The logical partition can continue to process its workload with the fewer processor resources, and can be restored to the primary processing unit entitlement. | 09-18-2014 |
20140325186 | SUPPORTING CODE EXECUTION IN DUAL ADDRESS SPACES - A processing apparatus supports execution of executable computer program code, wherein non-instruction data is read from and written to a first address space, while executable instructions are fetched from a second address space. Preferably, the processing apparatus supports execution of a modified or enhanced computer program. The programs and user interfaces in the first address space see only the unmodified first program in the first address space and cannot detect the modified or enhanced program in the second address space. | 10-30-2014 |
20150100731 | Techniques for Moving Checkpoint-Based High-Availability Log and Data Directly From a Producer Cache to a Consumer Cache - A technique of operating a data processing system, includes logging addresses for cache lines modified by a producer core in a data array of a producer cache to create a high-availability (HA) log for the producer core. The technique also includes moving the HA log directly from the producer cache to a consumer cache of a consumer core and moving HA data associated with the addresses of the HA log directly from the producer cache to the consumer cache. The HA log corresponds to a cache line that includes multiple of the addresses. Finally, the technique includes processing, by the consumer core, the HA log and the HA data for the data processing system. | 04-09-2015 |
20150100732 | Moving Checkpoint-Based High-Availability Log and Data Directly From a Producer Cache to a Consumer Cache - A technique of operating a data processing system, includes logging addresses for cache lines modified by a producer core in a data array of a producer cache to create a high-availability (HA) log for the producer core. The technique also includes moving the HA log directly from the producer cache to a consumer cache of a consumer core and moving HA data associated with the addresses of the HA log directly from the producer cache to the consumer cache. The HA log corresponds to a cache line that includes multiple of the addresses. Finally, the technique includes processing, by the consumer core, the HA log and the HA data for the data processing system. | 04-09-2015 |
20150106532 | TECHNIQUES FOR STORAGE CONTROLLER QUALITY OF SERVICE MANAGEMENT - A technique for managing a data network includes monitoring data transfer rates and data transfer thresholds for data transferred between storage and an application. Feedback on the suitability of the data transfer rate is collected from the application. A data transfer threshold for the application is changed based on the monitored data transfer rate and the collected feedback. | 04-16-2015 |
20150121008 | Write Cache Destaging - Disclosed is a system for controlling write actions to a plurality of data storage devices, the system comprising a plurality of write caches, wherein each cache is associated with a set of said data storage devices; and a controller adapted to issue write permissions to said data storage devices, said write permissions including a permission to perform a data destage operation from a cache to a data storage device; wherein each cache has a first performance score expressed as the difference between the number of data destage operations said cache has in flight and the maximum number of data destage actions said cache is permitted to issue in parallel; and wherein the controller is adapted to offer a data destage operation permission to the cache in said plurality of caches associated with the highest first performance score. | 04-30-2015 |
20150143055 | VIRTUAL MACHINE BACKUP - A computer system comprises a processor unit arranged to run a hypervisor running one or more virtual machines, a cache connected to the processor unit and comprising a plurality of cache rows, each cache row comprising a memory address, a cache line and an image modification flag and a memory connected to the cache and arranged to store an image of at least one virtual machine. The processor unit is arranged to define a log in the memory and the cache further comprises a cache controller arranged to set the image modification flag for a cache line modified by a virtual machine being backed up, periodically check the image modification flags and write only the memory address of the flagged cache rows in the defined log. The processor unit is further arranged to monitor the free space available in the defined log and to trigger an interrupt if the free space available falls below a specific amount. | 05-21-2015 |
20150271082 | STORAGE CONTROLLER QUALITY OF SERVICE MANAGEMENT TECHNIQUES - A technique for managing a data network includes monitoring data transfer rates and data transfer thresholds for data transferred between storage and an application. Feedback on the suitability of the data transfer rate is collected from the application. A data transfer threshold for the application is changed based on the monitored data transfer rate and the collected feedback. | 09-24-2015 |
20150309883 | Recording Activity of Software Threads in a Concurrent Software Environment - A technique for failure monitoring and recovery of a first application executing on a first virtual machine includes storing machine state information during execution of the first virtual machine at predetermined checkpoints. An error message that includes an application error state at a failure point of the first application is received, by a hypervisor, from the first application. The first virtual machine is stopped in response to the error message. The hypervisor creates a second virtual machine and a second application from the stored machine state information that are copies of the first virtual machine and the first application. The second virtual machine and the second application are configured to execute from a checkpoint preceding the failure point. In response to receipt of a failure interrupt by the second application, one or more recovery processes are initiated in an attempt to avert the failure point. | 10-29-2015 |
20150331705 | ALLOCATING HYPERVISOR RESOURCES - In an approach to allocating hypervisor resources for virtual machine deployment, one or more computer processors determine one or more hierarchically grouped computing resources within a hypervisor. The one or more computer processors receive a selection of one or more hierarchically grouped computing resources. The one or more computer processors apply deployment constraints for a workload to the selected one or more hierarchically grouped computing resources. The one or more computer processors determine, based, at least in part, on the deployment constraints for the workload, one or more computing resources from the one or more hierarchically grouped computing resources. | 11-19-2015 |
20150331706 | ALLOCATING HYPERVISOR RESOURCES - In an approach to allocating hypervisor resources for virtual machine deployment, one or more computer processors determine one or more hierarchically grouped computing resources within a hypervisor. The one or more computer processors receive a selection of one or more hierarchically grouped computing resources. The one or more computer processors apply deployment constraints for a workload to the selected one or more hierarchically grouped computing resources. The one or more computer processors determine, based, at least in part, on the deployment constraints for the workload, one or more computing resources from the one or more hierarchically grouped computing resources. | 11-19-2015 |
20150378770 | VIRTUAL MACHINE BACKUP - A virtual machine backup method includes utilizing a log to indicate updates to memory of a virtual machine when the updates are evicted from a cache of the virtual machine. A guard band is determined that indicates a threshold amount of free space for the log. A determination is made that the guard band will be or has been encroached upon corresponding to indicating an update in the log. A backup image of the virtual machine is updated based, at least in part, on a set of one or more entries of the log, wherein the set of entries is sufficient to comply with the guard band. The set of entries is removed from the log. | 12-31-2015 |
20160042030 | PERFORMING ACTIONS ON OBJECTS AS A RESULT OF APPLYING TAGS TO THE OBJECTS - Systems, methods, and computer program products to tag objects in a cloud computing environment, by tagging an object with a first tag, of a plurality of tags, wherein each of the plurality of tags specifies a respective criterion for objects tagged by each tag, and upon determining that the object not satisfy the criterion of the first tag, performing an action associated with the first tag to modify the object to meet the criterion of the first tag. | 02-11-2016 |
20160042031 | PERFORMING ACTIONS ON OBJECTS AS A RESULT OF APPLYING TAGS TO THE OBJECTS - Methods to tag objects in a cloud computing environment, by tagging an object with a first tag, of a plurality of tags, wherein each of the plurality of tags specifies a respective criterion for objects tagged by each tag, and upon determining that the object not satisfy the criterion of the first tag, performing an action associated with the first tag to modify the object to meet the criterion of the first tag. | 02-11-2016 |
20160042040 | ENABLING A TAG TO SHOW STATUS - Method to display the status of tags applied to objects in a cloud computing environment, by comparing an attribute of an object to a criterion of a tag applied to the object, wherein the object is part of the cloud computing environment, and outputting for display a graphical representation of the tag, wherein the graphical representation comprises a text of the tag and an indication of a result of the comparison. | 02-11-2016 |
20160043904 | ENABLING A TAG TO SHOW STATUS - System, method, and computer program product to display the status of tags applied to objects in a cloud computing environment, by comparing an attribute of an object to a criterion of a tag applied to the object, wherein the object is part of the cloud computing environment, and outputting for display a graphical representation of the tag, wherein the graphical representation comprises a text of the tag and an indication of a result of the comparison. | 02-11-2016 |