Abstract:
A method for measuring performance of virtual desktop services offered by a server including a processor is described. A first encoded watermark is embedded into user interface display generated by a virtual desktop when initiating an operation. The first encoded watermark includes pixels identifying the operation and indicating its initiation. A second encoded watermark is embedded into the user interface upon completion of the operation indicating completion of the operation. An action performance time is then computed and stored in a memory. Multiple performance times may be compiled from multiple operations of multiple virtual desktops to assess the performance of the system as a whole.
Abstract:
System and method for creating linked clones of storage objects stored in a storage uses a target storage structure that includes a linked clone being created from a selected snapshot of a storage object and surface snapshots. The linked clone is created in the target storage structure with references to the selected snapshot of the storage object in a source storage structure without completely copying the selected snapshot to the target storage structure. The surface snapshots, which correspond to other snapshots of the storage object in the source storage structure, are created in the target storage structure with references to the other snapshots without completely copying the other snapshots to the target storage structure to produce the linked clone with similar snapshots as the storage object at a point in time when the selected snapshot was captured.
Abstract:
Nodes in tree data structure can be cached in a cache memory. When the cache memory becomes full, an eviction policy selects cached nodes based on their location in the tree data structure. The eviction policy selects cached nodes that correspond to leaf nodes in the tree data structure as candidates for eviction. The eviction policy selects cached nodes that correspond to internal (non-leaf) nodes from the lowest level possible for eviction, only if there are no cached leaf nodes.
Abstract:
A shared cache memory can be logically partitioned among different workloads to provide isolation between workloads and avoid excessive resource contention. Each logical partition is apportioned a share of the cache memory, and is exclusive to a respective one of the workloads. Each partition has an initial size allocation. Historical data can be collected and processed for each partition and used to periodically update its size allocation.
Abstract:
System and method for managing different types of snapshots of storage objects stored in a storage system uses a storage structure that includes both a storage object and any snapshots of the storage object. When a request to delete a snapshot of the storage object is received, a determination is made whether the snapshot is a first snapshot type. After determining that the snapshot is not the first snapshot type, the snapshot is deleted from the storage structure. After determining that the snapshot is the first snapshot type, the snapshot is marked as delete designated, and a deletion of the snapshot from the storage structure is prevented when there is a second snapshot type snapshot remaining in the storage structure that was created after the snapshot had been created so that the snapshot is available when the second snapshot type snapshot is subsequently used.
Abstract:
A method for measuring performance of virtual desktop services offered by a server including a processor is described. A first encoded watermark is embedded into user interface display generated by a virtual desktop when initiating an operation. The first encoded watermark includes pixels identifying the operation and indicating its initiation. A second encoded watermark is embedded into the user interface upon completion of the operation indicating completion of the operation. An action performance time is then computed and stored in a memory. Multiple performance times may be compiled from multiple operations of multiple virtual desktops to assess the performance of the system as a whole.
Abstract:
A method for coalescing IO requests includes maintaining a queue in a layer of an IO stack of a hypervisor, wherein (i) the queue holds IO requests received from an upper layer of the IO stack without forwarding the IO requests down the IO stack, and (ii) the layer of the IO stack resides above a file system layer of the IO stack. The method further includes receiving, at the layer, an IO request from the upper layer or a notification of a completion of certain IO requests previously transmitted by the layer down the IO stack. The method further includes determining whether any IO requests currently held in the queue should be transmitted down the IO stack based upon a condition; and combining any IO requests in the queue into at least one combined IO request to transmit down the IO stack if the condition is satisfied.