Abstract:
A technique to monitor software thread performance and update software that issues or uses the thread(s) to reduce performance-inhibiting events. At least one embodiment of the invention uses hardware and/or software timers or counters to monitor various events associated with executing user-level threads and report these events back to a user-level software program, which can use the information to avoid or at least reduce performance-inhibiting events associated with the user-level threads.
Abstract:
Embodiments are directed to methods and apparatus that backup filesystems to a storage device. A backup simulation is used to determine a number of agents to backup the filesystems.
Abstract:
A method is provided for collaborative caching between a server cache (104) of a server computer (102) and an array cache (112) of a storage array (110) coupled to the server computer. The method includes collecting instrumentation data on the server cache and the array cache of the storage array and, based on the instrumentation data, adjusting the operation of at least one of the server cache and the array cache.
Abstract:
Disclosed are systems, methods, and machine-readable storage mediums for managing storage of a computing device associated with a user. In at least some embodiments, a method includes receiving a request to synchronize a data file from a cloud storage system from a the computing device, determining a classification of the computing device and an access pattern associated with the file, determining a storage optimization operation to be performed on the data file based on the access pattern and the classification, transmitting the file to the device subsequent to execution of the storage optimization operation, and transmitting an updated file based on an updated access pattern. The storage optimization operation can include downsampling, lossy compression, lossless compression, or a combination thereof.
Abstract:
A server computer system identifies change operations for an object in a file system. The object can be a file or a directory. The change operations can include a change to a local copy of the object and one or more remote copies of the object. The server computer system determines that one of the change operations is unsuccessful and creates tracking data that identifies the object that is associated with at least one change operation that is unsuccessful.
Abstract:
A distributed storage system employs a Key-Value Store to dynamically change a table layout scheme based on user access patterns. The system can be used as a basic architecture to construct a distributed Key-Value Store to support both row-oriented and column-oriented table layout schemes, by using DHT (Distributed Hash Table) technology for high scalability.
Abstract:
System aware performance counters including a processor for performing a method that includes executing a predefined code segment of an application, the executing on a processor. The executing includes executing an instrumented thread included in the predefined code segment. The method includes performing a first action associated with executing the instrumented thread in the predefined code segment, and registering the instrumented thread. A performance counter associated with the predefined code segment is started. Also, the execution of the predefined code segment is paused and the performance counter is paused. The method further includes performing a second action associated with pausing the executing of the predefined code segment. The executing of the predefined code segment is resumed and the performance counter is resumed responsive to resuming the executing of the predefined code segment. Also, a third action associated with resuming executing the predefined code segment is performed.
Abstract:
The present disclosure is directed towards systems and methods for lightweight identification of flow information by application. A flow monitor executed by a processor of a device may maintain a counter. The flow monitor may associate an application with the value of the counter and transmit, to a data collector executed by a second device, the counter value and a name of the application. The flow monitor may monitor a data flow associated with the application to generate a data record. The flow monitor may transmit the data record to the data collector, the data record including an identification of the application consisting of the counter value and not including the name of the application. The data collector may then re-associate the data record with the application name based on the previously received counter value.
Abstract:
A dual outcome event monitoring unit comprises a plurality of inputs, and a first counter. Each input is associated with an event and the first counter is a bidirectional counter. The dual outcome event monitoring unit is configured to increment the first counter in response to receiving an indication of the occurrence of a first event of a plurality of events. The first event is designated as an increment event. The dual outcome event monitoring unit is also configured to decrement the first counter responsive to receiving an indication of the occurrence of a second event of a plurality of events. The second event is designated as a decrement event.
Abstract:
A bottleneck detector may analyze individual workloads processed by an application by logging times when the workload may be processed at different checkpoints in the application. For each checkpoint, a curve fitting algorithm may be applied, and the fitted curves may be compared between different checkpoints to identify bottlenecks or other poorly performing sections of the application. A real time implementation of a detection system may compare newly captured data points against historical curves to detect a shift in the curve, which may indicate a bottleneck. In some cases, the fitted curves from neighboring checkpoints may be compared to identify sections of the application that may be a bottleneck. An automated system may apply one set of checkpoints in an application, identify an area for further investigation, and apply a second set of checkpoints in the identified area. Such a system may recursively search for bottlenecks in an executing application.